Vous êtes sur la page 1sur 11

Fases en el desarrollo de un programa

En este captulo aprender lo que es un programa, cmo escribirlo y qu hacer para que el
ordenador lo ejecute y muestre los resultados perseguidos. Tambin adquirir conocimientos
generales acerca de los lenguajes de programacin utilizados para escribir programas. Despus,
nos centraremos en un lenguaje de programacin especfico y objetivo de este libro, Java,
presentando sus antecedentes y marcando la pauta a seguir para realzar un programa sencillo.
Qu es un programa
Probablemente alguna vez haya utilizado un ordenador para escribir un documento o para
divertirse con un juego. Recuerde que en el caso de escribir un documento, primero tuvo que
poner en marcha un procesador de textos, y que si quiso divertirse con un juego, lo primero que
tuvo que hacer fue poner en marcha el juego. Tanto en el procesador de textos como el juego son
programas de ordenador.
Poner un programa en marcha es sinnimo de ejecutarlo. Cuando ejecutamos un programa,
nosotros slo vemos el resultado que produce (el procesador de textos muestra en la pantalla el
texto que escribimos; el juego visualiza sobre la pantalla las imgenes que van sucediendo) pero
no vemos es guion seguido por el ordenador para conseguir estos resultados. Ese guion es el
programa.
Ahora, si nosotros escribimos un programa, entonces s que sabemos cmo trabaja y por qu
trabaja de esa forma. Esto es una forma muy diferente y curiosa de ver un programa de
ordenador. Lo cual no tiene nada que ver con la experiencia adquirida en la ejecucin de distintos
programas.
Ahora piense en un juego cualquiera. La pregunta es, qu hacemos si queremos ensear a otra
persona a jugar? Lgicamente le explicamos lo que se debe hacer; esto es, los pasos que tiene que
seguir. Dicho de otra forma, le damos instrucciones de cmo debe actuar. Esto es lo que hace un
programa de ordenador. Un programa no es ms que una serie de instrucciones dada al
ordenador en un lenguaje entendido por l, para decirle exactamente lo que queremos que haga.
Si el ordenador no entiende alguna instruccin, lo comunicar generalmente mediante mensajes
visualizados en la pantalla.
Lenguajes de programacin
Un programa tiene que escribirse en un leguaje entendible por el ordenador. Desde el punto de
vista fsico, un ordenador es una mquina electrnica. Los elementos fsicos (memoria, unidad
central de proceso, etc.) de que dispone el ordenador para representar los datos son de tipo
viario; esto es, cada elemento puede diferenciar dos estados (dos niveles de voltaje). Cada estado
se denomina genricamente bit y se simboliza por 0 o 1. Por tanto, para representar y manipular
informacin numrica, alfabtica y alfanumrica se emplean cadenas de bits. Segn esto, se
denomina byte a la cantidad de informacin empleada por un ordenador para representar un
carcter; generalmente un byte es una cadena de ocho bits.

As, por ejemplo, cuando un programa le dice al ordenador que visualice un mensaje sobre el
monitor, o que imprima sobre una impresora, las instrucciones correspondientes para llevar a
cabo esta accin, para que puedan ser entendibles por el ordenador, tienen que estar
almacenadas en la memoria como cadenas de bits. Esto hace pensar que escribir un programa
utilizando ceros y unos (lenguaje mquina), llevara mucho tiempo y con muchas posibilidades de
cometer errores. Por este motivo, se desarrollan lenguajes ensambladores.
Un lenguaje ensamblador utiliza cdigos nemotcnicos para indicarle al hardware (componentes
fsicos del ordenador) las operaciones que tiene que realizar. Un cdigo nemotcnico es una
palabra o abreviatura fcil de recordar que representa una tarea que debe realizar el procesador
del ordenador. Por ejemplo.
MOV AH, 4CH
El cdigo MOV expresa una operacin consistente en mover alguna informacin desde una
posicin de memoria a otra.
Para traducir un programa escrito en ensamblador a lenguaje mquina (cdigo binario) se utiliza
un programa llamado ensamblador que ejecutamos mediante el propio ordenador. Este programa
tomar como datos nuestro programa escrito en lenguaje mquina, lenguaje que entiende el
ordenador.



