Está en la página 1de 71

Formación Framework AME4j

Entorno de Desarrollo AMEDev


AMEDev: Definición

• AMEDev es el entorno de desarrollo (IDE) básico de


AME4j.
• Está basado en la plataforma Eclipse 3.1, con una serie
de extensiones específicas:
– MyEclipse IDE
– NitroX
– Jasper Assistant
– Soporte Spring
– …
• Adicionalmente, utiliza una serie de productos Open
Source como herramientas de apoyo: ANT, JUnit,
CVS, CruiseControl…
• Como herramienta de modelado UML-ER, se utiliza
Sparx Systems Enterprise Architect (abreviado como
EA)

2
AMEDev: Principales elementos
(2006Q1)

• Eclipse 3.1: Entorno de Desarrollo Base para


aplicaciones Java
• Principales Plug-ins
– MyEclipseIDE: Colección de Plug-ins para desarrollo
Web – J2EE
– Nitrox for Struts: Desarrollo visual de aplicaciones
Struts
– JasperAssistant: Desarrollo visual de informes
basados en Jasper Reports
– Otros plug-ins Open Source (Soporte Spring, ...)

3
AMEDev: Principales elementos
(2006Q1)

• Principales herramientas de apoyo:


– ANT: controla el proceso de construcción
(build) de un proyecto. También se puede
utilizar para el despliegue de aplicaciones.
– JUnit: construcción y ejecución de las
pruebas unitarias.
– SVN: gestión de versiones de un equipo de
desarrollo.
– CruiseControl: controla el proceso de
integración continua (construcción
desatendida periódica)
4
Eclipse

• Proyecto Open Source surgido en IBM, como


base para sus entornos de desarrollo
(Websphere Studio, Rational XDE).
• Actualmente, bajo la supervisión de un
consorcio neutral (Eclipse.org).
• Realmente, son varios proyectos construidos
sobre una base modular común.
• La última versión (utilizada en AMEDev) es la
3.1.

5
Características básicas de Eclipse

• Basado en Java, pero utilizando un interfaz de usuario


nativo (SWT).
• Modularidad extrema: todos los elementos son
extensiones (plug-ins).
• Adaptable a distintos lenguajes: aunque por defecto es
Java, existen plug-ins y configuraciones para otros
lenguajes.
• La versión por defecto incluye soporte para aspectos
básicos del desarrollo: ayuda, gestión de versiones,
integración con herramientas de construcción.
• Puede utilizar como una plataforma de desarrollo de
aplicaciones de cliente pesado.
6
Arquitectura de Eclipse

7
Instalación de Eclipse

• La instalación de Eclipse es sencilla:


– Si no se tiene, instalar una JVM.
– Descargar desde el sitio de eclipse o un
repositorio espejo adecuado.
– Descomprimir en un directorio
– Ejecutar
• Algunos paquetes (NitroX) incluyen un
instalador específico.
• Se pueden tener varias versiones de
Eclipse en paralelo en la misma máquina.
8
Instalación de Plug-ins

• Las extensiones y plug-ins pueden tener


diferentes mecanismos de instalación, pero por
lo general, consiste en descomprimir los
ficheros en el directorio /plug-ins.
• También existe una instalación y actualización
con repositorios remotos
• Posteriormente, puede ser necesario alguna
configuración adicional, como el registro o la
activación de plug-ins específicos.

9
Instalación de Plug-ins: Directorio

10
Instalación de Plug-ins: Remoto

11
Conceptos Generales: Workbench

• Workbench (entorno de trabajo)


– Es el interfaz gráfico con el usuario: menús, barras de
herramientas, ayuda.
– Contiene un conjunto de perspectivas basadas en elementos
discretos (vistas).
– Visualmente, está representada por un espacio de una única
ventana.
• Workspace (espacio de trabajo)
– Es una abstracción del sistema de ficheros, por necesidades
multiplataforma.
– Se encarga de gestionar los recursos de un usuario,
organizados en varios proyectos.
– Mantiene un histórico de todos los cambios realizados en un
proyecto.
– Informa a las demás herramientas de los cambios producidos
en los recursos.

12
Conceptos Generales: Workbench

