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.

Slides:



Advertisements
Presentaciones similares
Desarrollo de aplicaciones en n- capas
Advertisements

U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Unidad 2 IDE Visual Studio.Net [UTN - Tecnologías de desarrollo de software IDE] [2009]
Presentación de la Plataforma de Gestión de la Excelencia
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
FLAN “F- LINKS AND NODES”
Introducción a la Orientación a Objetos
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
ESCUELA POLITÉCNICA DEL EJÉRCITO
Teórico: Introducción
TOGAF.
Investigación Servidor de Aplicaciones WebSphere
ACIS Desarrollar proyectos de software y “evitar” el fracaso ?
Java 2 Platform Enterprise Edition
Características Técnicas
Ingeniería del Software
JAVA Persistence API (JPA)
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
HERRAMIENTAS CASE.
1er. Comité de Usuarios. Historia ¿Qué hay de nuevo? No más cygwin. Exportación granular: trabajo distribuído. Compilación de metadatos. Manejo.
BIBLIOTECA DE COMPONENTES Rodrigo Fonseca V. Dawid Junnco Q.
STARUML.

Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software
Arquitectura de una aplicación
Sesión 5 Herramientas de creación de DSL gráficos (GMF)
Como Desarrollar SW Distribuido de Calidad
Fundamentos de programación
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Bases de Datos Relacionales.  Responsable Cátedra: Silvina Migani  JTP: Liliana Romera  Ayudante:
INSTITUTO TECNOLÓGICO DEL VALLE DEL GUADIANA
Tecnología para la Comunidad
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Introducción al modelado Unificado
Eguana Reports Servidor de Reportes basado en Tecnología Java y XML Presentado por: Roy Cox S. Fernando Pérez M. José Pérez S.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
EDGAR IVÁN ARIAS MALDONADO INGENIERIA DE SISTEMAS.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Sistemas de gestión de contenidos (CMS)
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Presentación del Producto
Juan Timoteo Ponce Ortiz
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
Ingeniería de Requisitos
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Unidad 3 MODELO DE ANALISIS.
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Gestión de proyectos fin de carrera
Aplicaciones en 2,3 y n capas
Acceso a Datos Erick López Ovando Licenciado en Informática.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Stored Procedures vs. Programación Tradicional
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Sobre el Proceso Racional Unificado RUP es un proceso para el desarrollo de un proyecto de un software que define claramente quien, cómo, cuándo y qué.
Diccionario/Directorio de Datos
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Proyecto Harry Generador de aplicaciones. Objetivo Crear una herramienta de desarrollo de sistemas que permita minimizar los tiempos de programación mediante.
Entregables del Proyecto
Tendencias Avanzadas de Ingeniería de Software.  Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora)
Transcripción de la presentación:

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 1

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

Antecedentes Arquitectura multicapas 3 http://www.selikoff.net/blog/2008/08/21/j2ee-why-ejb2-cmp-was-doomed-to-failure/ -> sobre falencias http://www.ibm.com/developerworks/data/library/techarticle/dm-0807zheng/?S_TACT=105AGX02&S_CMP=FP -> migracion Imágenes http://www.j2ee.me/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html http://www.ssuet.edu.pk/taimoor/books/1-57521-197-1/f25-3.gif 3

Relational database management system 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 4

http://www.teradata.com/tdmo/assets/images/FIG-1-TECH-DAO.jpg 5

Antecedentes Incremento en productividad Mantenibilidad Rendimiento Portabilidad Técnica de persistencia automatizada, que permite que objetos definidos en lenguajes OO sean almacenados en tablas de una base de datos relacional, utilizando metadatos que describen el mapeo entre los objetos y la base de datos(Fussell, 2004, p.6). 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 UML 1.4.2 ISO/IEC 19501:2005 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

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

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

Mapeo Objeto/Relacional Estándar OMG que especifica un lenguaje abstracto para describir lenguajes. En este contexto un lenguaje significa una sintaxis abstracta de un lenguaje. MOF es también referenciado como un meta-metamodelo y las sintaxis abstracción denominadas metamodelos. Esto es por que MOF se estructura en cuatro capas: Esquema: API de persistencia de Java 13

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

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 15

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

Diseño de clases: UML Esquema: Manipulación de UML para diseño 17 Estándar OMG que especifica un lenguaje abstracto para describir lenguajes. En este contexto un lenguaje significa una sintaxis abstracta de un lenguaje. MOF es también referenciado como un meta-metamodelo y las sintaxis abstracción denominadas metamodelos. Esto es por que MOF se estructura en cuatro capas: Esquema: Manipulación de UML para diseño 17

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

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 19

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 20

MOF Meta Object Facility Specification ISO/IEC 19502:2005 21

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 22

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 23

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

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

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 26

Arquitectura multicapas 27

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

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

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 30

Requisitos y funcionalidades 31

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

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 33

Estados de un proyecto

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

Arquitectura lógica 36

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.

Diseño Diseño Arquitectura e Interfaces Interfaces de usuario 38

Arquitectura e interfaces ArArquitectura de la aplicación Interfaces 39

Interfaces de usuario 40

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

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 42

Selección de componentes de software Lenguaje de programación Repositorio de metadatos 43

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

Componentes de la aplicación 45

Demostración de la aplicación 46

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

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