Beruflich Dokumente
Kultur Dokumente
Introduccin a la programacin.
Caso prctico
La evolucin de Internet y de las nuevas tecnologas, as como las diferentes posibilidades para establecer nuevas lneas de negocio para la
empresa BK Programacin, han hecho que Ada haya decidido abrir una va de innovacin. Para ello, su empresa deber realizar el desarrollo de
sus aplicaciones a travs de lenguajes y tcnicas de programacin modernos, aunque con una eficiencia y flexibilidad contrastadas.
Mara y Juan, ayudados y orientados por Ada, recordarn y ampliarn sus conocimientos relacionados con la programacin, permitindoles
crear software que pueda adaptarse a nuevas situaciones, como el funcionamiento en diferentes plataformas (PDA, Mviles, Web, etc.) o la
interaccin con bases de datos. Todo ello sin perder de vista de donde parten y hacia dnde quieren redirigir sus esfuerzos.
Estas innovaciones, junto a la predisposicin para adaptarse y evolucionar que BK Programacin est potenciando en todas sus reas,
repercutirn en una mayor capacidad de respuesta ante las necesidades de sus posibles clientes. En definitiva, conseguir mayor competitividad.
1.- Introduccin.
Cuntas acciones de las que has realizado hoy, crees que estn relacionadas con la programacin? Hagamos un repaso de los primeros instantes
del da: te ha despertado la alarma de tu telfono mvil o radio-despertador, has preparado el desayuno utilizando el microondas, mientras
desayunabas has visto u odo las ltimas noticias a travs de tu receptor de televisin digital terrestre, te has vestido y puede que hayas utilizado
el ascensor para bajar al portal y salir a la calle, etc. Quiz no es necesario que continuemos ms para darnos cuenta de que casi todo lo que nos
rodea, en alguna medida, est relacionado con la programacin, los programas y el tratamiento de algn tipo de informacin.
El volumen de datos que actualmente manejamos y sus innumerables posibilidades de tratamiento constituyen un vasto territorio en el que los
programadores tienen mucho que decir.
En esta primera unidad realizaremos un recorrido por los conceptos fundamentales de la programacin de aplicaciones. Iniciaremos nuestro
camino conociendo con qu vamos a trabajar, qu tcnicas podemos emplear y qu es lo que pretendemos conseguir. Continuando con el anlisis
de las diferentes formas de programacin existentes, identificaremos qu fases conforman el desarrollo de un programa, avanzaremos detallando
las caractersticas relevantes de cada uno de los lenguajes de programacin disponibles, para posteriormente, realizar una visin general del
lenguaje de programacin Java. Finalmente, tendremos la oportunidad de conocer con qu herramientas podramos desarrollar nuestros
programas, escogiendo entre una de ellas para ponernos manos a la obra utilizando el lenguaje Java.
Ada conoce bien lo que significa tener que llevar a cabo el proceso completo de creacin de software y sabe que, en ocasiones, no se le da la
importancia que debera a las fases iniciales de este proceso. Quiere que Juan, que desarrolla programas casi sin darse cuenta, recuerde las
ventajas que aporta un buen anlisis inicial de los problemas a solucionar y que no aborde el desarrollo de sus programas sentndose
directamente ante el ordenador a teclear cdigo.
1 de 27
05/04/2016 18:08
PROG01_Contenidos
Juan le comenta a Ada y a Mara: La verdad es que cuando conoces bien un lenguaje de programacin crees que puedes hacer cualquier
programa directamente sobre el ordenador, pero al final te das cuenta de que deberas haberte parado a planificar tu trabajo. Muchas veces tienes
que volver atrs, recodificar y en ocasiones, rehacer gran parte del programa porque lo que tienes no est bien planteado.
Mara, que permanece atenta a lo que dicen Ada y Juan, quiere aprender bien desde el principio y tendr la ventaja de tener a su lado a dos
expertos.
Generalmente, la primera razn que mueve a una persona hacia el aprendizaje de la programacin es utilizar el ordenador como herramienta
para resolver problemas concretos. Como en la vida real, la bsqueda y obtencin de una solucin a un problema determinado, utilizando
medios informticos, se lleva a cabo siguiendo unos pasos fundamentales. En la siguiente tabla podemos ver estas analogas.
Resolucin de problemas
En Programacin...
Anlisis del problema: requiere que el problema sea definido y comprendido claramente para que pueda
ser analizado con todo detalle.
En la vida real...
Observacin de la situacin o
problema.
Pensamos en una o varias posibles
Diseo o desarrollo de algoritmos: procedimiento paso a paso para solucionar el problema dado.
soluciones.
Aplicamos la solucin que
Resolucin del algoritmo elegido en la computadora: consiste en convertir el algoritmo en programa,
estimamos ms adecuada.
ejecutarlo y comprobar que soluciona verdaderamente el problema.
Los algoritmos son independientes de los lenguajes de programacin y de las computadoras donde se ejecutan. Un mismo algoritmo puede ser
expresado en diferentes lenguajes de programacin y podra ser ejecutado en diferentes dispositivos. Piensa en una receta de cocina, sta puede
2 de 27
05/04/2016 18:08
PROG01_Contenidos
ser expresada en castellano, ingls o francs, podra ser cocinada en fogn o vitrocermica, por un cocinero o ms, etc. Pero
independientemente de todas estas circunstancias, el plato se preparar siguiendo los mismos pasos.
La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos que permiten resolver el problema, deben escribirse en
un determinado lenguaje de programacin para que puedan ser ejecutados en el ordenador y as obtener la solucin.
Los lenguajes de programacin son slo un medio para expresar el algoritmo y el ordenador un procesador para ejecutarlo. El diseo de los
algoritmos ser una tarea que necesitar de la creatividad y conocimientos de las tcnicas de programacin. Estilos distintos, de distintos
programadores a la hora de obtener la solucin del problema, darn lugar a algoritmos diferentes, igualmente vlidos.
En esencia, todo problema se puede describir por medio de un algoritmo y las caractersticas fundamentales que stos deben cumplir son:
Debe ser preciso e indicar el orden de realizacin paso a paso.
Debe estar definido, si se ejecuta dos o ms veces, debe obtener el mismo resultado cada vez.
Debe ser finito, debe tener un nmero finito de pasos.
Pero cuando los problemas son complejos, es necesario descomponer stos en subproblemas ms simples y, a su vez, en otros ms pequeos.
Estas estrategias reciben el nombre de diseo descendente o diseo modular (top-down design). Este sistema se basa en el lema divide y
vencers.
Para representar grficamente los algoritmos que vamos a disear, tenemos a nuestra disposicin diferentes herramientas que ayudarn a
describir su comportamiento de una forma precisa y genrica, para luego poder codificarlos con el lenguaje que nos interese. Entre otras
tenemos:
Diagramas de flujo: Esta tcnica utiliza smbolos grficos para la representacin del algoritmo. Suele utilizarse en las fases de anlisis.
Pseudocdigo: Esta tcnica se basa en el uso de palabras clave en lenguaje natural, constantes, variables, otros objetos, instrucciones y
estructuras de programacin que expresan de forma escrita la solucin del problema. Es la tcnica ms utilizada actualmente.
Tablas de decisin: En una tabla son representadas las posibles condiciones del problema con sus respectivas acciones. Suele ser una
tcnica de apoyo al pseudocdigo cuando existen situaciones condicionales complejas.
Debes conocer
A continuacin te ofrecemos dos enlaces muy interesantes:
En el primer vdeo puedes ver los elementos grficos fundamentales que se utilizan para la generacin de diagramas de flujo.
En el segundo vdeo se realiza la construccin de un diagrama de flujo con una herramienta grfica y su transformacin a pseudocdigo.
Autoevaluacin
Rellena los huecos con los conceptos adecuados:
A los pasos que permiten resolver el problema, escritos en un lenguaje de programacin, para que puedan ser ejecutados en el ordenador y as
obtener la solucin, se les denomina:
.
3 de 27
05/04/2016 18:08
PROG01_Contenidos
Ada comenta con Juan y Mara los distintos enfoques para el desarrollo de programas que han existido a lo largo de la historia de la
programacin, destacando que todos van a tener que renovar su forma de pensar, si quieren comenzar a utilizar un lenguaje moderno que les
permita construir programas adaptados a las nuevas necesidades de sus clientes.
Cuntas formas existen de hacer las cosas? Supongo que estars pensando: varias o incluso, muchas. Pero cuando se establece un patrn para la
creacin de aplicaciones nos estamos acercando al significado de la palabra paradigma.
Paradigma de programacin: es un modelo bsico para el diseo y la implementacin de programas. Este modelo determinar como ser el
proceso de diseo y la estructura final del programa.
El paradigma representa un enfoque particular o filosofa para la construccin de software. Cada uno tendr sus ventajas e inconvenientes, ser
ms o menos apropiado, pero no es correcto decir que exista uno mejor que los dems.
Puedes acceder a un resumen de los diferentes paradigmas de programacin en el siguiente enlace:
Para saber ms
Te proponemos el siguiente enlace en el que encontrars informacin adicional sobre los diferentes paradigmas de programacin.
Paradigmas de programacin y lenguajes
Cul es el objetivo que se busca con la aplicacin de los diferentes enfoques? Fundamentalmente, reducir la dificultad para el mantenimiento
de las aplicaciones, mejorar el rendimiento del programador y, en general, mejorar la productividad y calidad de los programas.
Autoevaluacin
En qu paradigma de programacin podramos enmarcar el lenguaje de programacin Java?
Programacin Estructurada.
Programacin Declarativa.
4 de 27
05/04/2016 18:08
PROG01_Contenidos
Juan pregunta a Ada cmo van a realizar todo el proceso de produccin, y duda si el utilizar un nuevo lenguaje supondr cambiar drsticamente
los mtodos aprendidos en el pasado.
Ada tranquiliza a Juan y a Mara: Est claro que las fases principales que hemos estado llevando a cabo a lo largo de nuestros anteriores
proyectos se seguirn aplicando, aunque con algunas diferencias. Lo ms importante Juan, es que sigamos adecuadamente el mtodo de trabajo
para conseguir buenos resultados.
Me costar mucho trabajo adaptarme? pregunta Mara.
Ada le contesta sentndose a su lado: No te preocupes Mara, se trata de adaptar conocimientos que ya tienes y aprender algunos otros.
Sea cual sea el estilo que escojamos a la hora de automatizar una determinada tarea, debemos realizar el proceso aplicando un mtodo a nuestro
trabajo. Es decir, sabemos que vamos a dar solucin a un problema, aplicando una filosofa de desarrollo y lo haremos dando una serie de pasos
que deben estar bien definidos.
El proceso de creacin de software puede dividirse en diferentes fases:
Fase de resolucin del problema.
Fase de implementacin.
Fase de explotacin y mantenimiento.
A continuacin, analizaremos cada una de ellas.
a. Anlisis
Por lo general, el anlisis indicar la especificacin de requisitos que se deben cubrir. Los contactos entre el analista/programador y el
cliente/usuario sern numerosos, de esta forma podrn ser conocidas todas las necesidades que precisa la aplicacin. Se especificarn los
procesos y estructuras de datos que se van a emplear. La creacin de prototipos ser muy til para saber con mayor exactitud los puntos a
tratar.
El anlisis inicial ofrecer una idea general de lo que se solicita, realizando posteriormente sucesivos refinamientos que servirn para dar
respuesta a las siguientes cuestiones:
Cul es la informacin que ofrecer la resolucin del problema?
Qu datos son necesarios para resolver el problema?
La respuesta a la primera pregunta se identifica con los resultados deseados o las salidas del problema. La respuesta a la segunda pregunta
indicar qu datos se proporcionan o las entradas del problema.
En esta fase debemos aprender a analizar la documentacin de la empresa , investigar, observar todo lo que rodea el problema y recopilar
cualquier informacin til.
Ejercicio resuelto
5 de 27
05/04/2016 18:08
PROG01_Contenidos
b. Diseo
En esta etapa se convierte la especificacin realizada en la fase de anlisis en un diseo ms detallado, indicando el comportamiento o la
secuencia lgica de instrucciones capaz de resolver el problema planteado. Estos pasos sucesivos, que indican las instrucciones a ejecutar
por la mquina, constituyen lo que conocemos como algoritmo.
Consiste en plantear la aplicacin como una nica operacin global, e ir descomponindola en operaciones ms sencillas, detalladas y
especficas. En cada nivel de refinamiento, las operaciones identificadas se asignan a mdulos separados.
Hay que tener en cuenta que antes de pasar a la implementacin del algoritmo, hemos de asegurarnos que tenemos una solucin adecuada.
Para ello, todo diseo requerir de la realizacin de la prueba o traza del programa. Este proceso consistir en un seguimiento paso a
paso de las instrucciones del algoritmo utilizando datos concretos. Si la solucin aportada tiene errores, tendremos que volver a la fase de
anlisis para realizar las modificaciones necesarias o tomar un nuevo camino para la solucin. Slo cuando el algoritmo cumpla los
requisitos y objetivos especificados en la fase de anlisis se pasar a la fase de implementacin.
4.2.- Implementacin.
Si la fase de resolucin del problema requiere un especial cuidado en la realizacin del anlisis y el posterior diseo de la solucin, la fase de
implementacin cobra tambin una especial relevancia. Llevar a la realidad nuestro algoritmo implicar cubrir algunas etapas ms que se
detallan a continuacin.
a. Codificacin o construccin
Esta etapa consiste en transformar o traducir los resultados obtenidos a un determinado lenguaje de programacin. Para comprobar la
calidad y estabilidad de la aplicacin se han de realizar una serie de pruebas que comprueben las funciones de cada mdulo (pruebas
unitarias), que los mdulos funcionan bien entre ellos (pruebas de interconexin) y que todos funcionan en conjunto correctamente
(pruebas de integracin).
Cuando realizamos la traduccin del algoritmo al lenguaje de programacin debemos tener en cuenta las reglas gramaticales y la sintaxis
de dicho lenguaje. Obtendremos entonces el cdigo fuente, lo que normalmente conocemos por programa.
Pero para que nuestro programa comience a funcionar, antes debe ser traducido a un lenguaje que la mquina entienda. Este proceso de
traduccin puede hacerse de dos formas, compilando o interpretando el cdigo del programa.
Compilacin: Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programacin a lenguaje que la
mquina es capaz de interpretar.
Compilador: programa informtico que realiza la traduccin. Recibe el cdigo fuente, realiza un anlisis lexicogrfico, semntico y sintctico,
genera un cdigo intermedio no optimizado, optimiza dicho cdigo y finalmente, genera el cdigo objeto para una plataforma especfica.
Intrprete: programa informtico capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se
diferencian de los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de programacin al cdigo de
mquina del sistema, los intrpretes slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y
normalmente no guardan el resultado de dicha traduccin.
Una vez traducido, sea a travs de un proceso de compilacin o de interpretacin, el programa podr ser ejecutado.
b. Prueba de ejecucin y validacin
Para esta etapa es necesario implantar la aplicacin en el sistema donde va a funcionar, debe ponerse en marcha y comprobar si su
funcionamiento es correcto. Utilizando diferentes datos de prueba se ver si el programa responde a los requerimientos especificados, si se
detectan nuevos errores, si stos son bien gestionados y si la interfaz es amigable. Se trata de poner a prueba nuestro programa para ver su
respuesta en situaciones difciles.
Mientras se detecten errores y stos no se subsanen no podremos avanzar a la siguiente fase. Una vez corregido el programa y testeado se
documentar mediante:
6 de 27
05/04/2016 18:08
PROG01_Contenidos
Documentacin interna: Encabezados, descripciones, declaraciones del problema y comentarios que se incluyen dentro del cdigo
fuente.
Documentacin externa: Son los manuales que se crean para una mejor ejecucin y utilizacin del programa.
Autoevaluacin
Rellena los huecos con los conceptos adecuados:
En la fase de codificacin, hemos de tener en cuenta la
ste deber ser
o
4.3.- Explotacin.
Cuando el programa ya est instalado en el sistema y est siendo de utilidad para los usuarios, decimos que se encuentra en fase de explotacin.
Peridicamente ser necesario realizar evaluaciones y, si es necesario, llevar a cabo modificaciones para que el programa se adapte o actualice a
nuevas necesidades, pudiendo tambin corregirse errores no detectados anteriormente. Este proceso recibe el nombre de mantenimiento del
software.
Mantenimiento del software: es el proceso de mejora y optimizacin del software despus de su entrega al usuario final. Involucra cambios al
software en orden de corregir defectos y dependencias encontradas durante su uso, as como la adicin de nuevas funcionalidades para mejorar
la usabilidad y aplicabilidad del software.
Ser imprescindible aadir una documentacin adecuada que facilite al programador la comprensin, uso y modificacin de dichos programas.
Mara le pregunta a Juan: Juan, qu ocurre cuando terminas un programa? Se entrega al cliente y ya est? La verdad es que los programas
que he hecho han sido para uso propio y no s cmo termina el proceso con los clientes.
Contesta Juan: Pues vers, cuando terminas un programa, o crees que lo has terminado, hay que llevar a cabo toda clase de pruebas para ver
dnde puede fallar. Despus mejoras los posibles fallos y posteriormente se entrega al cliente, ah es donde ves si tu software ha sido bien
construido. El cliente lo utilizar y durante un tiempo puede ser que haya que arreglar alguna cosilla. Y cuando ya est todo correcto, en
ocasiones, se establece un contrato de mantenimiento con el cliente. Como ves, desarrollar software no consiste slo en programar y ya est.
Sean cuales sean las fases en las que realicemos el proceso de desarrollo de software, y casi independientemente de l, siempre se debe aplicar
un modelo de ciclo de vida.
Ciclo de vida del software: es una sucesin de estados o fases por las cuales pasa un software a lo largo de su "vida".
El proceso de desarrollo puede involucrar siempre las siguientes etapas mnimas:
Especificacin y Anlisis de requisitos.
Diseo.
Codificacin.
Pruebas.
Instalacin y paso a Produccin.
Mantenimiento.
Existen varios tipos de ciclos de vida del software, a continuacin te mostramos un resumen de los ms importantes.
7 de 27
05/04/2016 18:08
PROG01_Contenidos
Autoevaluacin
Entre los distintos tipos de ciclo de vida del software, los modelos incremental y en cascada son modelos del tipo evolutivo.
Verdadero.
Falso.
Ada y Juan estn recordando lo complejos que eran algunos lenguajes de programacin, Ada comenta: Cuando yo empec en esto, haba
relativamente pocos lenguajes de programacin y no permitan hacer programas como los que ahora desarrollamos.
Juan indica que l conoce las caractersticas generales de algunos lenguajes, pero que le gustara saber algo ms sobre los que hubo, hay y
habr.
Mara que asiente con la cabeza, piensa que aprender ms sobre los lenguajes disponibles en la actualidad puede ayudar a la hora de elegir entre
unos u otros.
Como hemos visto, en todo el proceso de resolucin de un problema mediante la creacin de software, despus del anlisis del problema y del
diseo del algoritmo que pueda resolverlo, es necesario traducir ste a un lenguaje que exprese claramente cada uno de los pasos a seguir para su
correcta ejecucin. Este lenguaje recibe el nombre de lenguaje de programacin.
Lenguaje de programacin: Conjunto de reglas sintcticas y semnticas, smbolos y palabras especiales establecidas para la construccin de
programas. Es un lenguaje artificial, una construccin mental del ser humano para expresar programas.
Gramtica del lenguaje: Reglas aplicables al conjunto de smbolos y palabras especiales del lenguaje de programacin para la construccin de
sentencias correctas.
Lxico: Es el conjunto finito de smbolos y palabras especiales, es el vocabulario del lenguaje.
Sintaxis: Son las posibles combinaciones de los smbolos y palabras especiales. Est relacionada con la forma de los programas.
Semntica: Es el significado de cada construccin del lenguaje, la accin que se llevar a cabo.
8 de 27
05/04/2016 18:08
PROG01_Contenidos
Hay que tener en cuenta que pueden existir sentencias sintcticamente correctas, pero semnticamente incorrectas. Por ejemplo, Un avestruz
dio un zarpazo a su cuidador est bien construida sintcticamente, pero es evidente que semnticamente no.
Una caracterstica relevante de los lenguajes de programacin es, precisamente, que ms de un programador pueda usar un conjunto comn de
instrucciones que sean comprendidas entre ellos. A travs de este conjunto se puede lograr la construccin de un programa de forma
colaborativa.
Los lenguajes de programacin pueden ser clasificados en funcin de lo cerca que estn del lenguaje humano o del lenguaje de los
computadores. El lenguaje de los computadores son cdigos binarios, es decir, secuencias de unos y ceros. Detallaremos seguidamente las
caractersticas principales de los lenguajes de programacin.
Este es el lenguaje utilizado directamente por el procesador, consta de un conjunto de instrucciones codificadas en binario. Es el sistema de
cdigos directamente interpretable por un circuito microprogramable.
Este fue el primer lenguaje utilizado para la programacin de computadores. De hecho, cada mquina tena su propio conjunto de instrucciones
codificadas en ceros y unos. Cuando un algoritmo est escrito en este tipo de lenguaje, decimos que est en cdigo mquina.
Programar en este tipo de lenguaje presentaba los siguientes inconvenientes:
Cada programa era vlido slo para un tipo de procesador u ordenador.
La lectura o interpretacin de los programas era extremadamente difcil y, por tanto, insertar modificaciones resultaba muy costoso.
Los programadores de la poca deban memorizar largas combinaciones de ceros y unos, que equivalan a las instrucciones disponibles
para los diferentes tipos de procesadores.
Los programadores se encargaban de introducir los cdigos binarios en el computador, lo que provocaba largos tiempos de preparacin y
posibles errores.
A continuacin, se muestran algunos cdigos binarios equivalentes a las operaciones de suma, resta y movimiento de datos en lenguaje mquina.
Algunas operaciones en
lenguaje mquina.
Operacin Lenguaje mquina
SUMAR 00101101
RESTAR 00010011
MOVER 00111010
Dada la complejidad y dificultades que ofreca este lenguaje, fue sustituido por otros ms sencillos y fciles utilizar. No obstante, hay que tener
en cuenta que todos los programas para poder ser ejecutados, han de traducirse siempre al lenguaje mquina que es el nico que entiende la
computadora.
Para saber ms
Como recordatorio, te proponemos el siguiente enlace sobre cmo funciona el sistema binario.
9 de 27
05/04/2016 18:08
PROG01_Contenidos
Autoevaluacin
Rellena los huecos con los conceptos adecuados:
En el lenguaje mquina de algunos procesadores, la combinacin 00101101 equivale a la operacin de
En el siguiente grfico puedes ver parte de un programa escrito en lenguaje ensamblador. En color rojo se ha resaltado el cdigo mquina en
hexadecimal, en magenta el cdigo escrito en ensamblador y en azul, las direcciones de memoria donde se encuentra el cdigo.
Pero aunque ensamblador fue un intento por aproximar el lenguaje de los procesadores al lenguaje humano, presentaba mltiples dificultades:
Los programas seguan dependiendo directamente del hardware que los soportaba.
Los programadores tenan que conocer detalladamente la mquina sobre la que programaban, ya que deban hacer un uso adecuado de los
recursos de dichos sistemas.
La lectura, interpretacin o modificacin de los programas segua presentando dificultades.
Todo programa escrito en lenguaje ensamblador necesita de un intermediario, que realice la traduccin de cada una de las instrucciones que
componen su cdigo al lenguaje mquina correspondiente. Este intermediario es el programa ensamblador. El programa original escrito en
lenguaje ensamblador constituye el cdigo fuente y el programa traducido al lenguaje mquina se conoce como programa objeto que ser
directamente ejecutado por la computadora.
10 de 27
05/04/2016 18:08
PROG01_Contenidos
Para paliar los problemas derivados del uso del lenguaje ensamblador y con el objetivo de acercar la programacin hacia el uso de un lenguaje
ms cercano al humano que al del computador, nacieron los lenguajes compilados. Algunos ejemplos de este tipo de lenguajes son: Pascal,
Fortran, Algol, C, C++, etc.
Al ser lenguajes ms cercanos al humano, tambin se les denomina lenguajes de alto nivel. Son ms fciles de utilizar y comprender, las
instrucciones que forman parte de estos lenguajes utilizan palabras y signos reconocibles por el programador.
Cules son sus ventajas?
Son mucho ms fciles de aprender y de utilizar que sus predecesores.
Se reduce el tiempo para desarrollar programas, as como los costes.
Son independientes del hardware, los programas pueden ejecutarse en diferentes tipos de mquina.
La lectura, interpretacin y modificacin de los programas es mucho ms sencilla.
Pero un programa que est escrito en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la mquina. Los
programas traductores que pueden realizar esta operacin se llaman compiladores.
Compilador: Es un programa cuya funcin consiste en traducir el cdigo fuente de un programa escrito en un lenguaje de alto nivel a lenguaje
mquina. Al proceso de traduccin se le conoce con el nombre de compilacin.
Para ilustrar el proceso de compilacin de programas te proponemos el siguiente enlace:
Proceso de compilacin en varias plataformas
El compilador realizar la traduccin y adems informar de los posibles errores. Una vez subsanados, se generar el programa traducido a
cdigo mquina, conocido como cdigo objeto. Este programa an no podr ser ejecutado hasta que no se le aadan los mdulos de enlace o
bibliotecas, durante el proceso de enlazado. Una vez finalizado el enlazado, se obtiene el cdigo ejecutable.
Autoevaluacin
Durante la fase de enlazado, se incluyen en el cdigo fuente determinados mdulos (bibliotecas) que son necesarios para que el
programa pueda realizar ciertas tareas, posteriormente se obtendr el cdigo ejecutable.
Verdadero.
Falso.
Los lenguajes interpretados generan programas de menor tamao que los generados por un compilador, al no guardar el programa traducido a
cdigo mquina. Pero presentan el inconveniente de ser algo ms lentos, ya que han de ser traducidos durante su ejecucin. Por otra parte,
necesitan disponer en la mquina del programa intrprete ejecutndose, algo que no es necesario en el caso de un programa compilado, para los
que slo es necesario tener el programa ejecutable para poder utilizarlo.
Ejemplos de lenguajes interpretados son: Perl, PHP, Python, JavaScript, etc.
A medio camino entre los lenguajes compilados y los interpretados, existen los lenguajes que podemos denominar pseudo-compilados o
pseudo-interpretados, es el caso del Lenguaje Java. Java puede verse como compilado e interpretado a la vez, ya que su cdigo fuente se
compila para obtener el cdigo binario en forma de bytecodes, que son estructuras parecidas a las instrucciones mquina, con la importante
propiedad de no ser dependientes de ningn tipo de mquina (se detallarn ms adelante). La Mquina Virtual Java se encargar de interpretar
este cdigo y, para su ejecucin, lo traducir a cdigo mquina del procesador en particular sobre el que se est trabajando.
Debes conocer
Puedes entender por qu Java es un lenguaje compilado e interpretado a travs del siguiente esquema.
El lenguaje Java es compilado e interpretado.
11 de 27
05/04/2016 18:08
PROG01_Contenidos
Autoevaluacin
En Java el cdigo fuente es compilado, obtenindose el cdigo binario en forma de bytecodes. Pero, Cul es la extensin del archivo
resultante?
Extensin .obj.
Extensin .class.
Extensin .Java.
Ada indica a Juan y Mara que el lenguaje elegido para sus desarrollos va a ser Java. La flexibilidad, facilidad
de aprendizaje, similitud con algunos lenguajes que ya conocen y su capacidad para adaptarse a cualquier plataforma, hacen que sea ideal para
producir las nuevas aplicaciones de BK Programacin.
Java es un lenguaje sencillo de aprender, con una sintaxis parecida a la de C++, pero en la que se han eliminado elementos complicados y que
pueden originar errores. Java es orientado a objetos, con lo que elimina muchas preocupaciones al programador y permite la utilizacin de gran
cantidad de bibliotecas ya definidas, evitando reescribir cdigo que ya existe. Es un lenguaje de programacin creado para satisfacer nuevas
necesidades que los lenguajes existentes hasta el momento no eran capaces de solventar.
Una de las principales virtudes de Java es su independencia del hardware, ya que el cdigo que se genera es vlido para cualquier plataforma.
Este cdigo ser ejecutado sobre una mquina virtual denominada Maquina Virtual Java (MVJ o JVM Java Virtual Machine), que
interpretar el cdigo convirtindolo a cdigo especfico de la plataforma que lo soporta. De este modo el programa se escribe una nica vez y
puede hacerse funcionar en cualquier lugar. Lema del lenguaje: Write once, run everywhere.
Antes de que apareciera Java, el lenguaje C era uno de los ms extendidos por su versatilidad. Pero cuando los programas escritos en C
aumentaban de volumen, su manejo comenzaba a complicarse. Mediante las tcnicas de programacin estructurada y programacin modular se
conseguan reducir estas complicaciones, pero no era suficiente.
Fue entonces cuando la Programacin Orientada a Objetos (POO) entra en escena, aproximando notablemente la construccin de programas al
pensamiento humano y haciendo ms sencillo todo el proceso. Los problemas se dividen en objetos que tienen propiedades e interactan con
otros objetos, de este modo, el programador puede centrarse en cada objeto para programar internamente los elementos y funciones que lo
componen.
Las caractersticas principales de lenguaje Java se resumen a continuacin:
El cdigo generado por el compilador Java es independiente de la arquitectura.
Est totalmente orientado a objetos.
Su sintaxis es similar a C y C++.
Es distribuido, preparado para aplicaciones TCP/IP.
Dispone de un amplio conjunto de bibliotecas.
Es robusto, realizando comprobaciones del cdigo en tiempo de compilacin y de ejecucin.
La seguridad est garantizada, ya que las aplicaciones Java no acceden a zonas delicadas de memoria o de sistema.
12 de 27
05/04/2016 18:08
PROG01_Contenidos
Debes conocer
Obtn una descripcin detallada de las caractersticas reseadas anteriormente a travs del siguiente artculo:
Caractersticas detalladas del lenguaje Java
Para saber ms
Si deseas conocer ms sobre los orgenes del lenguaje Java, aqu te ofrecemos ms informacin:
Los orgenes de Java
Historia de Java
Lnea de tiempo de la historia de Java
13 de 27
05/04/2016 18:08
PROG01_Contenidos
definir sus caractersticas y qu va a saber hacer. Cuando esta fase est terminada, la obra se desarrollar sacando personajes a escena y
hacindoles interactuar.
Al emplear los conceptos de la Programacin Orientada a Objetos (POO), Java incorpora las tres caractersticas propias de este paradigma:
encapsulacin, herencia y polimorfismo. Los patrones o tipos de objetos se denominan clases y los objetos que utilizan estos patrones o
pertenecen a dichos tipos, se identifican con el nombre de instancias. Pero, no hay que alarmarse, estos conceptos se vern ms adelante en
sucesivas unidades.
Otro ejemplo para seguir aclarando ideas, piensa en los bloques de juegos de construccin. Suponemos que conoces los cubos de plstico en
varios colores y tamaos. Por una de sus caras disponen de pequeos conectores circulares y en otra de sus caras pequeos orificios en los que
pueden conectarse otros bloques, con el objetivo principal de permitir construir formas ms grandes. Si usas diferentes piezas del lego puedes
construir aviones, coches, edificios, etc. Si te fijas bien, cada pieza es un objeto pequeo que puede unirse con otros objetos para crear objetos
ms grandes.
Pues bien, aproximadamente as es como funciona la programacin dirigida a objetos: unimos elementos pequeos para construir otros ms
grandes. Nuestros programas estarn formados por muchos componentes (objetos) independientes y diferentes; cada uno con una funcin
determinada en nuestro software y que podr comunicarse con los dems de una manera predefinida.
Autoevaluacin
Qu elemento es imprescindible para que una aplicacin escrita en Java pueda ejecutarse en un ordenador?
Que disponga de conexin a Internet y del hardware adecuado.
Que tenga instalado un navegador web y conexin a Internet.
Que tenga la Mquina Virtual Java adecuada instalada.
14 de 27
05/04/2016 18:08
PROG01_Contenidos
15 de 27
Junto a las caractersticas diferenciadoras del lenguaje Java relacionadas con la independencia y el trabajo en red, han de destacarse dos virtudes
que hacen a este lenguaje uno de los ms extendidos entre la comunidad de programadores: su seguridad y su simplicidad.
a. Seguridad: En primer lugar, los posibles accesos a zonas de memoria sensibles que en otros lenguajes como C y C++ podan suponer
peligros importantes, se han eliminado en Java.
En segundo lugar, el cdigo Java es comprobado y verificado para evitar que determinadas secciones del cdigo produzcan efectos no
deseados. Los test que se aplican garantizan que las operaciones, operandos, conversiones, uso de clases y dems acciones son seguras.
Y en tercer lugar, Java no permite la apertura de ficheros en la mquina local, tampoco permite ejecutar ninguna aplicacin nativa de una
plataforma e impide que se utilicen otros ordenadores como puente, es decir, nadie puede utilizar nuestra mquina para hacer peticiones o
realizar operaciones con otra.
En definitiva, podemos afirmar que Java es un lenguaje seguro.
b. Simplicidad: Aunque Java es tan potente como C o C++, es bastante ms sencillo. Posee una curva de aprendizaje muy rpida y, para
alguien que comienza a programar en este lenguaje, le resulta relativamente fcil comenzar a escribir aplicaciones interesantes.
Si has programado alguna vez en C o C++ encontrars que Java te pone las cosas ms fciles, ya que se han eliminado: la aritmtica de
punteros, los registros, la definicin de tipos, la gestin de memoria, etc. Con esta simplificacin se reduce bastante la posibilidad de
cometer errores comunes en los programas. Un programador experimentado en C o C++ puede cambiar a este lenguaje rpidamente y
obtener resultados en muy poco espacio de tiempo.
Muy relacionado con la simplicidad que aporta Java est la incorporacin de un elemento muy til como es el Recolector de Basura
(Garbage collector). Permite al programador liberarse de la gestin de la memoria y hace que ciertos bloques de memoria puedan
reaprovecharse, disminuyendo el nmero de huecos libres (fragmentacin de memoria).
Cuando realicemos programas, crearemos objetos, haremos que stos interaccionen, etc. Todas estas operaciones requieren de uso de
memoria del sistema, pero la gestin de sta ser realizada de manera transparente al programador. Todo lo contrario que ocurra en otros
lenguajes. Podremos crear tantos objetos como solicitemos, pero nunca tendremos que destruirlos. El entorno de Java borrar los objetos
cuando determine que no se van a utilizar ms. Este proceso es conocido como recoleccin de basura.
Autoevaluacin
Rellena los huecos con los conceptos adecuados:
En Java se ha simplificado la gestin de memoria a travs de la eliminacin de la Aritmtica de
, por lo que la incorporacin
del Garbage Collector evita que se produzca un crecimiento de los huecos libres en memoria, que recibe el nombre de
de memoria.
Una vez escrito el cdigo fuente (archivos con extensin .Java), ste es precompilado generndose los cdigos de bytes, Bytecodes o Java
Bytecodes (archivos con extensin .class) que sern interpretados directamente por la Maquina Virtual Java y traducidos a cdigo nativo de la
plataforma sobre la que se est ejecutando el programa.
Bytecode: Son un conjunto de instrucciones en lenguaje mquina que no son especficas a ningn procesador o sistema de cmputo. Un
intrprete de cdigo de bytes (bytecodes) para una plataforma especfica ser quien los ejecute. A estos intrpretes tambin se les conoce como
05/04/2016 18:08
PROG01_Contenidos
Juan celebra que BK Programacin vaya a desarrollar sus programas en un lenguaje como Java. En algunas ocasiones ha asistido a congresos y
ferias de exposiciones de software en las que ha podido intercambiar impresiones con compaeros de profesin sobre los diferentes lenguajes
que utilizan en sus proyectos. Una gran mayora destacaba lo fcil y potente que es programar en Java.
Juan est entusiasmado y pregunta: Ada, cundo empezamos? Tienes cdigo fuente para empezar a ver la sintaxis? Podremos utilizar
algn entorno de desarrollo profesional?
Ada responde sonriendo: Manos a la obra! Mara, preparada? Vamos a echarle un vistazo a este fragmento de cdigo...
Hasta ahora, hemos descrito el lenguaje de programacin Java, hemos hecho un recorrido por su historia y nos hemos instruido sobre su filosofa
de trabajo, pero te preguntars Cundo empezamos a desarrollar programas? Qu elementos forman parte de un programa en Java? Qu se
necesita para programar en este lenguaje? Podemos crear programas de diferente tipo?
No te impacientes, cada vez estamos ms cerca de comenzar la experiencia con el lenguaje de programacin Java. Iniciaremos nuestro camino
conociendo cuales son los elementos bsicos de un programa Java, la forma en que debemos escribir el cdigo y los tipos de aplicaciones que
pueden crearse en este lenguaje.
Vamos a analizar cada uno de los elementos que aparecen en dicho grfico:
Todos los programas han de incluir una clase como esta. Es una clase general en la que se incluyen todos los
dems elementos del programa. Entre otras cosas, contiene el mtodo o funcin main() que representa al programa principal, desde el que se
llevar a cabo la ejecucin del programa. Esta clase puede contener a su vez otras clases del usuario, pero slo una puede ser public. El nombre
del fichero .Java que contiene el cdigo fuente de nuestro programa, coincidir con el nombre de la clase que estamos describiendo en estas
lneas.
public class Clase_Principal:
16 de 27
05/04/2016 18:08
PROG01_Contenidos
Recomendacin
Ten en cuenta que Java distingue entre maysculas y minsculas. Si le das a la clase principal el nombre PrimerPrograma, el archivo .Java
tendr como identificador PrimerPrograma.Java, que es totalmente diferente a primerprograma.Java. Adems, para Java los elementos
PrimerPrograma y primerprograma seran considerados dos clases diferentes dentro del cdigo fuente.
public static void main (String[] args):
Comentarios: Los comentarios se suelen incluir en el cdigo fuente para realizar aclaraciones, anotaciones o cualquier otra indicacin
que el programador estime oportuna. Estos comentarios pueden introducirse de dos formas, con // y con /* */. Con la primera forma
estaramos estableciendo una nica lnea completa de comentario y, con la segunda, con /* comenzaramos el comentario y ste no
terminara hasta que no insertramos */.
Bloques de cdigo: son conjuntos de instrucciones que se marcan mediante la apertura y cierre de llaves { }. El cdigo as marcado es
considerado interno al bloque.
Punto y coma: aunque en el ejemplo no hemos incluido ninguna lnea de cdigo que termine con punto y coma, hay que hacer hincapi
en que cada lnea de cdigo ha de terminar con punto y coma (;). En caso de no hacerlo, tendremos errores sintcticos.
Autoevaluacin
public static void main (String[] args)
Verdadero.
Falso.
Ya conoces cmo es la estructura de un programa en Java, pero, qu necesitamos para llevarlo a la prctica? La herramienta bsica para
empezar a desarrollar aplicaciones en Java es el JDK (Java Development Kit o Kit de Desarrollo Java), que incluye un compilador y un
intrprete para lnea de comandos. Estos dos programas son los empleados en la precompilacin e interpretacin del cdigo.
Como veremos, existen diferentes entornos para la creacin de programas en Java que incluyen multitud de herramientas, pero por ahora nos
centraremos en el entorno ms bsico, extendido y gratuito, el Java Development Kit (JDK). Segn se indica en la propia pgina web de Oracle,
JDK es un entorno de desarrollo para construir aplicaciones, applets y componentes utilizando el lenguaje de programacin Java. Incluye
herramientas tiles para el desarrollo y prueba de programas escritos en Java y ejecutados en la Plataforma Java.
As mismo, junto a JDK se incluye una implementacin del entorno de ejecucin Java, el JRE (Java Runtime Environment) para ser utilizado
por el JDK. El JRE incluye la Mquina Virtual de Java (MVJ JVM Java Virtual Machine), bibliotecas de clases y otros ficheros que soportan
la ejecucin de programas escritos en el lenguaje de programacin Java.
Debes conocer
Para poder utilizar JDK y JRE es necesario realizar la descarga e instalacin de stos. Puedes seguir los pasos del proceso a continuacin:
17 de 27
05/04/2016 18:08
PROG01_Contenidos
Autoevaluacin
Podemos desarrollar programas escritos en Java mediante un editor de textos y a travs del JRE podremos ejecutarlos.
Verdadero.
Falso.
Junto con el kit de desarrollo que hemos descargado e instalado anteriormente, vienen incluidas gratuitamente todas las bibliotecas de la API
(Aplication Programming Interface Interfaz de programacin de aplicaciones) de Java, es lo que se conoce como Bibliotecas de Clases Java.
Este conjunto de bibliotecas proporciona al programador paquetes de clases tiles para la realizacin de mltiples tareas dentro de un programa.
Est organizada en paquetes lgicos, donde cada paquete contiene un conjunto de clases relacionadas semnticamente.
En dcadas pasadas una biblioteca era un conjunto de programas que contenan cientos de rutinas (una rutina es un procedimiento o funcin bien
verificados, en determinado lenguaje de programacin). Las rutinas de biblioteca manejaban las tareas que todos o casi todos los programas
necesitaban. El programador poda recurrir a esta biblioteca para desarrollar programas con rapidez.
Una biblioteca de clases es un conjunto de clases de programacin orientada a objetos. Esas clases contienen mtodos que son tiles para los
programadores. En el caso de Java cuando descargamos el JDK obtenemos la biblioteca de clases API. Utilizar las clases y mtodos de las APIs
de Java reduce el tiempo de desarrollo de los programas. Tambin, existen diversas bibliotecas de clases desarrolladas por terceros que contienen
componentes reutilizables de software, y estn disponibles a travs de la Web.
Para saber ms
Si quieres acceder a la informacin oficial sobre la API de Java, te proponemos el siguiente enlace (est en Ingls).
Informacin oficial sobre la API de Java
Autoevaluacin
Indica qu no es la API de Java:
Un entorno integrado de desarrollo.
Un conjunto de bibliotecas de clases.
Una parte del JDK, incluido en el Java SE.
18 de 27
05/04/2016 18:08
PROG01_Contenidos
Para que podamos compilar y ejecutar ficheros Java es necesario que realicemos unos pequeos ajustes en la configuracin del sistema. Vamos a
indicarle dnde encontrar los ficheros necesarios para realizar las labores de compilacin y ejecucin, en este caso Javac.exe y Java.exe, as
como las libreras contenidas en la API de Java y las clases del usuario.
La variable PATH: Como an no disponemos de un IDE (Integrated Development Environment - Entono Integrado de Desarrollo) la nica
forma de ejecutar programas es a travs de lnea de comandos. Pero slo podremos ejecutar programas directamente si la ruta hacia ellos est
indicada en la variable PATH del ordenador. Es necesario que incluyamos la ruta hacia estos programas en nuestra variable PATH. Esta ruta ser
el lugar donde se instal el JDK hasta su directorio bin.
Para ello, sigue las indicaciones que te mostramos a continuacin:
Debes conocer
En la siguiente animacin aprenders como configurar la variable PATH en Windows.
Para saber ms
Si deseas conocer ms sobre la configuracin de variables de entorno en sistemas Windows y Linux, te proponemos los siguientes enlaces:
Configurar el PATH en Windows
Configurar variables de entorno en Ubuntu
La variable CLASSPATH: esta variable de entorno establece dnde buscar las clases o biblitecas de la API de Java, as como las clases creadas
por el usuario. Es decir, los ficheros .class que se obtienen una vez compilado el cdigo fuente de un programa escrito en Java. Es posible que
en dicha ruta existan directorios y ficheros comprimidos en los formatos zip o jar que pueden ser utilizados directamente por el JDK,
conteniendo en su interior archivos con extensin class.
(Por ejemplo: C:\Program Files\Java\jdk1.6.0_25\bin)
Si no existe la variable CLASSPATH debes crearla, para modificar su contenido sigue el mismo mtodo que hemos empleado para la
modificacin del valor de la variable PATH, anteriormente descrito. Ten en cuenta que la ruta que debes incluir ser el lugar donde se instal el
JDK hasta su directorio lib.
(Por ejemplo: C:\Program Files\Java\jdk1.6.0_25\lib)
Autoevaluacin
Qu variable de sistema o de entorno debemos configurar correctamente para que podamos compilar directamente desde la lnea de
comandos nuestros programas escritos en lenguaje Java?
CLASSPATH.
19 de 27
05/04/2016 18:08
PROG01_Contenidos
El resultado de la compilacin ser un archivo con el mismo nombre que el archivo Java pero con la extensin class. Esto ya es el archivo con
el cdigo en forma de bytecode. Es decir con el cdigo precompilado. Si en el cdigo fuente de nuestro programa figuraran ms de una clase,
veremos como al realizar la compilacin se generarn tantos archivos con extensin .class como clases tengamos. Adems, si estas clases
tenan mtodo main podremos ejecutar dichos archivos por separado para ver el funcionamiento de dichas clases.
Para que el programa pueda ser ejecutado, siempre y cuando est incluido en su interior el mtodo main, podremos utilizar el interprete incluido
en el kit de desarrollo.
La ejecucin de nuestro programa desde la lnea de comandos podremos hacerla escribiendo:
Java archivo.class
Ejercicio resuelto
Vamos a llevar a la prctica todo lo que hemos estado detallando a travs de la creacin, compilacin y ejecucin de un programa sencillo
escrito en Java.
Observa el cdigo que se muestra ms abajo, seguro que podrs entender parte de l. Cpialo en un editor de texto, respetando las maysculas y
las minsculas. Puedes guardar el archivo con extensin .Java en la ubicacin que prefieras. Recuerda que el nombre de la clase principal (en el
cdigo de ejemplo MiModulo) debe ser exactamente igual al del archivo con extensin .Java, si tienes esto en cuenta la aplicacin podr ser
compilada correctamente y ejecutada.
/**
* La clase MiModulo implementa una aplicacin que
* simplemente imprime "Mdulo profesional - Programacin" en pantalla.
*/
class MiModulo {
public static void main(String[] args) {
System.out.println("Mdulo profesional - Programacin"); // Muestra la cadena de caracteres.
}
}
Accede a la lnea de comandos y teclea, en la carpeta donde has guardado el archivo Java, el comando para compilarlo: Javac MiModulo.Java
El compilador genera entonces un fichero de cdigo de bytes: MiModulo.class. Si visualizas ahora el contenido de la carpeta vers que en ella
est el archivo .Java y uno o varios (depende de las clases que contenga el archivo con el cdigo fuente) archivos .class.
Finalmente, para realizar la ejecucin del programa debes utilizar la siguiente sentencia:
Java MiModulo.Java
20 de 27
05/04/2016 18:08
PROG01_Contenidos
La versatilidad del lenguaje de programacin Java permite al programador crear distintos tipos de aplicaciones. A continuacin, describiremos
las caractersticas ms relevantes de cada uno de ellos:
Aplicaciones de consola:
Son programas independientes al igual que los creados con los lenguajes tradicionales.
Se componen como mnimo de un archivo .class que debe contar necesariamente con el mtodo main.
No necesitan un navegador web y se ejecutan cuando invocamos el comando Java para iniciar la Mquina Virtual de Java (JVM).
De no encontrarse el mtodo main la aplicacin no podr ejecutarse.
Las aplicaciones de consola leen y escriben hacia y desde la entrada y salida estndar, sin ninguna interfaz grfica de usuario.
Aplicaciones grficas:
Aquellas que utilizan las clases con capacidades grficas, como Swing que es la biblioteca para la interfaz grfica de usuario
avanzada de la plataforma Java SE.
Incluyen las instrucciones import, que indican al compilador de Java que las clases del paquete Javax.swing se incluyan en la
compilacin.
Applets:
Son programas incrustados en otras aplicaciones, normalmente una pgina web que se muestra en un navegador. Cuando el
navegador carga una web que contiene un applet, ste se descarga en el navegador web y comienza a ejecutarse. Esto nos permite
crear programas que cualquier usuario puede ejecutar con tan solo cargar la pgina web en su navegador.
Se pueden descargar de Internet y se observan en un navegador. Los applets se descargan junto con una pgina HTML desde un
servidor web y se ejecutan en la mquina cliente.
No tienen acceso a partes sensibles (por ejemplo: no pueden escribir archivos), a menos que uno mismo le d los permisos
necesarios en el sistema.
No tienen un mtodo principal.
Son multiplataforma y pueden ejecutarse en cualquier navegador que soporte Java.
Servlets:
Son componentes de la parte del servidor de Java EE, encargados de generar respuestas a las peticiones recibidas de los clientes.
Los servlets, al contrario de los applets, son programas que estn pensados para trabajar en el lado del servidor y desarrollar
aplicaciones Web que interacten con los clientes.
Midlets:
Son aplicaciones creadas en Java para su ejecucin en sistemas de propsito simple o dispositivos mviles. Los juegos Java creados
para telfonos mviles son midlets.
Son programas creados para dispositivos embebidos (se dedican a una sola actividad), ms especficamente para la mquina virtual
Java MicroEdition (Java ME).
Generalmente son juegos y aplicaciones que se ejecutan en telfonos mviles.
Autoevaluacin
Un Applet es totalmente seguro ya que no puede acceder, en ningn caso, a zonas sensibles del sistema. Es decir, no podra borrar o
modificar nuestros archivos.
Verdadero.
Falso.
Ada, Juan y Mara estn navegando por Internet buscando informacin sobre herramientas que les faciliten trabajar en Java. Ada aconseja
utilizar alguno de los entornos de desarrollo integrado existentes, ya que las posibilidades y rapidez que ofrecen, aumentaran la calidad y
reduciran el tiempo requerido para desarrollar sus proyectos.
Juan, que est chateando con un miembro de un foro de programadores al que pertenece, corrobora lo que Ada recomienda.
En los comienzos de Java la utilizacin de la lnea de comandos era algo habitual. El programador escriba el cdigo fuente empleando un editor
de texto bsico, seguidamente, pasaba a utilizar un compilador y con l obtena el cdigo compilado. En un paso posterior, necesitaba emplear
una tercera herramienta para el ensamblado del programa. Por ltimo, poda probar a travs de la lnea de comandos el archivo ejecutable. El
problema surga cuando se produca algn error, lo que provocaba tener que volver a iniciar el proceso completo.
21 de 27
05/04/2016 18:08
PROG01_Contenidos
Estas circunstancias hacan que el desarrollo de software no estuviera optimizado. Con el paso del tiempo, se fueron desarrollando aplicaciones
que incluan las herramientas necesarias para realizar todo el proceso de programacin de forma ms sencilla, fiable y rpida. Para cada lenguaje
de programacin existen mltiples entornos de desarrollo, cada uno con sus ventajas e inconvenientes. Dependiendo de las necesidades de la
persona que va a programar, la facilidad de uso o lo agradable que le resulte trabajar con l, se elegir entre unos u otros entornos.
Para el lenguaje de programacin Java existen mltiples alternativas, siendo los principales entornos de desarrollo NetBeans (que cuenta con el
apoyo de la empresa Sun), Eclipse y JCreator. Los dos primeros son gratuitos, con soporte de idiomas y multiplataforma (Windows, Linux,
MacOS).
Y cul ser con el que vamos a trabajar? El entorno que hemos seleccionado llevar a cabo nuestros desarrollos de software en este mdulo
profesional ser NetBeans, al haber sido construido por la misma compaa que cre Java, ser de cdigo abierto y ofrecer capacidades
profesionales. Aunque, no te preocupes, tambin haremos un recorrido por otros entornos destacables.
9.1.- Qu son?
Son aplicaciones que ofrecen la posibilidad de llevar a cabo el proceso completo de desarrollo de software a travs de un nico programa.
Podremos realizar las labores de edicin, compilacin, depuracin, deteccin de errores, correccin y ejecucin de programas escritos en Java o
en otros lenguajes de programacin, bajo un entorno grfico (no mediante lnea de comandos). Junto a las capacidades descritas, cada entorno
aade otras que ayudan a realizar el proceso de programacin, como por ejemplo: cdigo fuente coloreado, plantillas para diferentes tipos de
aplicaciones, creacin de proyectos, etc.
Hay que tener en cuenta que un entorno de desarrollo no es ms que una fachada para el proceso de compilacin y ejecucin de un programa.
Qu quiere decir eso? Pues que si tenemos instalado un IDE y no tenemos instalado el compilador, no tenemos nada.
Para saber ms
Si deseas conocer algo ms sobre lo que son los Entornos Integrados de Desarrollo (IDE) accede a las definiciones que te proponemos a
continuacin:
Definicin de Entorno Integrado de Desarrollo
Definicin de Entorno Integrado de Desarrollo en Wikipedia
Debes conocer
Cada uno de los entornos nombrados ms arriba posee caractersticas que los hacen diferentes unos de otros, pero para tener una idea general de
la versatilidad y potencia de cada uno de ellos, accede a la siguiente tabla comparativa:
Comparativa entornos para Java
22 de 27
05/04/2016 18:08
PROG01_Contenidos
Pero, cul o cules son los ms utilizados por la comunidad de programadores Java? El puesto de honor se lo disputan entre Eclipse, IntelliJ
IDEA y NetBeans. En los siguientes epgrafes haremos una descripcin de NetBeans y Eclipse, para posteriormente desarrollar los puntos
claves del entorno NetBeans.
Para saber ms
Si quieres conocer la situacin actual de uso y comparar los diferentes entornos integrados de desarrollo para el lenguaje de programacin Java,
puedes ampliar datos en el siguiente artculo:
Artculo con comparativa sobre utilizacin de entornos Java. (En ingls)
Para acceder a los lugares de Internet donde obtener los diferentes entornos integrados de desarrollo, puedes utilizar la lista que te ofrecemos en
este enlace:
Listado con acceso a las webs de los diferentes entornos Java
Autoevaluacin
Cul de los siguientes entornos slo est soportado en la plataforma Windows?
Eclipse.
Intellij IDEA.
Jcreator.
Como se ha indicado anteriormente, el entorno de desarrollo que vamos a utilizar a lo largo de los contenidos del mdulo profesional ser
NetBeans. Por lo que vamos primero a analizar sus caractersticas y destacar las ventajas que puede aportar su utilizacin.
Se trata de un entorno de desarrollo orientado principalmente al lenguaje Java, aunque puede servir para otros lenguajes de programacin. Es un
producto libre y gratuito sin restricciones de uso. Es un proyecto de cdigo abierto de gran xito, con una comunidad de usuarios numerosa, en
continuo crecimiento y apoyado por varias empresas.
El origen de este entorno hay que buscarlo en un proyecto realizado por estudiantes de la Repblica Checa. Fue el primer IDE creado en
lenguaje Java. Un tiempo ms tarde, se form una compaa que sera comprada en 1999 por Sun Microsystems (quien haba creado el lenguaje
Java). Poco despus, Sun decidi que el producto sera libre y de cdigo abierto y naci Netbeans como IDE de cdigo abierto para crear
aplicaciones Java.
NetBeans lleva tiempo pugnando con Eclipse por convertirse en la plataforma ms importante para crear aplicaciones en Java. Hoy en da es un
producto en el que participan decenas de empresas con Sun a la cabeza. Sigue siendo software libre y ofrece las siguientes posibilidades:
Escribir cdigo en C, C++, Ruby, Groovy, Javascript, CSS y PHP adems de Java.
Permitir crear aplicaciones J2EE gracias a que incorpora servidores de aplicaciones Java (actualmente Glassfish y Tomcat)
Crear aplicaciones Swing de forma sencilla, al estilo del Visual Studio de Microsoft.
Crear aplicaciones JME para dispositivos mviles.
23 de 27
05/04/2016 18:08
PROG01_Contenidos
NetBeans contiene todos los mdulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiendo a la persona que va a
realizar el programa comenzar a trabajar inmediatamente.
Para saber ms
Encuentra ms informacin sobre esta plataforma en los enlaces que te proponemos a continuacin:
Informacin oficial sobre NetBeans
Versiones del entorno NetBeans
Para realizar la instalacin del entorno NetBeans, seguiremos los siguientes pasos bsicos:
1. Descarga de la versin deseada desde la web oficial o desde los enlaces propuestos ms abajo. La versin completa contiene todas las
posibilidades aunque es la ms pesada (unos 240 MegaBytes). En nuestro caso, por estar en fase de iniciacin, podra ser suficiente
descargar la versin ms bsica (unos 60 MegaBytes).
2. Seleccionar la plataforma o sistema operativo, existen versiones para Windows, Linux y MacOS. Tanto en Windows como en Linux, se
descarga un archivo ejecutable que se encarga de la instalacin.
3. Seleccionar el idioma.
4. Comenzar la descarga del archivo de instalacin ejecutable y una vez finalizada, lanzar ste, comenzando la instalacin en nuestro
equipo.
5. En las primeras pantallas, seleccionaremos los componentes a instalar. Como mnimo, para poder programar en Java ser imprescindible
instalar el IDE bsico y Java SE.
6. Posteriormente, establecemos el directorio donde se instalar NetBeans, as como la carpeta que contiene el JDK que se utilizar por
defecto.
7. Finalmente, la instalacin se completa y dispondremos de este entorno totalmente operativo.
Para llevar a cabo las operaciones descritas en el paso 1, te ofrecemos la posibilidad de descargar cada una de las partes por separado, o bien, en
conjunto, a travs de los siguientes enlaces:
Descarga nicamente NetBeans si tienes ya instalado el JDK. (Esta versin an no incluye lenguaje Espaol)
Descarga slo NetBeans en Espaol, sin JDK
Descarga NetBeans y JDK desde la pgina oficial de ORACLE
Debes conocer
Para aprender cmo realizar la instalacin completa, JDK y NetBeans, en sus ltimas versiones es importante que sigas las indicaciones que se
muestran en el siguiente artculo:
Gua para la instalacin detallada del JDK y NetBeans en su versin completa
Para saber ms
Si eres de los que le gusta la accin, ms que leer los tutoriales, en este vdeo podrs seguir el proceso de descarga e instalacin de NetBeans
bajo las plataformas Windows y Linux.
24 de 27
05/04/2016 18:08
PROG01_Contenidos
Debes conocer
Para continuar con la creacin de nuestro proyecto y la descripcin del aspecto del entorno, accede a la siguiente presentacin:
Cuando trabajemos con NetBeans, nuestros proyectos harn uso de clases para poder desarrollar las operaciones de nuestros programas. Estas
clases se agruparn en paquetes y en la siguiente presentacin puedes aprender cmo se gestionan a travs del entorno:
25 de 27
05/04/2016 18:08
PROG01_Contenidos
Autoevaluacin
Rellena los huecos con los conceptos adecuados:
En NetBeans, los archivos .class de un proyecto estn alojados en la carpeta
Licencia: CC-BY-SA
Licencia: CC-by-sa.
Procedencia: http://commons.wikimedia.org
/wiki/File:Wiener_Melange_0363wien_img_9691.jpg
Procedencia: http://commons.wikimedia.org
/wiki/File:Filos_segundo_logo.JPG
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:Cruce_de_caminos-El_Hierro.jpg
Autora: Desconocido.
Licencia: Dominio Pblico.
26 de 27
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:2004-02-29_Ball_point_pen_writing.jpg
Autora: KDE-look.org
Licencia: GNU/GPL
Procedencia: http://commons.wikimedia.org
/wiki/File:OstrichHead.JPG
Procedencia: http://commons.wikimedia.org
/wiki/File:Codigo_de_maquina.png
Procedencia: http://commons.wikimedia.org
/wiki/File:Vitruvian.jpg
Autora: Robpatrik
Autora: Priwo
Licencia: CC BY-NC-SA
Procedencia: http://www.flickr.com/photos
/alkalinezoo/3595562784/
Procedencia: http://commons.wikimedia.org
/wiki/File:LEGO-02.jpg
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:2010-11-14_orr_ob_08.JPG
Procedencia: http://commons.wikimedia.org
/wiki/File:Nepomuk.svg
05/04/2016 18:08
PROG01_Contenidos
Recurso (1)
Licencia: GNU/GPL
Licencia: CC-by-sa
Procedencia: http://commons.wikimedia.org
/wiki/File:Exquisite-kcontrol.png
Procedencia: http://commons.wikimedia.org
/wiki/File:Victory_podium.png
Autora: netbeans.org
Licencia: Copyright (cita), se autoriza el uso sin
restricciones.
Procedencia: http://netbeans.org
27 de 27
Recurso (2)
Autora: netbeans.org
Licencia: Copyright (cita), se autoriza el uso sin
restricciones.
Procedencia: Captura de pantalla del programa
NetBeans 7.0.
05/04/2016 18:08