• Proyecto
– Es la unidad de trabajo de Eclipse.
– Suele corresponder a un directorio físico del
Workspace, aunque en realidad es una
abstracción.
– Se articula en otras subdivisiones menores
(carpetas/folders).
– Los proyectos tienen una “naturaleza”, y
tienen asociados constructores (“builders”)
que realizan labores de compilación,
despliegue, etc. de forma desatendida.
13
Conceptos Generales: Vistas

• Vistas (Views)
– Son los elementos discretos (paneles) del interfaz
de usuario.
– Pueden estar solapadas mediante pestañas.
– Tienen diferentes funciones, generalmente
asociados a un editor.
• Editores (Editors)
– Son paneles que permiten modificar un recurso del
proyecto.
– Diferentes tipos de recursos pueden tener distintos
tipos de editores.
– En el Workbench solo hay un panel de edición.

14
Conceptos Generales: Vistas

15
Conceptos Generales: Vistas
• Algunas vistas significativas
– Navegador: permite inspeccionar los recursos de un
workspace.
– Esquema (Outline): muestra la posible organización
jerárquica de un elemento estructurado.
– Propiedades: permite modificar propiedades de un
elemento.
– Consola: muestra los resultados de ejecución de un
programa (salida estándar)
– Tareas, Problemas, Bookmarks…
– Depuración: varias vistas para la depuración de
programas Java.
– Exploración de Java: varias vistas para la
visualización de la estructura de programas Java.
– ANT: Control y ejecución de scripts ANT.
– JUnit: Resultados de los test JUnit.
16
Conceptos Generales: Vistas

Explorador
Navegador Propiedades
Paquetes Java
17
Conceptos Generales: Vistas

Problemas

Esquema
Tareas
18
Conceptos Generales: Perspectivas

• Perspectivas (Perspectives)
– Es una organización establecida de un
conjunto de vistas y editores, así como
menús y comandos asociados.
– Las perspectivas están orientadas a tareas
específicas: editar código, navegar
jerarquías, gestionar las versiones, depurar…
– Las perspectivas se pueden configurar, y se
pueden crear nuevas perspectivas, añadiendo
o quitando vistas, y cambiando la estructura
de menús y comandos.
19
Conceptos Generales: Perspectivas

• Perspectivas más significativas


– Resource: exploración general de recursos de un
proyecto.
– Java: edición de código Java.
– Java Browsing: exploración de la estructura de un
programa Java.
– Depuración: entorno de depuración de programas
Java.
– Exploración de repositorios SVN: navegación por el
repositorio SVN
– Sincronización de Equipo (Team Synchronizing):
gestión de los cambios a un repositorio SVN.

20
Perspectiva: Recursos

21
Perspectiva: Java

22
Perspectiva: Exploración de Java

23
Perspectiva: Depuración

24
Conceptos Generales: IDE

• Como IDE, se incluyen todas las tareas típicas


de un entorno de desarrollo:
– Edición de código, con utilidades de apoyo (Fast
completion)
– Búsquedas y reemplazos, en el contexto del lenguaje
elegido.
– Compilación automática.
– Depuración.
– Ejecución de herramientas externas.
– Integración con Gestores de Versiones
– Ayuda
25
Conceptos Generales: Soporte Java

• De forma nativa, Eclipse soporta


aplicaciones Java, mediante
características adaptadas al lenguaje:
– Perspectivas Java y Java Browsing.
– Compilación desatendida.
– Soporte de editor de texto (autocompletar).
– Refactorizaciones adaptadas a Java.
– Constructores (“Builders”) específicos.
– Integración con ANT y JUnit.

26
Conceptos Generales: Soporte Java

27
ANT: Conceptos Generales

• ANT es una herramienta que permite la


automatización de la construcción de
aplicaciones Java.
• Sus conceptos son similares a los de la herramienta
Make de C/C++.
• Mediante un script XML, se definen las tareas a
realizar para la construcción del aplicativo, en función
de las dependencias internas de sus componentes.
• Eclipse soporta una buena integración con ANT.
• ANT, como Eclipse, es una herramienta extensible,
mediante nuevas clases (plug-ins).
28
ANT: Conceptos Generales

