You are on page 1of 8

Programas y aplicaciones

Programa: Conjunto unitario de instrucciones que permite a un ordenador


realizar funciones diversas, como el tratamiento de textos, el diseo de grficos,
la resolucin de problemas matemticos, el manejo de bancos de datos, etc.
Pero normalmente se entiende por programa un conjunto de instrucciones
ejecutables por un ordenador.
Un programa estructurado es un programa que cumple las condiciones de un
algoritmo (finitud, precisin, repeticin, resolucin del problema,...)
Aplicacin. Software formado por uno o ms programas, la documentacin de los
mismos y los archivos necesarios para su funcionamiento, de modo que el conjunto
completo de archivos forman una herramienta de trabajo en un ordenador.
Normalmente en el lenguaje cotidiano no se distingue entre aplicacin y programa; en
nuestro caso entenderemos que la aplicacin es un software completo que cumple la funcin
completa para la que fue diseado, mientras que un programa es el resultado de ejecutar un
cierto cdigo entendible por el ordenador.

Historia del software. La crisis del software
Los primeros ordenadores cumplan una nica programacin que estaba definida en los
componentes elctricos que formaban el ordenador.
La idea de que el ordenador hiciera varias tareas (ordenador programable o multipropsito)
hizo que se idearan las tarjetas perforadas. En ellas se utilizaba cdigo binario, de modo
que se hacan agujeros en ellas para indicar el cdigo 1 o el cero. Estos primeros
programas lgicamente servan para hacer tareas muy concretas.
La llegada de ordenadores electrnicos ms potentes hizo que los ordenadores se
convirtieran en verdaderas mquinas digitales que seguan utilizando el 1 y el 0 del cdigo
binario pero que eran capaces de leer miles de unos y ceros. Empezaron a aparecer los
primeros lenguajes de programacin que escriban cdigo ms entendible por los humanos
que posteriormente era convertido al cdigo entendible por la mquina.
Inicialmente la creacin de aplicaciones requera escribir pocas lneas de cdigo en el
ordenador, por lo que no haba una tcnica especificar a la hora de crear programas. Cada
programador se defenda como poda generando el cdigo a medida que se le ocurra.
Poco a poco las funciones que se requeran a los programas fueron aumentando
produciendo miles de lneas de cdigo que al estar desorganizada hacan casi imposible su
mantenimiento. Slo el programador que haba escrito el cdigo era capaz de entenderlo y
eso no era en absoluto prctico.
La llamada crisis del software ocurri cuando se percibi que se gastaba ms tiempo en
hacer las modificaciones a los programas que en volver a crear el software. La razn era que
ya se haban codificado millones de lneas de cdigo antes de que se definiera un buen
mtodo para crear los programas.
La solucin a esta crisis ha sido la definicin de la ingeniera del software como un oficio
que requera un mtodo de trabajo similar al del resto de ingenieras. La bsqueda de una
metodologa de trabajo que elimine esta crisis parece que an no est resuelta, de hecho los
mtodos de trabajo siguen redefinindose una y otra vez.
Errores
Cuando un programa obtiene una salida que no es la esperada, se dice que posee errores.
Los errores son uno de los caballos de batalla de los programadores ya que a veces son muy
difciles de encontrar (de ah que hoy en da en muchas aplicaciones se distribuyan parches
para subsanar errores no encontrados en la creacin de la aplicacin).
Tipos de errores
Error del usuario. Errores que se producen cuando el usuario realiza algo inesperado
y el programa no reacciona apropiadamente.
Error del programador. Son errores que ha cometido el programador al generar el
cdigo. La mayora de errores son de este tipo.
Errores de documentacin. Ocurren cuando la documentacin del programa no es
correcta y provoca fallos en el manejo
Error de interfaz. Ocurre si la interfaz de usuario de la aplicacin es enrevesada para
el usuario impidiendo su manejo normal. Tambin se llaman as los errores de
protocolo entre dispositivos.
Error de entrada / salida o de comunicaciones. Ocurre cuando falla la
comunicacin entre el programa y un dispositivo (se desea imprimir y no hay papel,
falla el teclado,...)
Error fatal. Ocurre cuando el hardware produce una situacin inesperado que el
software no puede controlar (el ordenador se cuelga, errores en la grabacin de
datos,...)
Error de ejecucin. Ocurren cuando la ejecucin del programa es ms lenta de lo
previsto.
La labor del programador es predecir, encontrar y subsanar (si es posible) o al menos
controlar los errores. Una mala gestin de errores causa experiencias poco gratas al usuario
de la aplicacin.

