Académique Documents
Professionnel Documents
Culture Documents
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.
Caso prctico
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. 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.
Resolucin de problemas
En la vida real... Observacin de la situacin o problema. Pensamos en una o varias posibles soluciones. Aplicamos la solucin que estimamos ms adecuada. En Programacin... Anlisis del problema: requiere que el problema sea definido y comprendido claramente para que pueda ser analizado con todo detalle.
Diseo o desarrollo de algoritmos: procedimiento paso a paso para solucionar el problema dado.
Resolucin del algoritmo elegido en la computadora: consiste en convertir el algoritmo en programa, ejecutarlo y comprobar que soluciona verdaderamente el problema.
Qu virtudes debera tener nuestra solucin? Correccin y eficacia: si resuelve el problema adecuadamente. Eficiencia: si lo hace en un tiempo mnimo y con un uso ptimo de los recursos del sistema. Para conseguirlo, cuando afrontemos la construccin de la solucin tendremos que tener en cuenta los siguientes conceptos: 1. Abstraccin: se trata de realizar un anlisis del problema para descomponerlo en problemas ms pequeos y de menor complejidad, describiendo cada uno de ellos de manera precisa. Divide y vencers, esta suele ser considerada una filosofa general para resolver problemas y de aqu que su nombre no slo forme parte del vocabulario informtico, sino que tambin se utiliza en muchos otros mbitos. 2. Encapsulacin: consiste en ocultar la informacin para poder implementarla de diferentes maneras sin que esto influya en el resto de elementos. 3. Modularidad: estructuraremos cada parte en mdulos independientes, cada uno de ellos tendr su funcin correspondiente.
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: . Enviar
Caso prctico
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:
Como habrs podido apreciar, existen mltiples paradigmas, incluso puede haber lenguajes de programacin que no se clasifiquen nicamente dentro de uno de ellos. Un lenguaje como Smalltalk es un lenguaje basado en el paradigma orientado a objetos. El lenguaje de programacin Scheme, en cambio, soporta slo programacin funcional. Python, soporta mltiples paradigmas.
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 programacin Java? de programacin podramos enmarcar el lenguaje de
Caso prctico
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.
Ejercicio resuelto
Vamos a ilustrar esta fase realizando el anlisis del siguiente problema: Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia. Est claro que las entradas de datos en este problema se reducen al radio del crculo, pero piensa qu salidas de datos ofrecer la solucin?
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
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: 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 obtener el cdigo fuente o programa. Posteriormente, ste deber ser para que pueda ser ejecutado posteriormente. Enviar del lenguaje para 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.
Caso prctico
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.
Autoevaluacin
Entre los distintos tipos de ciclo de vida del software, los modelos incremental y en cascada son modelos del tipo evolutivo. Verdadero. Falso.
Caso prctico
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.
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.
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.
Autoevaluacin
Rellena los huecos con los conceptos adecuados: En el lenguaje mquina de algunos procesadores, la combinacin 00101101 equivale a la operacin de Enviar .
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.
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.
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.
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 . b . oj Extensin . l s . cas Extensin . a a Jv.
Caso prctico
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.
Debes conocer
Obtn una descripcin detallada de las caractersticas reseadas anteriormente a travs del siguiente artculo: Caractersticas detalladas del lenguaje Java
Actualmente hay tres ediciones de la plataforma Java 2: J2SE: Entorno de Sun relacionado con la creacin de aplicaciones y applets en lenguaje Java. J2EE: Pensada para la creacin de aplicaciones Java empresariales y del lado del servidor. J2ME: Pensada para la creacin de aplicaciones Java para dispositivos mviles.
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
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.
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. Enviar
Una vez escrito el cdigo fuente (archivos con extensin . a a ste es precompilado generndose los J v ), cdigos de bytes, Bytecodes o Java Bytecodes (archivos con extensin . l s ) que sern interpretados cas 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 Mquinas Virtuales Java o intrpretes Java de tiempo de ejecucin. En el proceso de precompilacin, existe un verificador de cdigos de bytes que se asegurar de que se cumplen las siguientes condiciones: El cdigo satisface las especificaciones de la Mquina Virtual Java. No existe amenaza contra la integridad del sistema. No se producen desbordamientos de memoria. Los parmetros y sus tipos son adecuados. No existen conversiones de datos no permitidas. Para que un bytecode pueda ser ejecutado en cualquier plataforma, es imprescindible que dicha plataforma cuente con el intrprete adecuado, es decir, la mquina virtual especfica para esa plataforma. En general, la Mquina Virtual Java es un programa de reducido tamao y gratuito para todos los sistemas operativos.
Caso prctico
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:
p b i c a s C a e P i c p l Todos los programas han de incluir una clase como esta. Es una clase ulc ls ls_rnia:
general en la que se incluyen todos los dems elementos del programa. Entre otras cosas, contiene el mtodo o funcin m i ( que representa al programa principal, desde el que se llevar a cabo la ejecucin an) del programa. Esta clase puede contener a su vez otras clases del usuario, pero slo una puede ser p b i . El nombre del fichero . a aque contiene el cdigo fuente de nuestro programa, coincidir con el ulc Jv nombre de la clase que estamos describiendo en estas lneas.
Recomendacin
Ten en cuenta que Java distingue entre maysculas y minsculas. Si le das a la clase principal el nombre PrimerPrograma, el archivo . a a tendr como identificador Jv 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.
en l se podrn incluir las instrucciones que estimemos oportunas para la ejecucin del programa. Desde l se podr hacer uso del resto de clases creadas. Todos los programas Java tienen un mtodo m i . an 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
Verdadero.
Falso.
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:
Para poder desarrollar nuestros primeros programas en Java slo necesitaremos un editor de texto plano y los elementos que acabamos de instalar a travs de Java SE.
Autoevaluacin
Podemos desarrollar programas escritos en Java mediante un editor de textos y a travs del JRE podremos ejecutarlos. Verdadero. Falso.
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.
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
La variable C A S A H esta variable de entorno establece dnde buscar las clases o biblitecas de la API LSPT: de Java, as como las clases creadas por el usuario. Es decir, los ficheros . l s que se obtienen una vez cas compilado el cdigo fuente de un programa escrito en Java. Es posible que en dicha ruta existan directorios y ficheros comprimidos en los formatos z po j rque pueden ser utilizados directamente por el i a JDK, conteniendo en su interior archivos con extensin c a s ls. (Por ejemplo: C \ r g a F l s J v \ d 1 6 0 2 \ i ) :Porm ie\aajk.._5bn 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 P T , anteriormente descrito. Ten en AH cuenta que la ruta que debes incluir ser el lugar donde se instal el JDK hasta su directorio l b i. (Por ejemplo: C \ r g a F l s J v \ d 1 6 0 2 \ i ) :Porm ie\aajk.._5lb
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?
CASAH LSPT. PT. AH Jvcee aa.x.
El resultado de la compilacin ser un archivo con el mismo nombre que el archivo Java pero con la extensin c a s Esto ya es el archivo ls. 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 . l s como clases tengamos. cas Adems, si estas clases tenan mtodo m i podremos ejecutar dichos an 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.
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 . a aen la ubicacin que prefieras. Recuerda que el nombre de la Jv clase principal (en el cdigo de ejemplo M M d l ) debe ser exactamente igual al del archivo iouo con extensin . a a si tienes esto en cuenta la aplicacin podr ser compilada Jv, correctamente y ejecutada.
/* * *L caeMMdl ipeet uaalcc qe a ls iouo mlmna n piain u *smlmneipie"uopoeinl-Pormc"e pnal. ipeet mrm Mdl rfsoa rgaain n atla * / casMMdl { ls iouo pbi sai vi mi(tig]ag){ ulc ttc od anSrn[ rs Sse.u.rnl(Mdl ytmotpitn"uo poeinl rfsoa Metal cdn d crcee. usr a aea e aatrs } Pormc"; rgaain) / /
Accede a la lnea de comandos y teclea, en la carpeta donde has guardado el archivo Java, el comando para compilarlo: J v c M M d l . a a aa iouoJv El compilador genera entonces un fichero de cdigo de bytes: M M d l . l s . Si visualizas iouocas ahora el contenido de la carpeta vers que en ella est el archivo . a a y uno o varios Jv (depende de las clases que contenga el archivo con el cdigo fuente) archivos . l s . cas Finalmente, para realizar la ejecucin del programa debes utilizar la siguiente sentencia:
Jv MMdl.aa aa iouoJv
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.
Caso prctico
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. 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
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.
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
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.
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:
Una de las ventajas que ofrece este entorno es poder examinar nuestros proyectos a travs de la vista Archivos. Esta vista nos ensea la realidad de los archivos del proyecto, la carpeta b i d contiene los ul archivos compilados (. l s ), la carpeta s c el cdigo fuente y el resto, son archivos creados por cas r Netbeans para comprobar la configuracin del proyecto o los archivos necesarios para la correcta interpretacin del cdigo en otros sistemas (en cualquier caso no hay que borrarlos). Para activar esta vista, selecciona en el men principal Windows - Files.
Autoevaluacin
Rellena los huecos con los conceptos adecuados: En NetBeans, los archivos .c a sde un proyecto estn alojados en la carpeta ls los . a aen la carpeta Jv Enviar . y
Autora: barraquito from Santa Cruz de Tenerife, Canary Islands, Spain Licencia: CC-by-sa Procedencia: http://commons.wikimedia.org/wiki/File:Cruce_de_caminosEl_Hierro.jpg
Autora: German, usuario espaol de Wikipedia Licencia: Dominio pblico Procedencia: http://commons.wikimedia.org/wiki/File:Codigo_de_maquina.png
Autora: netbeans.org Licencia: Copyright (cita), se autoriza el uso sin restricciones. Procedencia: http://netbeans.org
Autora: Nevit Dilmen Licencia: GNU Free Documentation License. Procedencia: http://commons.wikimedia.org/wiki/File:Maldives_00147.JPG