Académique Documents
Professionnel Documents
Culture Documents
Tesis para optar por el Ttulo de Ingeniero Informtico, que presenta el bachiller:
1
ndice General
Introduccin.............................................................................................................................. 1
1. Generalidades............................................................................................................. 1
1.1 Definicin del problema............................................................................................... 1
1.2 Marco conceptual del problema.................................................................................. 2
1.2.1 MDA - Arquitectura dirigida por Modelos............................................................... 2
1.2.2 Herramienta MDA ................................................................................................... 5
1.2.3 UML Lenguaje Unificado de Modelado ............................................................... 5
1.2.4 Modelo de datos relacional..................................................................................... 5
1.2.5 XMI - XML Metadata Interchange.......................................................................... 6
1.2.6 Patrones de conversin de objetos a tablas........................................................... 6
1.2.7 Esquemas de generacin de cdigo ...................................................................... 7
1.2.8 Metamodelo UML ................................................................................................... 9
1.2.9 Arquitectura multicapas ........................................................................................ 10
1.2.10 J2EE ................................................................................................................. 10
1.3 Estado del Arte.......................................................................................................... 11
1.3.1 Anlisis Comparativo de Herramientas MDA ....................................................... 11
1.4 Descripcin y Sustento de la Solucin...................................................................... 12
2. Anlisis ...................................................................................................................... 15
2.1 Definicin de la metodologa usada para la solucin ............................................... 15
2.1.1 Objetivos de Cada Fase ....................................................................................... 15
2.1 Identificacin de Requerimientos.............................................................................. 17
2.1.1 Anlisis del Sistema.............................................................................................. 18
2.1.1.1 Casos de Uso............................................................................................... 18
2.1.1.2 Diagrama de Paquetes ................................................................................ 26
3. Diseo ....................................................................................................................... 29
3.1 Arquitectura de la solucin........................................................................................ 29
3.1.1 Objetivos y limitaciones arquitectnicas............................................................... 30
3.1.2 Diagrama de Clases de Diseo ............................................................................ 31
3.1.3 Diagramas de Secuencia...................................................................................... 36
3.2 Diseo de la interfaz grfica ..................................................................................... 38
3.3 Diseo de Archivo XMI.............................................................................................. 43
3.4 Estructura de archivos .............................................................................................. 45
4. Construccin ............................................................................................................. 46
4.1 Estructura de Proyecto.............................................................................................. 46
4.2 Tecnologas y frameworks ........................................................................................ 47
4.2.1 Lenguaje de programacin Java .......................................................................... 47
4.2.2 Netbeans IDE ....................................................................................................... 47
4.2.3 Netbeans IDE Module Suite ................................................................................. 47
4.2.4 Netbeans Visual Library........................................................................................ 48
4.2.5 Eclipse UML2........................................................................................................ 48
4.2.6 Velocity ................................................................................................................. 49
4.2.7 Log4J .................................................................................................................... 49
4.2.8 Spring Framework ................................................................................................ 49
4.3 Pruebas..................................................................................................................... 50
4.3.1 Plan de pruebas.................................................................................................... 50
4.3.1.1 Plan de Pruebas - Mdulo Modelador.............................................................. 50
4.3.1.2 Plan de Pruebas - Mdulo Conversor .............................................................. 51
4.3.1.3 Plan de Pruebas - Mdulo Generador ............................................................. 53
5. Observaciones, conclusiones y recomendaciones................................................... 55
5.1 Observaciones .......................................................................................................... 55
5.2 Conclusiones............................................................................................................. 56
5.3 Recomendaciones y trabajos futuros........................................................................ 56
Bibliografa ............................................................................................................................. 57
Anexos
A) Catlogo de Requerimientos
B) Casos de Uso
C) Diagramas de Clases
D) Diagramas de Secuencia
E) Patrones de Conversin de objetos a tablas
F) Modelos de Generacin de Cdigo
G) Casos de Prueba
ndice de Figuras
La arquitectura orientada a modelos (MDA) fue formalmente introducida por el OMG (Object
Management Group) en el ao 2001 como un trmino que abarcaba un gran nmero de
aplicaciones para el modelado y elaboracin de especificaciones de arquitectura. Desde
entonces, estas especificaciones y su uso han ido evolucionando en forma considerable, y
el trmino MDA es ahora ampliamente reconocido en la industria de tecnologas de
informacin. Sin embargo, MDA va mas all de ser un conjunto de tecnologas o de un
modo especfico para generar cdigo, actualmente provee un marco de trabajo para la
administracin de diferentes maneras de racionalizar y automatizar la especificacin,
desarrollo, distribucin e integracin del software.
Por ello, el presente proyecto busca dar soporte a la metodologa MDA a travs del
desarrollo de un marco de trabajo de generacin de cdigo open source para aquellas
aplicaciones que no presenten un modelo de negocio complejo y cuyo desarrollo requiera
ser automatizado.
1
1. Generalidades
En este captulo se definirn las bases para el presente proyecto de fin de carrera,
definiendo primero el problema a resolver, el marco conceptual con los conceptos bsicos
para el entendimiento del proyecto, el plan de proyecto usado para la gestin del proyecto y
el estado del arte, en el cual se hace un anlisis comparativo de la situacin actual de las
herramientas similares a la desarrollada en este proyecto.
Con el propsito de resolver este tipo de problema es que naci la metodologa MDA. Una
Arquitectura de Modelo o MDA por sus siglas en ingles, que es capaz de crear cdigo
1
tomando en consideracin nicamente el modelo de la aplicacin, sin la necesidad de definir
una base de datos fsica primero.
Este trabajo tiene por objetivo el desarrollo de una herramienta MDA para la generacin de
aplicaciones Web.
En esta seccin se describen las bases tericas necesarias para el entendimiento del
presente proyecto.
Sistema
Se entiende por sistema a un conjunto de componentes o sistemas.
Modelo
Es la especificacin del sistema y su entorno.
Arquitectura
2
La arquitectura de un sistema es la especificacin de las partes del mismo y las
interacciones entre ellos.
Punto de vista
Es una abstraccin que hace uso de un conjunto de conceptos de arquitectura y
reglas estructurales para centrarse en aspectos particulares del sistema, obteniendo
un modelo simplificado.
Vista
Es una representacin del sistema desde un determinado punto de vista.
Plataforma
Una plataforma es un conjunto de subsistemas y tecnologas que aportan un
conjunto coherente de funcionalidades.
Aplicacin
Para MDA una aplicacin viene a ser una funcionalidad a ser desarrollada.
Independencia de la plataforma
Es la caracterstica que debe tener todo modelo en MDA. Consiste en la
independencia del modelo sobre cualquier plataforma o tecnologa ya sea a nivel de
hardware o software.
del sistema, mientras oculta los detalles necesarios para una determinada
plataforma.
3
Un modelo independiente de la computacin (CIM) es una vista del sistema desde el
pudiera ser empleado en diferentes plataformas de carcter similar como por ejemplo
Combina las especificaciones del modelo independiente de la plataforma con los detalles
que especifican el uso de una plataforma especfica por parte del sistema.
Transformacin de modelos
Es la serie de transformaciones de un modelo a otro para un mismo sistema.
Mapas de transformacin
Son el conjunto de reglas para la transformacin de un PIM a un PSM para una
plataforma en concreto.
El proceso de transformacin inicia una vez que se tienen claramente definidos los
requerimientos. Despus de esto se inicia el modelamiento MDA mediante la definicin de
PIMs, los cuales capturan la lgica del negocio en forma independiente a cualquier
tecnologa, ya sea a nivel de hardware o software. Luego estos PIMs son traducidos a
PSMs, a travs de mapas de transformacin, en los cuales ya se observan caractersticas
propias de la plataforma. Finalmente, los PSMs definidos son convertidos a cdigo, los
cuales sern ejecutados en la plataforma seleccionada. Este proceso puede ser observado
en la figura 1.
4
FIGURA 1: TRANSFORMACIONES MDA. (ADAPTADO DE [15])
Se define una herramienta MDA [15] como aquella que provee los medios para la
automatizacin de los procesos(transformaciones) propias del paradigma MDA.
Permite definir de un modo grfico y estndar los diferentes procesos y funcionalidades que
ofrece un sistema [19] y aspectos ms tcnicos, tales como la base de datos a usar o los
componentes que conforman el sistema, todo esto a travs de las diferentes
especificaciones que posee.
5
1.2.5 XMI - XML Metadata Interchange
Permite el intercambio de diagramas [18], a travs de su especificacin con la cual se
puede saber como est definido el modelo-. Su principal propsito es el intercambio de
informacin entre herramientas de modelado.
6
Foreign Key Association Asociacin
7
A continuacin en la figura 2 y 3 se muestran los tipos de generadores de cdigo principales
para la construccin de la herramienta [18]:
Tier Generator
Un generador de capas construye y mantiene una capa de una aplicacin.
8
FIGURA 3: GENERACIN DE CAPAS DE UNA APLICACIN. (ADAPTADO DE [17])
9
FIGURA 4: METAMODELO PARA LA DEFINICIN DE UNA CLASE (TOMADO DE [19])
1.2.10 J2EE
Plataforma de programacin [13] para desarrollar y ejecutar software definido en lenguaje
Java, con una arquitectura multicapas, la cual est basada en el uso de componentes de
software y el uso de un servidor de aplicaciones.
10
1.3 Estado del Arte
En esta seccin se describe como se resuelve actualmente el problema planteado con base
en un enfoque terico y otro tecnolgico, en el cual se hace un anlisis comparativo de las
soluciones existentes.
Herramienta Descripcin
ArcStyler o Es una herramienta basada en el uso de cartuchos1 para la
descripcin de transformaciones que permite generar aplicaciones
de n capas codificadas en java/J2EE y c#/.NET a partir de
diagramas UML y la especificacin de los procesos del negocio.
o Permite extender las capacidades de transformacin, generando
nuevos cartuchos a partir de UML, cuyo objetivo sea cualquier
plataforma o lenguaje.
1
Componentes que permiten extender la funcionalidad bsica de la herramienta.
2
Modelo Independiente de la plataforma.
11
OptimalJ o Este producto de la compaa Compuware genera aplicaciones
J2EE partiendo de los modelos. Implementa completamente la
especificacin MDA.
o Est desarrollado en Java, lo que le hace portable a cualquier
plataforma para su ejecucin. Dispone de plugins para los
entornos de desarrollo integrado Eclipse y NetBeans.
o Admite XMI versin 1.1 tanto para la importacin de ficheros como
para su salida.
AndroMDA
ArcStyler
Codagen
OptimalJ
Architect
Caractersticas/ Herramientas
IQGen
Diagramas de Clases X X X X X
Diagramas de Casos de Uso X X X X x
Diagramas de Actividades X X X X X
Diagramas de Estados X X X X X
Diagramas de Secuencia X X
Diagramas de Colaboracin X X X X
Diagramas de Componentes X X X
Diagramas de Despliegue X X X
Restricciones OCL X X X X
Mltiples Lenguajes X
Java X X X X
C# X X X
C++ X
Visual Basic X
Cobol X
XMI x x x x
12
FIGURA 5: MDULOS DE LA SOLUCIN.
Modelador
Conversor
Este mdulo es el encargado de la conversin del modelo en notacin UML definido por el
usuario, en formato XMI, el cual es procesado y transformado en una estructura de tablas
relacionales, es decir, los objetos son mapeados a tablas de una base de datos relacional, y
guardados en una estructura de datos. Con el modelo entidad relacin definido se proceden
a generar los scripts para el sistema de administracin de base de datos (DBMS) elegido
por el usuario.
Generador
En este mdulo se tiene como punto de partida, la base de datos fsica creada a partir de
los scripts generados en el mdulo anterior, esta informacin es procesada y a travs de
diferentes submdulos se genera cdigo para una aplicacin Web J2EE para cada una de
las capas lgicas de la cual consistir la aplicacin: capa de presentacin, capa de negocio
y capa de datos. El cdigo resultante puede ser directamente generado con los parmetros
por defecto, o parmetros especficamente configurados como por ejemplo, la tecnologa a
usar para la persistencia de datos, entre otros. El resultado final de este mdulo es una
aplicacin funcional, que pueda ser adaptada a las necesidades de los usuarios.
Portabilidad
Aunque la principal plataforma a la cual apunta la solucin es J2EE, se tiene que los
mdulos, los cuales pueden ser usados en forma independiente logran un alto nivel
de portabilidad, por ejemplo: el modelo generado puede ser usado por otra
13
herramienta, p.e. AndroMDA, como entrada o los scripts generados por el mdulo
conversor pueden apuntar a diferentes base de datos. Esta portabilidad es propia de
las herramientas MDA.
Uniformidad arquitectnica
Moral alta
Los proyectos de larga duracin pueden tener un impacto negativo en los equipos
de desarrollo, y an ms cuando se tiene grandes cantidades de cdigo repetitivo
que escribir. La solucin espera reducir los calendarios de los proyectos y mantener
a los desarrolladores enfocados en tareas ms desafiantes que escribir cdigo
montono y repetitivo.
14
2. Anlisis
A continuacin en el cuadro 3 se presentan los objetivos para cada una de las fases
definidas por RUP [1]:
15
Concepcin Preliminar herramienta, el sistema de la herramienta.
cronograma de
Se delimitan los
tareas y los
alcances del
requerimientos del
proyecto desarrolla
sistema
ndo un plan de
trabajo a seguir.
Determina la
viabilidad del
proyecto desde el
punto de vista de los
requerimientos
establecidos.
Fase de Iteracin Se completa el Especificacin de Se establece la
Elaboracin Desarrollo de anlisis y diseo de Casos de Uso. arquitectura del
Prototipo de todos los casos de sistema de forma
Revisin. uso identificados en clara.
los requerimientos.
Se reducen los
Desarrolla la Documentos de riesgos tcnicos.
arquitectura de los diseo(clases,
Se realiza un
requisitos secuencia).
prototipo inicial para
identificados en la
que sea probado.
iteracin preliminar.
Fase de Iteracin Implementa y prueba Software versin Todas las
Construcci Desarrollo de los casos de uso de de prueba (V1 funcionalidades
n la versin de la iteracin E1 Beta) : Modelador imprescindibles para
prueba (V1 el usuario y la
Beta). arquitectura se
encuentran
implementadas en
esta versin beta.
Iteracin Implementar y probar Software versin Caractersticas de la
Desarrollo de los casos de uso 1 (V1) : versin V1
la versin de faltantes en la Modulador y completamente
Software (V1) versin de prueba, Conversor revisadas.
solucionar los
Calidad del producto
errores identificados
garantizada.
en la versin beta e
incorporar Minimizacin de
retroalimentacin defectos.
obtenida a partir de
Costo de calidad
V1 Beta.
reducido.
Desarrollar el
sistema V1
16
Iteracin Diseo, Software versin Rpida
Desarrollo de implementacin y 2 (V2) : implementacin del
la versin de prueba de Casos de Modulador, software V2 que
Software (V2) Uso corregidos. Conversor y cuenta con mejoras
Generador revisadas.
Adicin de mejoras y
solucin de Empaquetado del
imperfecciones sistema para su fcil
Plan de Pruebas
detectadas sobre la instalacin.
base de casos de
uso anteriores.
Desarrollo del
sistema V2.
Empaquetado del
sistema V2.
17
14 El sistema permitir el manejo de archivos de logs para el control de C
errores.
15 El sistema permitir la navegacin de los elementos del diagrama. B
16 El sistema permitir generar la documentacin de las clases C
definidas en el diagrama de clases realizado.
17 El sistema permitir el uso de diferentes patrones de conversin de A
UML a ER segn el tipo de relacin entre clases definidas en el
diagrama de clases UML: asociacin, agregacin y herencia.
18 El sistema permitir exportar el esquema ER a diferentes formatos C
de salida: JPG, XML, HTML.
19 El sistema permitir el uso de los siguientes motores de base de A
datos: SQL Server, Oracle y SQLite.
20 El sistema permitir la creacin de scripts para la generacin A
manual de la base de datos.
21 El sistema permitir visualizar grficamente el diagrama ER. B
22 El sistema permitir la navegacin de los elementos del diagrama B
ER
23 El sistema permitir la generacin de un archivo de log para el C
manejo de los errores y los resultados de la conversin.
24 El sistema permitir generar la documentacin de las tablas en el C
diagrama ER obtenido.
25 El sistema permitir la generacin de una aplicacin Web en la A
plataforma java.
26 El sistema permitir generar aplicaciones con dos patrones C
arquitectnicos MVC o 3 Capas.
27 El sistema permitir el manejo de los siguientes esquemas de C
persistencia de datos: DAO, ORM.
28 El sistema permitir la generacin de todas las capas o C
componentes del patrn de arquitectura elegido.
29 El sistema permitir la configuracin de la generacin de la B
aplicacin a travs del uso de plantillas.
30 El sistema permitir la definicin de una base de cdigo base y que A
pueda ser extendida por el usuario.
31 El sistema permitir la modificacin del aspecto de la interfaz grafica C
generada a travs del uso de plantillas
A: Alta M: Media C: Baja
18
En la figura 6 se presentan los actores del proyecto y en el cuadro 4 la descripcin de cada
uno de ellos.
Desarrollador
Usuario
(from Logical View)
Modelador Diseador BD
(from Logical View) (from Logical View)
ACTOR DESCRIPCION
Es el encargado del desarrollo del diagrama de clases en
notacin UML 2.0, especficamente la definicin de las
Modelador
clases, relaciones y propiedades que conforman el diagrama
de clases.
A continuacin se detallan los casos de usos ms relevantes de cada mdulo que conforma
el proyecto.
Modulo Modelador
En la figura 7 se muestran los casos de uso del modulo Modelador, seguido de las
especificaciones de los casos de uso principales.
19
Mantenimiento Relaciones
Exportar Proyecto
Modelador
Mantenimiento Propiedades
(f rom Logical View)
Relaciones
Mantenimiento Clases
Mantenimiento Propiedades
Clases
Mantenimiento Atributos
Mantenimiento de Clases
Mantenimiento de Clases
Actores Modelador
20
formulario de estructura del proyecto.
2. El usuario elige la opcin Eliminar Clase.
3. El sistema muestra un mensaje de confirmacin.
4. En caso de respuesta negativa, Ir al paso 6.
5. En caso de respuesta afirmativa, la clase es eliminada del formulario de diagramado de
clases, y del formulario de estructura del proyecto
6. El caso de uso finaliza.
Mantenimiento de Relaciones
Mantenimiento de Relaciones
Actores Modelador
Exportar Modelo
21
Exportar Modelo
Permite la exportacin del modelo de clases UML a otros
Descripcin
formatos : JPG y XMI.
Actores Modelador
No existen requerimientos especiales para este caso de
Requerimientos Especiales
uso.
El usuario debe haber ingresado al sistema con el perfil de
Precondicin
Modelador.
Flujo Bsico
1. El caso de uso se inicia cuando el usuario del sistema elige la opcin Exportar Modelo.
2. El sistema muestra un formulario con las opciones : JPG y XMI .
3. El usuario elige una opcin de exportacin.
4. El sistema genera como salida un archivo del tipo seleccionado por el usuario, en la
ubicacin de salida de archivos del sistema.
5. El caso de uso finaliza.
Modulo Conversor
En la figura 8 se muestran los casos de uso del modulo Conversor, seguido de las
especificaciones de los casos de uso principales.
Generacin Scripts
Configuracin Esquemas de
Transformacin
Diseador BD
(f rom Logical View)
Conversin UML a ER
22
Configuracin Esquemas de Transformacin
1. El caso de uso se inicia cuando el usuario del sistema elige la opcin Configurar
Esquemas.
2. El sistema muestra un formulario con el listado de los algoritmos de conversin para las
relaciones de Asociacin, Agregacin y Herencia y las opciones Aceptar y Cancelar.
3. Si el usuario elige Cancelar, ir al paso 7.
4. El usuario elige una opcin de conversin para cada tipo de relacin UML.
5. El usuario elige la opcin Aceptar.
6. El sistema guarda las opciones de conversin seleccionadas.
7. El caso de uso finaliza.
Conversin UML a ER
Conversin UML a ER
23
5. El usuario elige la opcin Aceptar.
6. El sistema muestra en el formulario de <Diagrama> el esquema entidad relacin para el
motor de base de datos seleccionado en el paso 4.
7. El caso de uso finaliza.
Generacin de Scripts
Generacin de Scripts
Modulo Generador
En la figura 9 se muestran los casos de uso del modulo Generador, seguido de las
especificaciones de los casos de uso principales.
24
Configuracin Base de Datos
Desarrollador
Generacin Cdigo
25
Poscondicin Se realiz la configuracin en forma exitosa.
Generar Cdigo
Generar Cdigo
Actores Desarrollador
26
Modelador
Util
Conversor
Configuracion
Generador
Paquete Modelador
Contiene todas las clases necesarias para el modelado de clases y exportacin
en formato XMI.
Paquete Conversor
Contiene todas las clases requeridas para la aplicacin de los algoritmos de
conversin de clases uml a un modelo relacional.
Paquete Generador
Contiene todas las clases relacionadas a la generacin de los archivos que
conforman una aplicacin java web.
Paquete Util
Contiene las clases utilitarias usadas por los dems mdulos.
Paquete Configuracin
Contiene las clases necesarias para la lectura y escritura de archivos de
configuracin necesarios para el funcionamiento de la herramienta.
27
28
3. Diseo
29
La arquitectura de la solucin est representada por una serie de mdulos y componentes
como se puede apreciar en la figura 11, a continuacin se detallan los componentes que
conforman la arquitectura:
Modelador
Conversor
Generador
Archivo XMI
Aplicacin Java Web generada por el mdulo generador a partir de las tablas
creadas por el mdulo conversor.
Base de Datos
30
La herramienta ser implementada como un sistema stand-alone.
31
FrmModelador
FrmDiagramacionClases
drawWidgets()
FrmExploradorClases
drawWidgets()
FrmAbrirProy ecto
GestorWidgets
getWidgets()
getSelectedWidget()
GestorProyecto
addWidget()
nombreProy ecto remov eWidget()
guardarProy ecto()
escribeProy ecto()
FrmPropiedadesClase
IWidget FrmPropiedadesRelacion
RelacionWidget
nombre
tipo ClaseWidget
nombre
addStartClass()
addEndClass() addAtrtribute()
addStartClassCardinalitu() remov eAttribute()
addEndClassCardinality () getAttribute()
getAttributes()
RelacionWidgetFactory AtributoWidget
FrmAtributo
nombre
getRelationWidget() tipoDato
HerenciaWidget AgregacionWidget
visibilidad
32
addAttribute Agrega un atributo de la clase
removeAttribute Quita un atributo de la clase
getAttributes Obtiene la lista de atributos de la clase
getAttribute Obtiene un atributo en especifico
33
getSelectedWidget Obtiene el widget que ha sido seleccionado***
FrmConv ersor
GestorScripts
FrmScripts FrmDiagramaER
generarScript()
escribeXMLEntidades()
GestorObjetos
GeneradorScript
getObjetos()
cargaObjetos() genera()
GestorEntidades
getEntidades()
cargaEntidades()
GeneradorSQLServ erScript
XMIParser
genera()
<<Interf ace>>
IEntidad GeneradorOracleScript
map()
mapAssociation() Relacion
mapInheritance()
mapAggregation()
ObjClase
Entidad
Def aultEntidadFactory
map() Atributo
ObjRelacion
mapAssociation()
mapInheritance()
mapAggregation()
ObjAtributo
Tipo
ObjTipo convert()
34
Nombre del Operacin Descripcin
Map Realiza el mapeo de objetos a entidades de un modelo
relacional.
MapAssociation Realiza el mapeo de una relacin de asociacin
MapInheritance Realiza el mapeo de una relacin de herencia
mapAggregation Realiza el mapeo de una relacin de agregacion
frmGenerador
J2EEGenerador
rutaAplicacion
frmBDExplorador
generaAplicacion()
frmBDConfigurar
IGenerador
generaCodigo()
BDGestor
getTablas()
iniciaConexion()
JSPGenerador ServletGenerador DAOGenerador
BDTabla rutaPlantilla rutaPlantilla rutaPlantilla
BDAtributo
BDTipo
SQLiteDriver
35
Nombre del Operacin Descripcin
generaCodigo Permite generar cdigo fuente en base a una plantilla para
la capa de Presentacin.
: : :
: Modelador FrmModelador GeneradorXMI GestorWidgets
getInstance
getWidgets
escribeXMI()
36
: : : : :
FrmConversor FrmOpcionesConversion GestorObjetos GestorEntidades EntidadAbstractFactory
: Diseador BD
El usuarioseleccionalaopcinConvertir
cargaObjetos()
cargaEntidades()
getObjetos()
map(objetos)
muestraDiagramaER()
37
: frmGenerador : J2EEGenerador : BDGestor : : :
: Desarrollador JSPGenerador ServletGenerador DAOGenerador
rutaAplicacion
generaAplicacion (rutaAplicacion)
new
getTablas ()
new
generaCodigo(rutaPlantilla, tablas)
new
generaCodigo(rutaPlantillas, tablas)
new
generaCodigo(rutaPlantillas, tablas)
La interfaz grfica para los tres mdulos que conforman la aplicacin ha sido dividida en
secciones tal como se muestra en la figura 18, luego en las figuras 19, 20 y 21 se muestran
los diseos de las interfaces de cada uno de los mdulos respectivamente.
38
Elemento Descripcin
Men principal.
Barra de herramientas.
Propiedades de los
elementos del mdulo :
clases, tablas, etc.
39
Elemento Descripcin
Barra de herramientas.
rea de modelado de
clases.
Ventana de propiedades
de clases.
40
Elemento Descripcin
Barra de herramientas.
rea de modelado de
tablas.
Ventana de generacin de
scripts.
41
Elemento Descripcin
Barra de herramientas.
Ventana de propiedades
de tablas.
42
3.3 Diseo de Archivo XMI
El archivo xmi generado por el mdulo modelador se basa en el DTD(data definition file) [20]
de XMI definido por el omg para uml. En el cuadro 5 se muestran las definiciones de los
principales elementos usados en la generacion de xmi por la herramienta.
Clase
<!--
_______________________________________________________________
-->
<!-- -->
<!-- CLASS: Foundation.Core.Class -->
<!--
_______________________________________________________________
-->
<!ATTLIST UML:Class
name CDATA #IMPLIED
visibility (public | protected | private) #IMPLIED
isRoot (false | true) #IMPLIED
isLeaf (false | true) #IMPLIED
isAbstract (false | true) #IMPLIED
isActive (false | true) #IMPLIED
binding IDREFS #IMPLIED
template IDREFS #IMPLIED
templateParameter IDREFS #IMPLIED
implementation IDREFS #IMPLIED
view IDREFS #IMPLIED
43
presentation IDREFS #IMPLIED
namespace IDREFS #IMPLIED
constraint IDREFS #IMPLIED
requirement IDREFS #IMPLIED
provision IDREFS #IMPLIED
stereotype IDREFS #IMPLIED
elementReference IDREFS #IMPLIED
ModelElement.collaboration IDREFS #IMPLIED
behavior IDREFS #IMPLIED
partition IDREFS #IMPLIED
generalization IDREFS #IMPLIED
specialization IDREFS #IMPLIED
parameter IDREFS #IMPLIED
structuralFeature IDREFS #IMPLIED
specification IDREFS #IMPLIED
realization IDREFS #IMPLIED
associationEnd IDREFS #IMPLIED
participant IDREFS #IMPLIED
createAction IDREFS #IMPLIED
instance IDREFS #IMPLIED
Classifier.collaboration IDREFS #IMPLIED
classifierRole IDREFS #IMPLIED
classifierInState IDREFS #IMPLIED
%XMI.element.att;
%XMI.link.att;
>
<!ATTLIST UML:Association
name CDATA #IMPLIED
visibility (public | protected | private) #IMPLIED
isRoot (false | true) #IMPLIED
isLeaf (false | true) #IMPLIED
isAbstract (false | true) #IMPLIED
binding IDREFS #IMPLIED
template IDREFS #IMPLIED
templateParameter IDREFS #IMPLIED
implementation IDREFS #IMPLIED
view IDREFS #IMPLIED
presentation IDREFS #IMPLIED
namespace IDREFS #IMPLIED
constraint IDREFS #IMPLIED
requirement IDREFS #IMPLIED
provision IDREFS #IMPLIED
stereotype IDREFS #IMPLIED
elementReference IDREFS #IMPLIED
collaboration IDREFS #IMPLIED
behavior IDREFS #IMPLIED
44
partition IDREFS #IMPLIED
generalization IDREFS #IMPLIED
specialization IDREFS #IMPLIED
link IDREFS #IMPLIED
associationEnd IDREFS #IMPLIED
%XMI.element.att;
%XMI.link.att;
>
ARCHIVOS DE LOGS
.LOG
ARCHIVOS DE APLICACIN
J2EE
ARCHIVOS DE MODELADO .JSP, .HTML,.JAVA
.XMI MiDAS
Archivo Descripcin
.XMI Representacin XML de un diagrama de clases UML en base al
estndar XMI resultantes del mdulo Modelador.
.JSP, Archivos de cdigo fuente de la aplicacin Java resultante del mdulo
.HTML, Generador.
.JAVA
.SQL Archivos de Script de creacin de tablas resultantes del mdulo
Conversor.
.LOG Archivo de Logs generados por la herramienta Log4J.
.CONF,.XML Archivo XML de definicin de parmetros de configuracin de la
herramienta.
.PRJ Archivo XML de un proyecto de la herramienta
45
4. Construccin
46
4.2 Tecnologas y frameworks
Un framework es aquella estructura de trabajo que est diseada con el fin de facilitar el
desarrollo de software. En el presente proyecto se har uso de distintos frameworks y
tecnologas para su desarrollo.
Independencia de la plataforma.
Lenguaje orientado a objetos.
Buena documentacin.
Soporte por la comunidad.
47
4.2.4 Netbeans Visual Library
Es una librera [13] cuyo propsito principal en el proyecto es dar soporte al modelamiento
orientado a grficos, a travs de una gama de componentes y elementos visuales. Se usar en
el proyecto para el diagramado de las clases y tablas en sus mdulos respectivos. El criterio
principal para su eleccin fue la facilidad de creacin de elementos visuales y de relaciones
entre estos. En la figura 25 se muestra el uso de la librera visual library para el modelado de
clases del modulo modelador.
48
FIGURA 26: ARCHIVO XMI GENERADO MEDIANTE ECLIPSE UML2.
4.2.6 Velocity
Velocity [12] es un motor de plantillas hecho para Java por Apache. Se usar en el proyecto
para la generacin de scripts de creacin de base de datos y cdigo fuente (html, jsp, java,
etc.). El criterio principal de su eleccin fue la facilidad que brinda su lenguaje de plantillas para
la generacin de archivos. En la figura 27 se muestra la plantilla de generacin usada por el
modulo generador para generar una clase entidad.
4.2.7 Log4J
Es una librera [11] que permite el manejo de diferentes tipos de logs (Error, Informacin,
Depuracin), ejecutar filtros por categora, redireccionar a diferentes destinos de salida(Archivo,
Consola, Base de datos), diferentes formatos de visualizacin y configuracin por ficheros. Se
usar en el proyecto para la creacin de archivos de logs de depuracin en la etapa de
desarrollo y para el control de errores/excepciones que ocurran una vez finalizado el producto.
49
entre otros. Se usar Spring en el presente proyecto para la configuracin de los distintos
componentes que requieran ser obtenidos dinmicamente en tiempo de ejecucin. El criterio
principal para su eleccin fue la robustez y facilidad de integracin que brinda este framework.
En la figura 29 se muestra la configuracin bsica de dos objetos en el archivo de configuracin
de spring.
4.3 Pruebas
La ejecucin de pruebas tiene como propsito principal validar que el software funcione
correctamente y cumpla con los objetivos para el cual fue desarrollado.
Accin Resultado
El usuario inicia la
aplicacin.
El sistema muestra el men principal de la aplicacin.
El usuario selecciona la
opcin Modelador.
El sistema muestra la pantalla principal del Modulo Modelador.
El usuario elige la
opcin Clase.
50
El usuario selecciona
una clase.
El sistema muestras las propiedades de la clase seleccionada.
El usuario selecciona la
opcion Atributos.
El usuario selecciona la
clase origen y destino.
El sistema muestra la relacin creada entre las clases.
El usuario elige la
opcin Generar XMI.
Accin Resultado
El usuario inicia
la aplicacin.
El sistema muestra el men principal de la aplicacin.
El usuario
selecciona la
opcin
Conversor.
El sistema muestra la pantalla principal del Modulo Conversor.
El usuario elige
la opcin
Configuracin.
51
El sistema muestra el listado de los algoritmos de conversin.
El usuario
selecciona los
algoritmos de
conversin y
elige la opcin
Aceptar.
El usuario
selecciona la
opcin Abrir
XMI.
El usuario elige
la opcin Script.
52
Conversor y los
ejecuta en la
interfaz del
SQLiteManager.
El sistema muestra las tablas generadas por los scripts ejecutados.
El usuario selecciona la
53
opcin Generar Cdigo.
54
5. Observaciones, conclusiones y recomendaciones
5.1 Observaciones
resultante.
Se encontraron diferencias en los archivos XMI para las versiones de UML 1.4
y 2.0.
55
Se encontr que el uso de plantillas para la generacin de cdigo provee el
5.2 Conclusiones
Se tiene que el producto puede ser usado en conjunto o por mdulos en base a
La herramienta podr ser usada nicamente para una versin de UML ya que
Se tuvo que se debe usar una adaptacin de RUP para una herramienta
56
Bibliografa
[1] Krutchen, The Rational Unified Process: An Introduction, Addison Wesley, 2000
[3] Martin Fowler, Patterns of Enterprise Application Architecture Addison Wesley, 2002
[5] Scott W. Amber, Building Object Applications that work Cambridge University Press 1998
[9] Hidalgo Martnez Mario, Utilizando Dependency Injection con Spring Framework, 2006.
[11] Giuseppe Naccarato, Template-Based Code Generation with Apache Velocity, 2004.
[12] Roman Strobl, Building Applications with Netbeans Visual Library, 2008.
[13] Jim Danjou, The Java Developers Guide to Eclipse, Addison-Wesley Professional, 2004.
[14] Corredera Luis, Arquitectura dirigida por modelos para J2ME, Universidad Pontificia de
Salamanca, 2004.
[16] Gua de los Fundamentos de la Direccin de Proyectos. Tercera Edicin. Gua del
PMBOK.
[18] Working XML: UML, XMI, and code generation, IBM Developer Works, 2004.
57