Cada modelo de ordenador, dependiendo del procesador que utilice, tiene su propio lenguaje
ensamblador. Debido esto decimos que estos lenguajes estn orientados a la mquina.
Hoy en da son ms utilizados los lenguajes orientados al problema o lenguajes de alto nivel. Estos
lenguajes utilizan una terminologa fcilmente comprensible que se aproxima ms al lenguaje
humano. En este caso la traduccin es llevada a cabo por otro programa denominado compilador.
Cada sentencia de un programa escrita en un lenguaje de alto nivel se descompone en general en
varias instrucciones en ensamblador. Por ejemplo:
printf( hola );
La funcin printf del lenguaje C le dice al ordenador que visualice en el monitor la cadena de
caracteres especificada. Este mismo proceso escrito en lenguaje ensamblador necesitar de varias
instrucciones. Lo mismo podramos decir del mtodo println de Java:
System.out.println( hola);
A diferencia de los lenguajes ensambladores, la utilizacin de lenguajes de alto nivel no quiere en
absoluto del conocimiento de la estructura del procesador que utiliza el ordenador, lo que facilita
la escritura de un programa.
Compiladores
Para traducir un programa escrito en un lenguaje de alto nivel (programa fuente) a lenguaje
mquina se utiliza un programa llamado compilador. Este programa tomar como datos nuestro
programa escrito en lenguaje de alto nivel y dar como resultado el mismo programa pero escrito
en lenguaje mquina, programa que ya puede ejecutar directa o indirectamente el ordenador.
Imagen aqu pgina 6
Por ejemplo, un programa escrito en el lenguaje C necesita del compilador C para poder ser
traducido. Posteriormente el programa traducido podr ser ejecutado directamente por el
ordenador. En cambio, para traducir un programa escrito en lenguaje Java necesita un compilador
Java; en este caso, el lenguaje mquina no corresponde al del ordenador sino al de una mquina
ficticia, denominada mquina virtual Java, que ser puesta en marcha por el ordenador para
ejecutar el programa.
Qu es una mquina virtual? Una mquina virtual que no existe fsicamente sino que es simulada
en un ordenador por un programa. Por qu utilizar una mquina virtual? Porque, por tratarse de
un programa, es muy fcil instalarla en cualquier ordenador, basta con copiar ese programa en su
Programa escrito
en lenguaje
ensamblador