• ANT se configura mediante un fichero XML, llamado


generalmente Build.xml
• Dentro del fichero, se definen varios objetivos
(targets)
• Cada objetivo define una serie de tareas (tasks) que se
ejecutan al invocar a dicho objetivo.
• Unos objetivos pueden depender de otros, que se
ejecutarán si es necesario. También es posible la
ejecución condicional.
• ANT controla si es necesario realizar las tareas en
función del proyecto, p.e., si ha habido cambio en los
ficheros.
• Las tareas suelen actuar sobre conjuntos de ficheros o
directorios (filepaths, filesets).
• Se pueden definir propiedades que permiten configurar
las acciones sin dependencias explicitas.
29
ANT: Conceptos Generales

30
ANT: Ejemplo fichero Build

31
ANT: Tareas más significativas

• ANT es extensible, y por defecto incorpora


más de un centenar de tareas.
– Compilar ficheros Java: <javac>
– Ejecutar aplicaciones Java: <java>
– Crear JavaDocs: <javadoc>
– Ejecutar JUnit: <junit>
– Empaquetamiento: <jar>, <ear>, <war>
– Manipulación de ficheros <copy>, <move>, <delete>,
<mkdir>
– Utilitarios: <tstamp>, <echo>, <buildnumber>
– Propiedades: <property>
– Interacción con Tomcat: parar, arrancar...
• Adicionalmente, se puede extender mediante
tareas específicas (escritas en Java).
32
ANT: Ejecución

• Ant se puede ejecutar:


– Como un comando de línea de comandos.
– Dentro de Eclipse.
• Eclipse tiene soporte extendido de ANT
– Editor con ayuda de contexto.
– Vista específica para buildfiles.
– Visualización del esquema de fichero.
– Lanzamiento de ANT, con selección de los
diferentes objetivos
33
SVN

• SVN: existe un plugin de Eclipse para


integrar el gestor de versiones SVN.
• Se comporta como un cliente SVN, ofreciendo dos
perspectivas específicas, sin necesidad de conocer los
comandos SVN:
– SVN Repository Exploring
– Team Sinchronizing.

• Es necesario tener acceso a un servidor SVN:


– Apache + mod_dav_svn: Apache puede acceder un
repositorio de SVN y hacer accesible mediante una extensión
del protocolo HTTP
– Snvserve: servidor independiente que se comunica mediante
un protocolo específico.

34
SVN: Algunos conceptos generales
• SVN es un gestor de versiones en entornos Open Source.
• Modelo Cliente-Servidor (modo copia-modificación-fusión).
– Eclipse funciona como cliente de SVN.
– El servidor es un repositorio de ficheros.
• Soporta conceptos generales de cualquier herramienta de control
de versiones:
– Varios repositorios y módulos.
– Subida (Check In) y Descarga (Check Out).
– Sincronización de Cambios.
– Ramas (“Branches”).
– Etiquetas de versión (“Version Tag”).
– Fusiones (“Merge”).
• Aunque se puede llegar a soportar un modelo de bloqueos
exclusivos, el funcionamiento típico de SVN es con bloqueos
optimistas.
– Se puede vigilar quién puede estar editando un fichero (“watches”).
– Al introducir de nuevo los cambios, se puede hacer reconciliación de
los conflictos.

35
SVN: Configuración de repositorios

36
SVN: Exploración de repositorio

37
SVN: Importando un proyecto

38
SVN: Archivando un proyecto

39
SVN: Archivando un proyecto

40
SVN: Sincronización de cambios

41
SVN: Resolución de conflictos

42
SVN: Versionado

43
JUnit

• JUnit es un framework para pruebas unitarias


de clases Java.
• Permite probar elementos individuales, pero
además puede comprobar jerarquías completas
de clases.
• Eclipse tiene soporte para JUnit:
– Expertos (Wizards) para crear test unitarios a
partir de una clase.
– Capacidad de ejecutar los test unitarios, de forma
individual o agregada.
– Vista específica para ver los resultados de la
ejecución de los test.
44
JUnit: Conceptos básicos

• Las clases de prueba se derivan de la