Programacin
Introduccin
La programacin consiste en pasar algoritmos a algn lenguaje de ordenador a fin de que
pueda ser entendido por el ordenador. La programacin de ordenadores comienza en los
aos 50 y su evolucin a pasado por diversos pasos.
La programacin se puede realizar empleando diversas tcnicas o mtodos. Esas tcnicas
definen los distintos tipos de programaciones.
Programacin desordenada
Se llama as a la programacin que se realizaba en los albores de la informtica (aunque
desgraciadamente en la actualidad muchos programadores siguen emplendola). En este
estilo de programacin, predomina el instinto del programador por encima del uso de
cualquier mtodo lo que provoca que la correccin y entendimiento de este tipo de
programas sea casi ininteligible.
Programacin estructurada
En esta programacin se utiliza una tcnica que genera programas que slo permiten utilizar
tres estructuras de control:
Secuencias (instrucciones que se generan secuencialmente)
Alternativas (sentencias if)
Iterativas (bucles condicionales)

Programacin modular
Completa la programacin anterior permitiendo la definicin de mdulos independientes cada
uno de los cuales se encargar de una tarea del programa. De esta forma el programador se
concentra en la codificacin de cada mdulo haciendo ms sencilla esta tarea. Al final se
deben integrar los mdulos para dar lugar a la aplicacin final.
El cdigo de los mdulos puede ser invocado en cualquier parte del cdigo. Realmente cada
mdulo se comporta como un subprograma que, partir de unas determinadas entradas
obtienen unas salidas concretas. Su funcionamiento no depende del resto del programa por
lo que es ms fcil encontrar los errores y realizar el mantenimiento.
Programacin orientada a objetos
Es la ms novedosa, se basa en intentar que el cdigo de los programas se parezca lo ms
posible a la forma de pensar de las personas. Las aplicaciones se representan en esta
programacin como una serie de objetos independientes que se comunican entre s.
Cada objeto posee datos y mtodos propios, por lo que los programadores se concentran en
programar independientemente cada objeto y luego generar el cdigo que inicia la
comunicacin entre ellos.
Es la programacin que ha revolucionado las tcnicas ltimas de programacin ya que han
resultado un importante xito gracias a la facilidad que poseen de encontrar fallos, de
reutilizar el cdigo y de documentar fcilmente el cdigo.

Lenguajes de programacin
Introduccin
Los lenguajes de programacin permiten codificar algoritmos en el ordenador. Son una serie
de smbolos e instrucciones de acuerdo con una sintaxis que facilita su posterior traduccin a
cdigo entendible por el ordenador.
En realidad los ordenadores slo reconocen un lenguaje formado por los unos y ceros del
cdigo binario. Segn la disposicin de esos unos y ceros entender unas instrucciones u
otras. De esa forma hay lenguajes ms prximos al lenguaje de las computadores
(lenguajes de bajo nivel) y lenguajes ms prximos al lenguaje humano (lenguajes de alto
nivel)
Cdigo mquina (lenguaje de primera generacin)
Est formado por una sucesin de unos y ceros que el procesador del ordenador reconoce
como instrucciones. Es el lenguaje que reconoce directamente el ordenador por lo tanto es el
que est a ms bajo nivel.
Slo se ha utilizado por los programadores en los inicios de la informtica. Su incomodidad
de trabajo hace que sea impensable para ser utilizado. Pero cualquier programa de
ordenador debe, finalmente, ser convertido a este cdigo para que un ordenador puede
ejecutar las instrucciones de dicho programa.
Un detalle a tener en cuente es que el cdigo mquina es distinto para cada tipo de
procesador. Lo que hace que los programas en cdigo mquina no sean portables entre
distintas mquinas.
Ensamblador (lenguajes de segunda generacin)
Se trata de un lenguaje que representa el cdigo mquina pero escrito con una serie de
trminos mnemotcnicos que facilitan su escritura. Despus un software especial se
encargar de traducir las instrucciones a cdigo mquina.
Este lenguaje tiene traduccin exacta al cdigo mquina, por lo que es un lenguaje diferente
para cada procesador; es decir, no es portable.
La ventaja de este lenguaje es que se puede controlar absolutamente el funcionamiento de la
mquina, lo que permite crear programas muy eficientes. Lo malo es precisamente que hay
que conocer muy bien el funcionamiento de la computadora para crear programas en estos
lenguajes. Adems las lneas requeridas para realizar una tarea se disparan ya que las
instrucciones de la mquina son excesivamente simples.


