2. Herramientas de desarrollo

 

2.1. Desarrollo con Eclipse

Eclipse es una herramienta que permite integrar diferentes tipos de aplicaciones. La aplicación principal es el JDT (Java Development Tooling), un IDE para crear programas en Java. Otras aplicaciones, que no vienen con la distribución estándar de Eclipse, se añaden al mismo en forma de plugins, y son reconocidos automáticamente por la plataforma.

Además, Eclipse tiene su propio mecanismo de gestión de recursos. Los recursos son ficheros en el disco duro, que se encuentran alojados en un espacio de trabajo (workspace), un directorio especial en el sistema. Así, si una aplicación de Eclipse modifica un recurso, dicho cambio es notificado al resto de aplicaciones de Eclipse, para que lo tengan en cuenta.

2.1.1. Instalación y ejecución

Para instalar Eclipse se requiere:

Para la instalación, se siguen los pasos:

eclipse –vm ruta_jdk_jre

Para arrancar Eclipse se tiene el ejecutable eclipse.exe o eclipse.sh en ECLIPSE_HOME. La pantalla inicial de Eclipse aparecerá tras unos segundos:

Figura 1. Pantalla inicial de Eclipse

Veremos las opciones principales con detalle más adelante. De los menús, entre otros, pueden resultar interesantes:

2.1.2. Configuración visual

Perspectivas, vistas y editores

El usuario trabaja con Eclipse mediante el entorno gráfico que se le presenta. Según la perspectiva que elija, se establecerá la apariencia de dicho entorno. Entendemos por perspectiva una colección de vistas y editores, con sus correspondientes acciones especiales en menús y barras de herramientas. Algunas vistas muestran información especial sobre los recursos, y dependiendo de las mismas, en ocasiones sólo se mostrarán algunas partes o relaciones internas de dichos recursos. Un editor trabaja directamente sobre un recurso, y sólo cuando grabe los cambios sobre el recurso se notificará al resto de aplicaciones de Eclipse sobre estos cambios. Las vistas especiales se pueden conectar a editores (no a recursos), por ejemplo, la vista de estructura (outline view) se puede conectar al editor Java. De este modo, una de las características importantes de Eclipse es la flexibilidad para combinar vistas y editores.

Si queremos abrir una determinada perspectiva, vamos a Window -> Open Perspective. Eligiendo luego Other podemos elegir entre todas las perspectivas disponibles:

Figura 2. Abrir una perspectiva en Eclipse

Para añadir vistas a una perspectiva, primero abrimos la perspectiva, y luego vamos a Window -> Show View y elegimos la que queramos cargar:

Figura 3. Elegir una vista en una perspectiva

Apariencia

Arrastrando la barra de título de una vista o editor, podemos moverlo a otro lugar de la ventana (lo podremos colocar en las zonas donde el cursor del ratón cambie a una flecha negra), o tabularlo con otras vistas o editores (arrastrando hasta el título de dicha vista o editor, el cursor cambia de aspecto, y se ve como una lista de carpetas, soltando ahí la vista o editor que arrastramos, se tabula con la(s) que hay donde hemos soltado).

2.1.3. Configuración general

Desde el menú Window - Preferences podemos establecer opciones de configuración de los distintos aspectos de Eclipse:

Figura 4. Configuración general de Eclipse

Establecer directorios para ficheros fuente o ficheros objeto

Podemos elegir entre tener nuestro código fuente en el mismo lugar que nuestras clases objeto compiladas, o bien elegir directorios diferentes para fuentes y objetos. Para ello tenemos, dentro del menú de configuración anterior, la opción Java - New Project. En el cuadro Source and output folder podremos indicar si queremos colocarlo todo junto (marcando Project) o indicar un directorio para cada cosa (marcando Folders, y eligiendo el subdirectorio adecuado para cada uno):

Figura 5. Establecimiento de los directorios fuente y objeto

Establecer la versión de JDK o JRE

Para cambiar el compilador a una versión concreta de Java, elegimos la opción de Java y luego Compiler. Pulsamos en la pestaña Compliance and Classfiles y elegimos la opción 1.4 (o la que sea) de la lista Compiler compliance level:

Figura 6. Establecer la versión del compilador

También podemos utilizar JDK en lugar de JRE para ejecutar los programas. Para ello vamos a Java - Installed JREs, elegimos la línea Standard VM y pulsamos en Edit o en Add, según si queremos modificar el que haya establecido, o añadir nuevas opciones.

Figura 7. Establecer el compilador, o añadir nuevos

Se nos abre un cuadro de diálogo para editar valores. Pulsando en Browse elegimos el directorio de JDK (por ejemplo, C:\j2sdk1.4.0).

Figura 8. Editar los valores de JDK o JRE

