aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de...
TRANSCRIPT
![Page 1: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/1.jpg)
Aplicación de diseño de clases y generación de
código, orientado hacia la arquitectura de 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 de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/2.jpg)
Antecedentes
• Herramientas de automatización de tareas
• Enterprise Java Beans 2, falencias de diseño e implementación
• Frameworks de integración• Enterprise Java Beans 3
– Reducción de código– Automatización
![Page 3: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/3.jpg)
Problemática actual
• Diseño OO• Modelo OO y bases de datos
relacionales• Uso de herramientas estandarizadas• Personalización y Portabilidad
![Page 4: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/4.jpg)
Objeto de estudio
• Diseño y generación de código enfocado en normas de desarrollo, utilizando UML como base– Frameworks de integración– Herramientas de
automatización(software libre)– Estándar de persistencia
![Page 5: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/5.jpg)
Objetivos
• Objetivo general– Desarrollo de una aplicación de diseño de
clases y generación de código, orientado hacia la arquitectura de tres capas y el mapeo objeto/relacional.
– UML 1.4 ISO/IEC 19501:2005
![Page 6: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/6.jpg)
Novedad del trabajo
• Unificación de herramientas y tecnologías.
• Persistencia de datos a través de herramientas ORM.
• Manejo de la ampliamente extendida norma EJB 3.
• Aceleración y estandarización del desarrollo de software.
![Page 7: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/7.jpg)
Fundamentos
•Esquema general•MOF y JMI•EJB3•Herramientas CASE•Generadores de código
![Page 8: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/8.jpg)
Esquema general
Esquema: Manipulaciónde UML para diseño
Esquema: API de persistencia de Java
![Page 9: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/9.jpg)
Características de herramientas CASE
• 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 10: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/10.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 FacilityJava Metadata InterfaceObject Management GroupUML 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 de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/11.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 JSR 220
![Page 12: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/12.jpg)
Características de generadores de código
• Flexibilidad y configuración en el código generado
• Manejo de plantillas y ficheros de definicion de estructuras
• Pruebas de código generado(compilación)
• Integración con diferentes lenguajes de programación
![Page 13: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/13.jpg)
Diseño y generación de código(definicion)
• “Generación de código es la transformación de algún diseño en código específico” – Code generation in Action(2005)
• “Acción de generar código fuente a partir de un modelo de acuerdo a una herramienta de programación específica” – Code generation, a practical overview(2000)
![Page 14: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/14.jpg)
Arquitectura lógica
![Page 15: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/15.jpg)
Requisitos y funcionalidades
![Page 16: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/16.jpg)
Modelo conceptual aplicación
![Page 17: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/17.jpg)
Generación de código
Generación a partir de modelos(proceso genérico).
Fuente: Code generation in action(2005)
![Page 18: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/18.jpg)
Proceso genérico de diseño y generación de código
![Page 19: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/19.jpg)
Flujo de sucesos:generarcódigo
![Page 20: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/20.jpg)
Caso de prueba
![Page 21: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/21.jpg)
Resultado esperado
![Page 22: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/22.jpg)
Conclusiones
• Se ha podido manipular los componentes de manipulación MOF.
• El diseño es concordante con la norma iso/iec 19501.
• Se ha logrado manipular correctamente los frameworks involucrados:– Persistencia de datos– Repositorio de metadatos– Motores de plantillas– Framework vinculante
• La generación de código es satisfactoria, generando aplicaciones auto ejecutables de acuerdo al diseño
![Page 23: Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura de multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz](https://reader035.vdocuments.net/reader035/viewer/2022062410/5665b4b21a28abb57c935046/html5/thumbnails/23.jpg)
Librerías y frameworks utilizados
• Meta Object Facility 2.0• Java Metadata Interface• UML 1.4.2• Java SE 1.6• Netbeans Platform – MDRepository• Apache velocity• Enterprise Java Beans 3.0• Apache Ant