Ensamblador
Programa escrito
en lenguaje
mquina
disco duro, por ejemplo. Y Qu ventajas reporta? Pues, en el caso de Java, que un lenguaje
escrito en este lenguaje y compilado, puede ser ejecutado en cualquier ordenador del mundo que
tenga instalada esa mquina virtual. Esta solucin hace posible que cualquier ordenador pueda
ejecutar un programa escrito en Java independientemente de la plataforma que utilice, lo que se
conoce como transportabilidad de programas.
Intrpretes
A diferencia de un compilador, un intrprete no genera un programa escrito en lenguaje mquina
a partir del programa fuente, sino que efecta la traduccin y ejecucin simultneamente para
cada una de las sentencias del programa. Por ejemplo, un programa escrito en lenguaje Basic
necesita el intrprete Basic para ser ejecutado. Durante la ejecucin de cada una de las sentencias
del programa, ocurre simultneamente la traduccin.
A diferencia de un compilador, un intrprete verifica cada lnea del programa cuando escribe, lo
que facilita la puesta a punto del programa. En cambio la ejecucin resulta ms lenta ya que
acarrea una traduccin simultnea.
Qu es Java?
Java es un lenguaje de programacin de alto nivel con el que se pueden escribir tantos programas
convencionales como para internet.
Una de las ventajas significativas de java sobre otros lenguajes de programacin es que
independientemente de la plataforma, tanto en cdigo fuente como en binario. Esto quiere decir
que el cdigo producido por el compilador Java puede transportarse a cualquier plataforma (Intel,
Spark, Motorola, etc.) que tenga instalada una mquina virtual Java y ejecutarse. Pensando en
Internet esta caracterstica por ejemplo, es independiente de la plataforma slo en cdigo fuente,
lo cual significa que cada plataforma diferente debe proporcionar el compilador adecuado para
obtener el cdigo mquina que tiene que ejecutarse.
Segn lo expuesto, Java incluye dos elementos: un compilador y un intrprete. El compilador
produce un cdigo de bytes que se almacena en un fichero para ser ejecutado por el intrprete
Java denominado mquina virtual de Java.
Imagen pgina 7.
Los cdigos de bytes de Java son un conjunto de instrucciones correspondientes a un lenguaje
mquina que no es especfico de ningn procesador si no de la mquina virtual de Java. Dnde
consigue esta mquina virtual? Hoy en da casi todas las compaas de sistemas operativos y
navegadores han implementado mquinas virtuales segn las especificaciones publicadas por Sun
Microsystems, propietario de Java, para que sean compatibles con el lenguaje Java. Para las
aplicaciones de internet (por ejemplo, los applets ) la mquina virtual est incluida en el navegador
y para las aplicaciones Java convencionales, puede venir con el sistema operativo, con el paquete
de Java, o bien puede obtenerse a travs de internet.
Por qu no se dise Java para que fuera un intrprete ms entre los que hay en el mercado? La
respuesta es porque la interpretacin, si bien es cierto que proporciona independencia de la
mquina, conlleva tambin a un problema grave, y es la prdida de velocidad en la ejecucin del
programa. Por esta razn la solucin fue disear un compilador que produjera un lenguaje que
pudiera ser interpretado a velocidades, si no iguales, s cercanas a la de los programas nativos
(programas en cdigo mquina propio de cada ordenador), logro conseguido mediante la mquina
virtual de Java.
Con todo, las aplicaciones todava adolecen de una falta de rendimiento apreciable. ste conjunto
de los problemas que siempre se ha acachado a Java. Afortunadamente, la diferencia de
rendimiento con respecto a aplicaciones equivalentes escritas en cdigo mquina nativo ha ido
disminuyendo hasta mrgenes muy reducidos gracias a la utilizacin de compiladores JIT (Just In
Time compilacin al instante). Un compilador JIT interacciona con la mquina virtual para
convertir el cdigo de bytes en cdigo mquina nativo. Como consecuencia, se mejora la velocidad
durante la ejecucin.
Historia de java
El lenguaje de programacin Java fue desarrollado por Sun Microsystems en 1991. Nace como
parte de un proyecto de investigacin para desarrollar software para comunicacin entre aparatos
electrnicos de consumo como vdeos, televisores, equipos de msica, etc. Durante la fase de
investigacin surgi un problema que dificultaba enormemente el proyecto iniciado: cada aparato
tena un microprocesador diferente y muy poco espacio de memoria; esto provoc un cambio en
el rumbo de la investigacin independiente del dispositivo que fue bautizado inicialmente como
Oak.
La explosin de internet en 1994, gracias al navegador grfico Mosaic para la Word Wide Web
(WWW), no pas desapercibida para el grupo investigador de Sun. Se dieron cuenta de que los
logros alcanzados en su proyecto de investigacin eran perfectamente aplicables a internet.
Comparativamente, internet era como un gran conjunto de aparatos electrnicos de consumo,
cada uno con un procesador diferente. Y es cierto; bsicamente, internet es una gran red mundial
que conecta mltiples ordenadores con diferentes sistemas operativos y diferentes arquitecturas
de microprocesadores, pero todos tienen en comn un navegador que utilizan para comunicarse
entre s. Esta idea hizo que el grupo investigador abandonara el proyecto de desarrollar un
lenguaje que permitiera la comunicacin entre aparatos electrnicos de consumo y dirigiera sus
investigaciones hacia el desarrollo de un lenguaje que permitiera crear aplicaciones que se
ejecutaran en cualquier ordenador de internet con el nico soporte de navegador.
A partir de aqu todo es conocido. Se empez a hablar de Java y de sus aplicaciones conocidas
como applets. Un applet es un programa escrito en Java que se ejecuta en el contexto de una
pgina Web en cualquier ordenador, independientemente de su sistema operativo y de la
arquitectura de su procesador. Para ejecutar un applet solo se necesita un navegador que soporte
la mquina virtual de Java como, por ejemplo, Microsoft Internet Explorer o Mozilla Firefox.
Utilizando un navegador de stos, se puede descargar la pgina Web que contiene applet y
ejecutarlo. Precisamente en este campo, a Java como lenguaje de programacin le han salido
otros competidores como Microsoft .NET que ofrece una mquina virtual, CLR, que admite varios
lenguajes como C#, Visual Basic, C/C++, etc. Java tambin puede utilizarse como un lenguaje de
propsito general, pero desde este punto de vista, hoy por hoy, Java tiene muchos competidores
que le sobrepasan con claridad; por ejemplo C++, Ada o Visual Basic.
Por qu aprender Java?
Una de las ventajas ms significativas de Java es su independencia de la plataforma. En el caso de
que tenga que desarrollar aplicaciones que tenga que ejecutarse en sistemas diferentes, esta
caracterstica es fundamental.
Otra caracterstica importante de Java es que es un lenguaje de programacin orientada a objetos
(POO). Los conceptos en los que se apoya esta tcnica de programacin y sus ventajas sern
expuestos en el captulo siguiente.
Adems de ser transportable y orientada a objetos, Java es un leguaje fcil de aprender. Tiene un
tamao pequeo favorece el desarrollo y reduce las posibilidades de cometer errores; a la ves es
potente y flexible.
Java est fundamentado en C++. Quiere esto decir que muchas de las sintaxis y diseo orientado a
objetos se tom de este lenguaje. Por lo tanto a los sectores que estn familiarizados con C++ y la
POO les ser muy fcil aprender a desarrollar aplicaciones con Java. Quiero advertir a este tipo de
potenciales usuarios de Java que en este lenguaje no existen puntero ni aritmtica de punteros,
las cadenas de caracteres son objetos y la administracin de memoria es automtica, lo que
elimina el problema que presenta C++ con las lagunas de memorias al olvidar liberar bloques de la
misma que fueron asignados dinmicamente.
Realizacin de un programa en java
En este apartado se van a exponer los pasos a seguir en la realizacin de un programa, por medio
de un ejemplo. La siguiente figura muestra de forma esquemtica lo que el usuario de Java
necesita y debe hacer para desarrollar un programa.
Imagen pgina 9.
Evidentemente, para poder escribir programas se necesita un entorno de desarrollo Java. Sun
Microsystems (adquirida por Oracle en 2009), propietario de Java, proporciona uno de forma
gratuita, Java Development kit (JDK), que se puede obtener en la direccin de internet:
http://www.oracle.com
En internet se encuentran todas las versiones para Windows, Macintosh y Linux (Solaris y otros).
Eche tambin una ojeada a los apndices.
Para instalar la versin que descargue una plataforma Windows, hay que ejecutar el fichero jdk-
vunn-windows-i586.exe. De manera predeterminada el paquete ser instalado en jdk1.v.0_mn,
pero se puede instalar en cualquier otra carpeta. A continuacin puede instalar en una carpeta
docs la documentacin que se proporciona en el fichero jdk-vunn-docs.zip. Puede ver ms detalles
sobre la instalacin en los apndices. Una vez realizada la instalacin, se puede observar un
contenido anlogo al siguiente:
Imagen pgina 10.
La carpeta bin contiene las herramientas de desarrollo. Esto es, los programas para
compilar (Javac), ejecutar (Java), depurar (jdb) y documentar (Javadoc) los programas
escritos en lenguajes de programacin java y otras herramientas como appletviewer para
ejecutar y depurar applets sin tener que utilizar un navegador, jar para manipular ficheros
.jar (un fichero .jar es una coleccin de clases Java y otros ficheros empaquetados en uno
solo), javah que es un fichero de cabecera para escribir mtodos nativos, javap para
descompilar ficheros compilados y extcheck para detectar conflictos jar.
La carpeta jre es el entorno de ejecucin de Java utilizado por el JDK. Es similar al
intrprete de Java (java), pero destinado a usuarios finales que no requieran todas las
opciones de desarrollo proporcionadas con la utilidad java. Incluye la mquina virtual la
biblioteca de clases, y otros ficheros que soportan la ejecucin de programas escritos en
Java. Este producto se puede obtener tambin en un fichero separado.
La carpeta lib contiene bibliotecas de clases adicionales y ficheros de soporte requeridos
por las herramientas de desarrollo.
Las carpetas demo y simple contienen ejemplos.
La carpeta include contiene los ficheros de cabecera que dan soporte para aadir a un
programa Java cdigo nativo (cdigo escrito en un lenguaje distinto de Java, por ejemplo
Ada o C++).
Tambin incluye en un fichero src.zip el cdigo fuente de todas las clases que forman el
ncleo de Java 2.
Slo falta un editor de cdigo fuente Java. Es suficiente con un editor de texto sin formato; por
ejemplo el bloc de notas de Windows. No obstante todo el trabajo de edicin, compilacin,
ejecucin y depuracin, se har mucho ms fcil si se utiliza un entorno desarrollado con interfaz
grfica de usuario que integre las herramientas mencionadas, en lugar de tener que utilizar la
interfaz de lnea de rdenes del JDK, como veremos a continuacin.
Entornos de desarrollo integrado para Java hay muchos: NetBeans de Sun, o Eclipse de la
comunidad de cdigo abierto Eclipse son los ms populares. En el CD que se adjunta con este libro
puede encontrar las direcciones URL para descargar NetBeans de Internet, en el apndice A puede
ver notas sobre su instalacin y en el apndice B, la forma de utilizarlo.
Cmo crear un programa
Un programa puede ser una aplicacin o un applet. Con este libro aprender principalmente a
escribir aplicaciones Java. Despus aplicar lo aprendido para escribir algunos applets y otros tipos
de aplicaciones. Empecemos con la creacin de una aplicacin sencilla: el clsico ejemplo de
mostrar un mensaje de saludo.
Esta sencilla aplicacin la realizaremos desde los dos puntos de vista comentados
anteriormente: utilizando la interfaz de lnea de rdenes del JDK y utilizando un entorno de
desarrollo integrado.
Interfaz de lnea de rdenes
Empecemos por editar el fichero fuente Java correspondiente a la aplicacin. Primeramente
visualizaremos el editor de textos que vayamos a utilizar; por ejemplo, el bloc de notas. El nombre
del fichero elegido para guardar el programa en el disco, debe tener como extensin java; por
ejemplo HolaMundo.java.
Una vez visualizado el editor, escribiremos el texto correspondiente al programa fuente. Escrbalo
tal como se muestra a continuacin. Observe que cada sentencia del lenguaje Java finaliza con un
punto y coma y que cada lnea del programa se finaliza pulsando la tecla entrar (Enter o ).