Lenguajes de alto nivel (lenguajes de tercera generacin)
Se aproximan ms al lenguaje de los humanos. Los programas se disean en un lenguaje
estricto pero independiente de la mquina, lo que permite que la escritura del cdigo cree
programas ejecutables en cualquier mquina.
Hace falta software que transforme el cdigo en el lenguaje de alto nivel en cdigo entendible
por el ordenador en un proceso conocido como interpretacin o compilacin (dependiendo
del lenguaje).
El cdigo es menos eficiente que en el caso anterior, pero es ms entendible y mucho ms
fcilmente corregible. Hoy en da casi todos los lenguajes son de alto nivel.
Lenguajes de cuarta generacin o 4GL (fourth generation languages)
Son lenguajes en los que apenas hay cdigo y en su lugar aparecen indicaciones sobre qu
es lo que el programa debe de obtener. En estos lenguajes hay herramientas de tipo ms
visual mediante las que se disea el funcionamiento del programa.
Los lenguajes de consulta de datos, creacin de formularios, informes,... son lenguajes de
cuarto nivel. Aparecieron con los sistemas de base de datos.

Metodologa de la programacin
Introduccin
Se entiende por metodologa el conjunto de reglas y pasos estrictos que se siguen para
desarrollar una aplicacin informtica completa. Hay diversas metodologas, algunas incluso
registradas (hay que pagar por utilizarlas).
Independientemente de la metodologa utilizada suele haber una serie de pasos comunes a
todas ellas (relacionados con el ciclo de vida de la aplicacin):
[1] Anlisis
[2] Diseo
[3] Codificacin
[4] Ejecucin
[5] Prueba
[6] Mantenimiento
[1] Anlisis
Al programar aplicaciones siempre se debe realizar un anlisis. El anlisis estudia los
requisitos que ha de cumplir la aplicacin. El resultado del anlisis es una hoja de
especificaciones en la que aparecen los requerimientos de la aplicacin. Esta hoja es
redactada por el o la analista, la persona responsable del proceso de creacin de la
aplicacin.
En la creacin de algoritmos sencillos, el anlisis consistira nicamente en:
Determinar las entradas. Es decir, los datos que posee el algoritmo cuando
comienza su ejecucin. Esos datos permiten obtener el resultado.
Determinar las salidas. Es decir, los datos que obtiene el algoritmo como resultado.
Lo que el algoritmo devuelve al usuario.
Determinar el proceso. Se estudia cul es el proceso que hay que realizar.

[2] Diseo
En esta fase se crean esquemas que simbolizan a la aplicacin. Estos esquemas los
elaboran analistas. Gracias a estos esquemas se simboliza la aplicacin. Estos esquemas en
definitiva se convierte en la documentacin fundamental para plasmar en papel lo que el
programador debe hacer.
En estos esquemas se pueden simbolizar: la organizacin de los datos de la aplicacin, el
orden de los procesos que tiene que realizar la aplicacin, la estructura fsica (en cuanto a
archivos y carpetas) que utilizar la aplicacin, etc.
La creacin de estos esquemas se puede hacer en papel, o utilizar una herramienta CASE
para hacerlo.
En el caso de la creacin de algoritmos, conviene en esta fase usar el llamado diseo
descendente. Mediante este diseo el problema se divide en mdulos, que, a su vez, se
vuelven a dividir a fin de solucionar problemas ms concretos. Al diseo descendente se le
llama tambin top-down. Gracias a esta tcnica un problema complicado se divide en
pequeos problemas que son ms fcilmente solucionables.
[3] Codificacin
Escritura de la aplicacin utilizando un lenguaje de programacin (C, Pascal, C++, Java,...).
Normalmente la herramienta utilizada en el diseo debe ser compatible con el lenguaje que
se utilizar para codificar. Es decir si se utiliza un lenguaje orientado a objetos, la
herramienta de diseo debe ser una herramienta que permita utilizar objetos.
[4] Ejecucin
Tras la escritura del cdigo, mediante un software especial se traduce a cdigo interpretable
por el ordenador (cdigo mquina). En este proceso pueden detectarse errores en el cdigo
que impiden su transformacin. En ese caso el software encargado de la traduccin
(normalmente un compilador o un intrprete) avisa de esos errores para que el
programador los pueda corregir.
[5] Prueba
Se trata de testear la aplicacin para verificar que su funcionamiento es el correcto. Para ello
se comprueban todas las entradas posibles, comprobando que las salidas son las
correspondientes.
[6] Mantenimiento
En esta fase se crea la documentacin del programa (paso fundamental en la creacin de
aplicaciones). Gracias a esa documentacin se pueden corregir futuros errores o renovar el
programa para incluir mejoras detectadas, operaciones que tambin se realizan en esta fase.

You might also like