clase junit.framework.TestCase.
• Los métodos de prueba se denominan por
nombre: test<NombreMetodo>.
• Utilizan diversos métodos de aserción
(assert*) para evaluar resultados.
• Existen métodos para configurar y
terminar los test (setUp y tearDown)
• TestSuite permite agrupar una colección
de tests en una jerarquía.
45
JUnit: Ejemplo

46
JUnit: Creación de Test

47
JUnit: Ejecución de Test

48
JUnit: Test Suites

49
CGS10
Plug-ins especiales de AMEDev

• AMEDev emplea una serie de plug-ins de


Eclipse específicos:
– MyEclipseIDE
– JasperAssistant
– M7 NitroX for Struts
– Spring IDE (Soporte Spring)

50
Diapositiva 50

CGS10 ¿Poner alguno más?


Celestino Güemes Seoane; 20/11/2004
MyEclipseIDE

• MyEclipseIDE es un empaquetamiento de Plug-


ins para Eclipse, que facilitan aspectos de
desarrollo de aplicaciones J2EE no
contemplados en el entorno básico:
– Desarrollo Web (JSP, HTML, XML…).
– Desarrollo con Struts.
– Desarrollo de EJB (Creación, Xdoclet)
– Manejo de Servidores de Aplicaciones.
– Despliegue en Servidores de Aplicaciones.
– Acceso a bases de datos y SQL
– Soporte de Hibernate / ORM
– Utilidades varias: Diagramas UML, Plantillas,
Wizards, Fragmentos…
51
MyEclipseIDE: Desarrollo Web

52
MyEclipseIDE: Soporte Struts

53
MyEclipseIDE: Soporte Struts

54
MyEclipseIDE: Soporte EJB

55
MyEclipseIDE: Deployment en App. Serv.

56
MyEclipseIDE: Soporte de Hibernate

57
MyEclipseIDE: Manejo de Base de Datos

58
MyEclipseIDE: Diagrmas UML

• Perspectiva
UML
• 6 UML
Diagrams: Use-
case, Class,
Collaboration,
State,
Activity,
Deployment
• Generación de
código desde
los modelos
• Exportación de
los modelos en
formato XML y
como imagen

59
JasperAssistant

• JasperAssistant es un plug-in que permite la


manipulación visual de las plantillas XML de los
informes JasperReports.
• Permite incorporar los diferentes elementos
del informe mediante una paleta visual de
componentes.
• Se pueden incorporar campos desde las
fuentes de datos hasta el informe.
• Permite la previsualización de los informes, si
se tira directamente contra una base de datos.
60
JasperAssistant: Edición Visual de
Informes

61
NitroX for Struts

• M7 NitroX for Struts es un plug-in


especializado en la edición visual de
aplicaciones Struts.
• Muestra capacidades más avanzadas que
MyEclipseIDE en este aspecto.
• Permite
– Edición visual de páginas JSP.
– Manipulación visual de los ficheros de
configuración de Struts.
– Depuración de aplicaciones JSP.
62
NitroX for Struts: Edición Visual
de JSP

63
NitroX for Struts: Soporte
Multiidioma

64
NitroX for Struts: Configuración
Struts

65
Spring IDE: Soporte Spring

• Spring IDE es un sencillo plug-in de


Eclipse que facilita algunas de las tareas
de uso de Spring:
– Edición y validación de los ficheros de
configuración de Spring.
– Mantenimiento de los diversos ficheros de
configuración que puede haber en una
aplicación Spring.
– Visualización gráfica de las vinculaciones
entre componentes administrados por
Spring.
66
Spring IDE: Soporte Spring

67
Integración Continua: CruiseControl

• CruiseControl es un sistema de integración


continua, que automatiza los procesos de
construcción en equipos de trabajo
• A partir del repositorio de versiones (CVS),
realiza tareas automáticas y programadas que:
– Realizan la compilación del código fuente.
– Ejecuta los test unitarios definidos
– Informa (mediante log o correo) de los problemas
observados.
– Ejecuta otras tareas que puedan definir.
• Se integra con ANT, como base de los procesos
de construcción.
68
Integración Continua: CruiseControl

69
Integración Continua: CruiseControl

70

También podría gustarte