Qu hace este programa?
Comentamos brevemente cada lnea de este programa. No se apurare si algunos de los
trminos no quedan muy claros ya que todos ellos se vern con detalles de captulos
posteriores.
La primera lnea declara la clase de objetos holaMundo, por que el esqueleto de cualquier
aplicacin Java se basa en la definicin de una clase. A continuacin se escribe el cuerpo
de la clase encerrado entre los caracteres { y }. Ambos caracteres definen un bloque de
cdigo. Todas las acciones que van a llevar a cabo un programa java se colocan entre un
bloque de cdigo correspondiente a su clase. Las clases son la base de los programas
Java. Aprenderemos mucho sobre ellas en los prximos captulos.
Las siguientes lneas encerradas entre /* y */ son simplemente un comentario. Los
comentarios no son tenidos en cuenta por el compilador, pero ayudan a entender un
programa cuando se lee.
A continuacin se escribe el mtodo principal main. Observe que un mtodo se distingue
por el codificador () que aparece despus de su nombre y que el bloque de cdigo
correspondiente al mismo define las acciones que tiene que ejecutar dicho mtodo.
Cuando se ejecuta una aplicacin, Java espera que haya un mtodo main. Este mtodo
define el punto de entrada y de salida de la aplicacin.
En el ejemplo se observa que el mtodo main llama para su ejecucin al mtodo println
del objeto out miembro de la clase System de paquete java.lang de la biblioteca de Java,
que escribe como resultado la expresin que aparece especificada entre comillas. Una
secuencia de caracteres entre comillas se denomina cadena de caracteres.
Observe tambin que la sentencia que invoca a println finaliza con punto y coma, no
sucediendo lo mismo con la cabecera de la clase HolaMundo, ni tampoco con la cabecera
del mtodo main por que la sintaxis para ambos indica que a continuacin debe escribirse
el bloque del cdigo { } que definen. Resumiendo: un programa Java se basa en la
definicin de una clase, una clase contiene mtodos, adems de otras definiciones, y un
mtodo a su vez, contiene sentencias y otras definiciones, como veremos ms adelante.
Guardar el programa escrito en el disco
El programa editado est ahora en la memoria. Para que este trabajo pueda tener
continuidad, el programa escrito se debe grabar en el disco utilizando la orden
correspondiente del editor. Muy importante: el nombre del programa fuente debe ser el
mismo que el de la clase que contiene, respetando maysculas y minsculas. En nuestro
caso, el nombre de la clase es HolaMundo, por tanto el fichero debe guardarse con el
nombre de HolaMundo.java.
Compilar y ejecutar el programa
El siguiente paso es compilar el programa; esto es, traducir el programa fuente a cdigo
de bytes para posteriormente poder ejecutarlo. La orden para compilar el programa
HolaMundo.java es la siguiente:
Javac HolaMundo.java
Previamente, para que el sistema operativo encuentre la utilidad Javac, utilizando la lnea
de rdenes hay que aadir a la variable de entorno path la ruta de la carpeta donde se
encuentra esta utilidad y otras que utilizaremos a continuacin.
Por ejemplo:
Set path=%path%;c:\java\jdk1.6.00\bin
La expresin %path% representa el valor actual de la variable entorno path. Una ruta va
separada de la anterior por un punto y coma.
En la figura siguiente se puede observar el proceso seguido para compilar
HolaMundo.java desde la lnea de rdenes.

Obsrvese que para compilar un programa hay que especificar la extensin .java. El
resultado de la compilacin ser un fichero HolaMundo.class que contiene el cdigo de
bytes que ejecutar la mquina virtual de Java.


Todo lo publicado en este blog es parte del libro Java2 curso de programacin
cuarta edicin del Autor Francisco Javier Ceballos de la editorial Alfaomega Ra-
Ma (pgina 3-4). As que si vas a hacer uso de la informacin de este blog por
favor cita al autor original y por que no un poco de crditos para el blog no
vendran nada mal.
http://www.youtube.com/watch?v=25o_K02qvhs&list=SPF74627C567AB68AC
http://www.youtube.com/watch?v=4TRrnl1TgL0&list=SPF74627C567AB68AC
http://www.youtube.com/watch?v=jJF_10d856I&list=SPF74627C567AB68AC
http://www.youtube.com/watch?v=YuvCTWV0Zl0&list=SPF74627C567AB68AC
http://www.youtube.com/watch?v=OMkKkAypfqo&list=SPF74627C567AB68AC
http://www.youtube.com/watch?v=VDzzYqdZERQ&list=SPF74627C567AB68AC

Vous aimerez peut-être aussi