Especificar variables de entorno (CLASSPATH)

Podemos añadir variables de entorno en Eclipse, cada una conteniendo un directorio, fichero JAR o fichero ZIP. Para añadir variables vamos a la opción  Java - Classpath Variables.

Figura 9. Variables de classpath

Pulsamos el botón de New para añadir una nueva, y le damos un nombre, y elegimos el fichero JAR o ZIP (pulsando en File) o el directorio (pulsando en Folder).

Figura 10. Establecer el valor de la nueva variable

2.1.4. Primeros pasos con Eclipse

Espacio de trabajo

Por defecto el espacio de trabajo (workspace) para Eclipse es el directorio ECLIPSE_HOME/workspace. Podemos elegir un directorio arbitrario lanzando eclipse con una opción –data que indique cuál es ese directorio, por ejemplo:

eclipse –data C:\misTrabajos

También podemos crear nuestros proyectos y trabajos fuera del workspace si queremos, podemos tomarlo simplemente como un directorio opcional donde organizar nuestros proyectos.

Nuevo proyecto

Para crear un nuevo proyecto Java vamos a File -> New -> Project. Después en el cuadro que aparece elegimos el proyecto que sea (normalmente, un Java Project en el grupo Java):

Figura 11. Crear un nuevo proyecto en Eclipse

Después nos aparece otra ventana para elegir el nombre del proyecto, y dónde guardarlo (por defecto en el espacio de trabajo de Eclipse):

Figura 12. Asignar nombre y ubicación al proyecto

Si pulsamos en Next podemos especificar otras opciones del proyecto en otro panel:

Figura 13. Otras opciones para el proyecto

donde podremos indicar qué carpetas tienen el código del proyecto (Source), el directorio donde sacar las clases compiladas (Default output folder), el classpath (Libraries), etc. Una vez rellenas las opciones a nuestro gusto, ya tendremos el proyecto creado:

Figura 14. Proyecto creado

Buildpath de un proyecto

Desde el buildpath de un proyecto se establecen las clases que debe compilar, los recursos (directorios, ficheros JAR, etc) que debe tener en cuenta para compilarlo, etc. Para establecerlo, hacemos click con el botón derecho sobre el proyecto, y vamos a Properties.

Figura 15. Establecer el buildpath de un proyecto

Nos aparecerá un cuadro con varias pestañas:

Figura 16. Opciones del buildpath

El editor de código

El editor de código de Eclipse es bastante sencillo de usar, y dispone de una ayuda contextual que permite autocompletar las sentencias de código que vayamos escribiendo. Por ejemplo, si escribimos un nombre de campo, tras el punto nos mostrará las opciones que podemos escribir después:

Figura 17. Editor de código de Eclipse

 

2.1.5. Plugins en Eclipse

Para instalar nuevos plugins, simplemente hay que copiarlos en el directorio ECLIPSE_HOME/plugins. Después habrá que reiniciar Eclipse para que pueda tomar los nuevos plugins instalados.

Figura 18. Plugins en Eclipse

Existen gran cantidad de plugins desarrollados. Aquí contaremos algunos que pueden ser de utilidad, como el plugin EclipseUML de Omondo para realizar diseño UML (diagramas de clases, de paquetes, etc) en un determinado proyecto, o el plugin Lomboz para realizar proyectos J2EE.


2.1.6. Diseño en UML con EclipseUML

EclipseUML es un plugin gratuito de Eclipse que nos permite introducir diseño UML de diferentes tipos (diagramas de clases, casos de uso, diagramas de paquetes, etc) en un proyecto Java, de forma que existe una relación directa entre el código fuente del proyecto, y los diagramas desarrollados (al modificar una parte, se modifica la otra automáticamente).

Podemos encontrar información disponible, y nuevas versiones del plugin, en:

http://www.omondo.com/index.jsp

Instalación

El plugin viene en formato ZIP, o también en fichero JAR autoejecutable y autoinstalable. Si descargamos el ZIP, tenemos que descomprimirlo en el directorio raíz de Eclipse (automáticamente, se copiará en la carpeta plugins, donde le corresponda). En el caso del JAR, lo ejecutamos y seguimos los pasos, indicando como directorio de instalación también el raíz de Eclipse.

Una vez instalado, deberemos reiniciar Eclipse para que acepte el nuevo plugin, y a partir de entonces ya estará listo para usarse.

Crear un nuevo diagrama de clases

Para crear un diagrama de clases, vamos a File - New - Other y en el cuadro que aparecerá buscamos en UML el diagrama de clases:

Figura 19. Nuevo diagrama de clases

