1 / 47

Juan Timoteo Ponce Ortiz

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. Contenido. Definición del proyecto Fundamentos Proceso Conclusiones y recomendaciones. Antecedentes. Arquitectura multicapas.

tale
Download Presentation

Juan Timoteo Ponce Ortiz

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  2. Contenido • Definición del proyecto • Fundamentos • Proceso • Conclusiones y recomendaciones

  3. Antecedentes • Arquitectura multicapas

  4. 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

  5. Antecedentes • Incremento en productividad • Mantenibilidad • Rendimiento • Portabilidad

  6. 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

  7. 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.

  8. 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

  9. 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

  10. Fundamentos • Mapeo Objeto relacional • Enterprise Java Beans 3 • Diseño de clases • Generadores de código • Arquitectura multicapas

  11. Mapeo Objeto/Relacional Esquema: API de persistencia de Java

  12. Ejemplo: Mapeo de relación(1..*) ACM: Bridging the Object-Relational divide, 2004

  13. 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 Bean EJB3 Specification JSR 220

  14. EJB3: Java Persistence API • Metadatos -> @notaciones • Gestor de entidades • JPQL -> Query language

  15. Diseño de clases: UML Esquema: Manipulación de UML para diseño

  16. 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)

  17. 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

  18. 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

  19. MOF Meta Object Facility Specification ISO/IEC 19502:2005

  20. MOF y JMI MOF -> Estándar OMG MOF -> manipulación de metadatos y modelos MOF-> especificado paralelamente a UML JMI -> Implementación de MOF para Java JMI -> Compatibilidad con norma UML 1.4.2 JMI -> Soporte XMI Meta-Object Facility 1.4.1 Java Metadata Interface JSR 040 Object Management Group UML 1.4.2 ISO IEC 19501:2005

  21. 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

  22. 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)

  23. Proceso de generación de código Code generation in action(2005) Code generation network

  24. 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

  25. Arquitectura multicapas

  26. Arquitectura multicapas • Bajo acoplamiento • Independencia entre niveles • Mantenibilidad • Separación de responsabilidades • Simplificación del desarrollo

  27. Proceso de desarrollo • Análisis • Diseño • Implementación • Pruebas y herramientas de integración

  28. 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

  29. Requisitos y funcionalidades

  30. Modelo conceptual aplicación UML 1.4.2 ISO IEC 19501:2005

  31. 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

  32. Estados de un proyecto

  33. Generación de código Generación a partir de modelos(proceso genérico).

  34. Arquitectura lógica

  35. 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.

  36. Diseño • Diseño • Arquitectura e Interfaces • Interfaces de usuario

  37. Arquitectura e interfaces ArArquitectura de la aplicación Interfaces

  38. Interfaces de usuario

  39. Diálogo de edición • Editores separados por nivel de abstracción • Edición manipulada en una transacción

  40. 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

  41. Selección de componentes de software Lenguaje de programación Repositorio de metadatos

  42. 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.

  43. Componentes de la aplicación

  44. Demostración de la aplicación

  45. 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.

  46. 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.

More Related