aplicación de diseño de clases y generación de código, orientado hacia la arquitectura...
TRANSCRIPT
![Page 1: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/1.jpg)
Aplicación de diseño de clases y generación de
código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional
• Juan Timoteo Ponce Ortiz
![Page 2: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/2.jpg)
Contenido
• Definición del proyecto• Fundamentos• Proceso• Conclusiones y
recomendaciones
![Page 3: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/3.jpg)
Antecedentes
• Arquitectura multicapas
![Page 4: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/4.jpg)
Antecedentes
• Persistencia de datos• Bases de datos relacionales
• Fiables• Eficientes• Escalables
• Enfoque orientado a objetos• Incompatibilidades con RDBMS• Data Access Object
Relational database management system
![Page 5: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/5.jpg)
![Page 6: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/6.jpg)
Antecedentes
• Incremento en productividad• Mantenibilidad• Rendimiento• Portabilidad
![Page 7: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/7.jpg)
Antecedentes• JSR 220: Enterprise Java Beans 3(2006)• Java Persistence API
• Herramientas CASE, funciones orientadas a la norma JPA• Dificultad de aprendizaje• Enfoque cerrado• Base de datos -> Modelo OO
![Page 8: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/8.jpg)
Problemática actual
La falta de funciones y utilidades en herramientas CASE de modelado de datos basadas en UML, que permitan la exportación de los modelos hacia código fuente de un proyecto basado en la arquitectura multicapas capas, utilizando reglas de mapeo objeto relacional.
![Page 9: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/9.jpg)
Objeto de estudio
• Diseño de clases y generación de código enfocado en normas de desarrollo, utilizando UML como base– Estándar de persistencia EJB 3– Herramientas de
automatización(software libre)– Frameworks de integración visual
![Page 10: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/10.jpg)
Objetivos• Objetivo general
– Desarrollo de una aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional.
– UML 1.4.2 ISO/IEC 19501:2005
![Page 11: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/11.jpg)
Fundamentos
•Mapeo Objeto relacional•Enterprise Java Beans 3•Diseño de clases•Generadores de código•Arquitectura multicapas
![Page 12: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/12.jpg)
Mapeo Objeto/Relacional
Esquema: API de persistencia de Java
![Page 13: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/13.jpg)
Ejemplo: Mapeo de relación(1..*)
ACM: Bridging the Object-Relational divide, 2004
![Page 14: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/14.jpg)
Enterprise Java Beans 3
Enterprise Java Beans(EJB) es una plataforma para construir aplicaciones portables, rehusables y escalables
• API de persistencia Java (JPA)• Definición de Enterprise Beans
•Entity BeanEJB3 Specification JSR 220
![Page 15: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/15.jpg)
EJB3: Java Persistence API
•Metadatos -> @notaciones•Gestor de entidades•JPQL -> Query language
![Page 16: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/16.jpg)
Diseño de clases: UML
Esquema: Manipulaciónde UML para diseño
![Page 17: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/17.jpg)
Diseño de clases:UML
• ¿Cuales son los objetos persistentes?• “El modelo de dominio representa las
‘cosas’ que existen o tienen un lugar en el entorno de negocio” – Object Oriented Software Engineering(2000)
![Page 18: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/18.jpg)
Características de herramientas de diseño: UML
• Manejo nativo de UML( 1.4.2 ISO 19501:2005)
• Manejo del modelo MOF para la administración de elementos
• Manejo de operaciones transaccionales• Diseño de modelos de forma visual a
través de editores especializados• Intercambio de datos a través de XMI
![Page 19: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/19.jpg)
Que se necesita para manipular UML?
• Meta-Object Facility•Lenguaje abstracto para la especificación,
construcción y manejo de metamodelos, los cuales son a su vez lenguajes abstractos para algún tipo de metadato.
Meta Object Facility Specification ISO/IEC 19502:2005
![Page 20: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/20.jpg)
MOF
Meta Object Facility Specification ISO/IEC 19502:2005
![Page 21: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/21.jpg)
MOF y JMI
MOF -> Estándar OMGMOF -> manipulación de metadatos y modelosMOF-> especificado paralelamente a UML
JMI -> Implementación de MOF para JavaJMI -> Compatibilidad con norma UML 1.4.2JMI -> Soporte XMI
Meta-Object Facility 1.4.1Java Metadata Interface JSR 040Object Management GroupUML 1.4.2 ISO IEC 19501:2005
![Page 22: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/22.jpg)
Repositorio de metadatos
Componente de software que contiene elementos MOF, manipula su estado y acceso.• Transaccional.• Provee utilidades de creación, edición y
eliminación de elementos contenidos.• Simplifica su uso a través del patrón de
diseño Facade.• Ejemplo: Enterprise architect• Local -> Access• Remote -> Sql Server
![Page 23: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/23.jpg)
Generación de código
“”La generación de código es la transformación de algún tipo de diseño en código específico para una plataforma” – Code generation in Action(2005)
![Page 24: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/24.jpg)
Proceso de generación de código
Code generation in action(2005)Code generation network
![Page 25: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/25.jpg)
Características de generadores de código
• Flexibilidad y configuración en el código generado
• Manejo de plantillas y ficheros de definición de estructuras
• Pruebas de código generado(compilación)
• Integración con diferentes lenguajes de programación
![Page 26: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/26.jpg)
Arquitectura multicapas
![Page 27: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/27.jpg)
Arquitectura multicapas
•Bajo acoplamiento•Independencia entre niveles•Mantenibilidad•Separación de responsabilidades•Simplificación del desarrollo
![Page 28: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/28.jpg)
Proceso de desarrollo
•Análisis•Diseño•Implementación•Pruebas y herramientas de integración
![Page 29: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/29.jpg)
Análisis•Análisis
• Requisitos funcionales
• Modelo conceptual
• Marco de trabajo
• Estados de un proyecto
• Proceso genérico de generación
• Arquitectura lógica
• Disposición de paquetes de clases
![Page 30: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/30.jpg)
Requisitos y funcionalidades
![Page 31: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/31.jpg)
Modelo conceptual aplicación
UML 1.4.2 ISO IEC 19501:2005
![Page 32: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/32.jpg)
Marco de trabajo
• Contenedor principal : Proyecto• Una instancia de proyecto a la vez• Contiene referencias al modelo principal de
diseño• Modelo principal de diseño
• Contiene n instancias de elementos UML• Contiene información adicional sobre
elementos• Metadatos de generación
• Diagrama• Elemento UML que contiene elementos
visuales• Cada elemento visual referencia a un
elemento lógico
![Page 33: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/33.jpg)
Estados de un proyecto
![Page 34: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/34.jpg)
Generación de código
Generación a partir de modelos(proceso genérico).
![Page 35: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/35.jpg)
Arquitectura lógica
![Page 36: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/36.jpg)
Disposición de paquetes de clases
• La distribución se basa en el patrón de diseño Modelo-Vista-Controlador
• Los paquetes relaciones y core contienen los elementos UML.
![Page 37: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/37.jpg)
Diseño•Diseño
• Arquitectura e Interfaces
• Interfaces de usuario
![Page 38: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/38.jpg)
Arquitectura e interfaces
ArArquitectura de la aplicación Interfaces
![Page 39: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/39.jpg)
Interfaces de usuario
![Page 40: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/40.jpg)
Diálogo de edición
•Editores separados por nivel de abstracción
•Edición manipulada en una transacción
![Page 41: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/41.jpg)
Implementación•Implementación
• Selección de componentes de software
• Lenguaje de programación
• Metamodelo de UML
• Intercambio de datos( XMI )
• Repositorio de datos
• Editor gráfico
• Motor de plantillas
• Componentes de la aplicación
![Page 42: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/42.jpg)
Selección de componentes de software
Lenguaje de programación
Repositorio de metadatos
![Page 43: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/43.jpg)
Selección de componentes de software
Motor de plantillas
• Editor gráfico• Basado en ArgoUML• Información de graficado almacenada como
metadatos de los elementos.
![Page 44: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/44.jpg)
Componentes de la aplicación
![Page 45: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/45.jpg)
Demostración de la aplicación
![Page 46: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/46.jpg)
Conclusiones
• Los objetivos fueron cumplidos en base a las limitaciones definidas.
• Las interfaces JPA no cambiarán drásticamente en próximas especificaciones.
• La aplicación ofrece(inicialmente) una funcionalidad básica pero eficiente para el desarrollo de aplicaciones JSE integradas con JPA.
• Desarrollo abierto y disponible a posibles usuarios debido al tipo de licencia.
• Las herramientas de integración continua facilitan la localización y fallo de errores, además de incrementar la calidad del código.
![Page 47: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader033.vdocuments.pub/reader033/viewer/2022042814/5533f398550346e16c8b4954/html5/thumbnails/47.jpg)
Recomendaciones
• Personalizar el proceso de generación agregando plantillas dirigidas hacia otro tipo de implementaciones.
• Implementar de forma completa la norma JPA dentro de la aplicación.
• Mejorar la interacción usuario-aplicación.• Ampliar el soporte de generación de generación
de código para J2SE y J2EE.