En la siguiente ventana nos permite elegir si queremos hacer el diagrama de un paquete en concreto de nuestro proyecto, o del default package (lo que sería un diagrama genérico). Tras elegirlo, se nos creará un fichero .ucd en el lugar que hayamos indicado. Dicho fichero contendrá el diagrama, y podremos acceder a él desde el editor como a cualquier clase Java.

Una vez creado, para añadir elementos en el diagrama podemos optar por el menú contextual del diagrama, o por los botones de la barra de herramientas superior del mismo:

Figura 20. Añadir elementos al diagrama

Añadir clases

Al elegir añadir una clase (con New - Class o con el botón de la barra de herramientas), nos aparece un diálogo para que pongamos el nombre de la clase y algunos atributos. 

Figura 21. Nueva clase

Tras eso nos colocará la clase en el diagrama:

Figura 22. Nueva clase

Añadir atributos

Una vez tenemos una clase, para añadir atributos (campos) a la misma, pulsamos con el botón derecho sobre ella y vamos a New - Attribute. Nos saldrá un cuadro para indicar su nombre, tipo y características:

Figura 23. Añadir atributo

Y después nos aparecerá el atributo en la clase:

Figura 24. Añadir atributo

Según los modificadores (public, protected, static, final, etc) que le pongamos, aparecerá con un icono u otro. Si tenemos marcada la casilla Use accessors nos aparecerán métodos getXXX(...) y setXXX(...) para obtener o establecer su valor (en este ejemplo no aparece el método set, al ser un atributo final.

Añadir métodos

Añadir métodos es muy parecido a añadir atributos: pulsamos con el botón derecho sobre la clase y vamos a New - Method. Nos saldrá un cuadro para indicar su nombre y características:

Figura 25. Añadir método

Vemos que podemos indicar el tipo que devuelve, sus argumentos, excepciones que puede lanzar, modificadores del método, etc. Tras especificarlo, nos aparecerá en la clase:

Figura 26. Añadir método

Añadir otros elementos

Sobre una clase podemos añadir otros elementos desde el menú contextual New, como son constructores (similares a los métodos), y clases e interfaces internas.

Asociaciones y generalizaciones

Para establecer relaciones entre clases, tenemos varios iconos en la barra de herramientas del diagrama. Por ejemplo, para establecer una asociación entre dos clases, elegimos el botón de asociación de la barra de herramientas, pinchamos en la primera clase, y después en la segunda:

Figura 27. Establecer asociación

Nos aparecerá un cuadro de diálogo para establecer opciones en los extremos de la asociación, y en la asociación en sí:

Figura 28. Establecer asociación

Figura 29. Establecer asociación

Finalmente, tendremos la asociación en el diagrama:

Figura 30. Establecer asociación

Para definir una generalización (para implementar una interfaz o heredar de una clase), elegimos el botón de generalización de la barra de herramientas, hacemos click sobre la clase o interfaz hija, y luego click sobre la clase o interfaz padre:

Figura 31. Establecer generalización

El sistema reconoce automáticamente si se trata de una herencia o de una implementación de interfaz.

Ingeniería inversa

Del mismo modo que podemos construir un diagrama de clases de 0, y luego interactuar entre clases y diagrama (modificando una parte se modifica la otra), también podemos construir un diagrama de clases para clases que ya tengamos hechas. Simplemente elegimos de qué paquete queremos hacer el diagrama, sy se colocarán las clases automáticamente. También podemos colocar (arrastrar) las clases al diagrama. Después, con los menús contextuales podemos añadir sus subtipos, sus asociaciones, etc.

Otros diagramas

Además de los diagramas de clases, también podemos diseñar diagramas de paquetes (para establecer relaciones y dependencias entre paquetes de un proyecto), notas asociadas a clases o paquetes, etc.

Configuración

En el menú Window - Preferences tendremos una opción UML, donde podremos especificar las opciones de configuración del plugin:

Figura 32. Configuración de EclipseUML

Dentro de UML podremos indicar opciones generales como barras de herramientas, apariencia de los diagramas (formato Omondo, formato UML estándar o formato Eclipse), otras opciones visuales, y opciones de impresión.

  1. En la subopción Class Diagram especificamos opciones para los diagramas de clases, sobre qué elementos mostrar en cada uno de los componentes: clases, asociaciones, dependencias, etc.
  2. En la subopción Sequence Diagram especificamos opciones para los diagramas de secuencia, sobre qué elementos mostrar.

Desde el editor del diagrama también podemos, con el botón derecho, ir a View Selector para establecer opciones visuales del diagrama:

Figura 33. Opciones visuales

También podemos, con el botón derecho, ir a Preferences. Esto es útil, porque normalmente en los diagramas sólo se muestran elementos públicos, y aquí podemos indicar que muestre también los protegidos y privados, entre otras cosas:

Figura 34. Opciones visuales