MDA en I2E

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    MDA en I2E - Presentation Transcript

    1. Arquitectura Dirigida por el Modelo (MDA) Sesión 1: MDA en i2e © 2008-2009 Depto. Ciencia de la Computación e IA
    2. Puntos a Tratar • Introducción • Model Driven Software Development (MDSD) • Model Driven Architecture (MDA) • MDA vs Modelado Tradicional • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 2
    3. Quienes Somos • I2e es una empresa que desarrolla software a medida. • Fundada el año 2007 (desde 2005 como autónomos) por nosotros 2 o José Luís Ramírez o Emilio Bravo • Fuimos alumnos del especialista en la 3ª edición (curso 04-05) • Actualmente trabajamos 2 personas • Más información en http://www.i2e.com.es/ • Blog: http://www.i2e.com.es/blog/ MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 3
    4. Nuestras Inquietudes • Creemos que la línea a seguir es el desarrollo dirigido por modelos (MDSD) • Basada en el uso de las siguientes tecnologías o GWT • realización de RIA (Rich Internet Applications) utilizando Java, GWT compila el código Java a Javascript. o Eclipse RCP • para aplicaciones de escritorio. o Spring • limpieza de código, control de transacciones, inyección de dependencias, no obliga a la utilización de un servidor de aplicaciones completo. o Hibernate • implementación de JPA más extendida, actualmente es el framework ORM más completo. o Lucene • indexación de grandes volúmenes de texto (la mayoría de la información ahí fuera no esta estructurada). o Alguna tecnología para dispositivos móviles, Java ME?, Android?. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 5
    5. Puntos a Tratar • Introducción • Model Driven Software Development (MDSD) • Model Driven Architecture (MDA) • MDA vs Modelado Tradicional • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 6
    6. Abstracción y Modelos • Unos de los principios básicos de la ingeniería del software es la abstracción, para separar lo esencial de lo no esencial. • En términos del desarrollo de software, lo esencial es la funcionalidad, y lo no esencial es la plataforma tecnológica. • Estas abstracciones nos las proveen los modelos. • El modelado y la transformación de modelos hasta el nivel de abstracción requerido, constituye el núcleo del Desarrollo Dirigido por los Modelos (Model Driven Software Development (MDSD)). MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 7
    7. Abstracción MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 8
    8. Niveles de abstracción en Bases de Datos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 9
    9. Abstracción MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 10
    10. Evolución de la Abstracción en el Software An introduction to Model Driven Architecture (ibm.com) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 11
    11. Model Driven Software Development • También conocido como Model Driven Development (MDD) o Model Driven Engineering (MDE). • MDSD usa los modelos para capturar los requerimientos, y automatizar parcial o totalmente la implementación. o ‘Compilamos’ los modelos para producir ejecutables, o facilitar el desarrollo manual. • Con los modelos podemos centrarnos en el diseño lógico de la aplicación o Nos liberarnos de los detalles de la implementación. • El esfuerzo invertido en el modelado tiene una continuidad durante el desarrollo o Los modelos no son meramente parte de la documentación o Dirigen de forma automatizada el desarrollo del código, durante todas las fases e iteraciones del proyecto. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 12
    12. Proceso MDSD Software Factories-Assembling Applications with Patterns, Models, Frameworks, and Tools (Wiley) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 13
    13. Aproximaciones al Modelado Model-Driven Software Development (Springer) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 14
    14. Puntos a Tratar • Introducción • Model Driven Software Development (MDSD) • Model Driven Architecture (MDA) • MDA vs Modelado Tradicional • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 15
    15. Model Driven Achitecture • Model Driven Architecture (MDA) es un framework para el desarrollo software definido por el Object Management Group (OMG). • MDA es una vía para organizar y gestionar las arquitecturas empresariales, soportada por herramientas automatizadas para definir los modelos y facilitar las transformaciones entre modelos. • Con MDA el proceso de desarrollo de software esta dirigido por la actividad de modelar el software. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 16
    16. Basada en Estándares • La aproximación MDA utiliza los estándares abiertos de modelado establecidos por la OMG’s: o Unified Modeling Language (UML) o Meta-Object Facility (MOF) o Common Warehouse Metamodel (CWM). MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 17
    17. Tipos de Modelos • Tenemos 3 tipos de modelos en función del nivel de abstracción. o CIM (Computation Independent Model). Modelado del negocio y requerimientos a nivel de usuario. Son modelos utilizados para la interacción con los clientes (Usuarios). o PIM (Platform Independent Model). Análisis y diseño independiente de la plataforma tecnológica. Un PIM se transforma en uno o mas PSM o PSM (Platform Dependent Model). Diseño dependiente de la plataforma tecnológica. Cada PSM se transforma en código. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 18
    18. Relación Entre los Modelos Model-Driven Software Development (Springer) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 19
    19. Artefactos en cada nivel de abstracción •La transformación entre inclusive models(CIM) y PIMs es manual, requiriendo del modelador tener las habilidades adecuadas. •Los modelos PIMs y PSMs requieren de herramientas sofisticadas. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 20
    20. PIM vs PSM • PIM o Representa un sistema de software que describe un negocio. El sistema se modela desde el punto de vista del negocio. o El analista suele ser el encargado de realizar el PIM que describe el sistema. o No está atado a ninguna plataforma tecnológica • PSM o El PIM se transforma en uno o más PSM Para cada plataforma tecnológica especifica se genera un PSM. o Modelo muy cercano al código El sistema se modela desde el punto de vista de la tecnología. o El arquitecto se encarga de adaptar el modelo para una implementación tecnológica especifica. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 21
    21. Extendiendo UML • Necesitamos extender UML para adaptar el lenguaje al dominio en el que trabajemos. Profiles UML • Son extensiones para adaptar UML a un dominio particular. • Podemos extender UML con nuestro lenguaje. • Introduce un conjunto de stereotypes (estereotipos) que extienden UML. o Los estereotipos son anotaciones que ofrecen información extra sobre los elementos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 22
    22. Transformación de Modelos MDA Explained: The Model Driven Architecture™: Practice and Promise (Addison Wesley) • La transformación de modelos es una parte clave de MDA. También se conoce como mapping o Un mapping es un conjunto de reglas y técnicas que permiten a un tipo de modelo convertirse en otro. • La herramienta de transformación parte de un PIM y lo transforma en uno o mas PSM. • Una segunda (o la misma) herramienta transforma el PSM a código. • Las reglas de transformación se aplican en función de los estereotipos. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 23
    23. Definición de las Transformaciones • QVT (Query/Views/Transformations) es el estándar definido por la OMG para las transformación entre modelos. o Actualmente muchas herramientas utilizan motores de plantillas o lenguajes de scripting para la definición de las transformaciones. • Poder adaptar las transformaciones a nuestras necesidades es uno los puntos fuertes de MDA. • Esta característica es una de las que mas marcan la diferencia entre las herramientas MDA y los antiguos generadores de código. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 24
    24. Ejemplo Framework MDA MDA Explained: The Model Driven Architecture™: Practice and Promise (Addison Wesley) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 25
    25. MDA Reduce los Tiempos de Desarrollo • MDA se centra en los modelos, no en el código. • Los modelos se producen a nivel de negocio, y se traducen a código mediante herramientas sofisticadas de generación de código. • La destreza para pasar del modelo de negocio a la implementación reduce la mayoría de los esfuerzos de codificación. • Al tener los modelos en las primeras iteraciones, permite la disponibilidad de un sistema ejecutable en fases tempranas del ciclo de vida del proyecto. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 26
    26. MDA y la Calidad Homogénea del Software • MDA pone bajo el control del arquitecto el proceso automático de transformar los modelos en implementaciones. • El arquitecto puede producir reglas de transformación para convertir los modelos en código. • Estas reglas serán comunes a todos los modelos de un mismo tipo. • Este proceso de transformación también se puede aplicar a cualquier proyecto de desarrollo, resultando en un software consistente respecto a su calidad y uso de estándares. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 27
    27. MDA y la Portabilidad de Plataforma • Los modelos que inician el proceso MDA son independientes de la plataforma. • Estos modelos se conocen como PIM (Platform Independent Model / Modelos Independientes de la Plataforma) • Mediante el uso de generadores de código a medida para un tipo especifico de plataforma (Java EE, .NET, PHP…), MDA permite a los sistemas abarcar cualquier tecnología o framework para el cual exista el correspondiente generador de código. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 28
    28. Puntos a Tratar • Introducción • Model Driven Software Development (MDD) • Model Driven Architecture (MDA) • MDA vs Modelado Tradicional • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 29
    29. MDA vs Modelado Tradicional • Las herramientas de modelado como Borland Together o MagicDraw permiten al ingeniero de software emplear modelos UML para modelar/desarrollar aplicaciones. o ¿En qué se diferencian los procesos centrados en el uso de estas herramientas respecto a un enfoque de desarrollo MDA? • Las semejanzas entre los 2 enfoques son muy claras: o Potencian las técnicas de modelado para dirigir el proceso de desarrollo o El conjunto de herramientas necesarias es complejo y necesita de cierto tiempo para tener destreza. • Ninguna aclama que sea una capa fácil de utilizar por encima de JavaEE. o Se necesita un gran conocimiento técnico y habilidades de diseño. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 30
    30. Beneficios • MDA fomenta el uso de PIMs de alto nivel para conducir el proceso de desarrollo. • Centrada en el negocio o Primero se modela el PIM, y a posterior, los diferentes PSM. • Soporta un proceso incremental o A partir del PIM+PSM, se crea el esqueleto del proyecto. • Facilita los cambios o Si modificamos el PIM, regeneramos los diferentes implementaciones. • Menos errores de aplicación o Al codificar menos, hay menos errores. • Portabilidad de tecnología o Si aparece una nueva tecnología, creamos un nuevo PSM (EJB 3.0). MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 31
    31. Inconvenientes • Trabajo con Sistemas Heredados (Legacy) o La ingeniería inversa desde código a PSM, o directamente a PIM no es muy efectiva. o El mapping de PSM a PIM es complejo y difícil de automatizar. o Si ya disponemos de PIM y de código heredado, los cambios en el PIM “machacan” el código existente. • Viabilidad o El paso de PIM a PSM es una tarea compleja. o Más complejo es automatizar el proceso. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 32
    32. Puntos a Tratar • Introducción • Model Driven Software Development (MDD) • Model Driven Architecture (MDA) • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 33
    33. Agile Model Driven Development • Propuesto por Scott W. Amber. • Con AMDD en vez de crear modelos extensivos antes de escribir el código creamos modelos ágiles. Creamos los modelos mínimos necesarios para obtener el máximo de código. • AMDD es una estrategia critica para ir escalando los procesos de desarrollo ágiles mas allá de los proyectos pequeños. • Realizamos el mínimo modelado necesario para obtener el máximo de código posible. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 34
    34. Agile MDD MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 35
    35. Aproximaciones a AMDD. • Manual. Herramientas simples, como una pizarra o un papel, se realizan modelos simples. • Herramienta de Diseño. Modelos simples utilizados para explorar los requerimientos con ‘El Cliente’, y para analizar los requerimientos. • Agile MDA. Uso de herramientas MDA de modelado para crear modelos, a partir de los cuales se genera código. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 36
    36. Agile MDA MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 37
    37. Adopción de aproximaciones al modelado MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 38
    38. Puntos a Tratar • Introducción • Model Driven Software Development (MDD) • Model Driven Architecture (MDA) • Agile MDD y Agile MDA • Proceso de Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 39
    39. Scrum MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 40
    40. Scrum • Se trata de una metodología ágil para la Gestión de Proyectos, centrada en entregar en cada momento la funcionalidad con más valor para la empresa. • El desarrollo se realiza de forma iterativa e incremental (en Sprints). o Al final de cada iteración/sprint se entrega una versión funcional del software a partir de la cual el usuario y el equipo obtienen el feedback necesario. • Esta diseñado para adaptarse fácilmente a los cambios en los requerimientos. • En el Product Backlog está la lista de requerimientos o La gestiona el Product Owner. • En la Sprint Planning Meeting el equipo selecciona que requerimientos se pueden realizar en la siguiente iteración (Sprint) y se añaden al Sprint Backlog. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 41
    41. Agile Unified Process (AUP) • Es una versión simplificada de RUP • Aplica técnicas ágiles: o Desarrollo Dirigido por las Pruebas (TDD) o Modelado Ágil (AM) o Gestión del Cambio Ágil (ACM) • Como proceso de desarrollo base utilizamos Scrum. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 42
    42. Agile UP • De AUP nos quedamos con las disciplinas, algunos de los roles y si fuera necesario algún artefacto para la documentación del proyecto. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 43
    43. Puntos a Tratar • Introducción • Model Driven Software Development (MDD) • Model Driven Architecture (MDA) • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 44
    44. AndroMDA • www.andormda.org • AndroMDA es un framework MDA open source, recibe como entrada un modelo UML (almacenado en XMI o en EMF de eclipse) los combina con los plugins de AndroMDA (cartridge y translation-libraries) y produce código fuente. • Existen diferentes cartridges los cuales analizan el PIM de entrada y construyen un PSM sobre el cual se usan las plantillas para producir código. • El proceso de transformación se controla utilizando los plugins llamados cartridges o Cada cartridge se puede modificar para adaptarlo a nuestras necesidades. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 45
    45. Prestaciones de AndroMDA • AndroMDA significa principalmente escribir menos código manualmente. o Eliminamos las tareas repetitivas y aburridas. o Utilizamos el modelo para comunicar realmente lo que el sistema está haciendo. • AndroMDA genera código a medida para cubrir las necesidades particulares de un proyecto. • Cuando necesitas modificar la aplicación, cambias primero el modelo, regeneras el código, y en caso de que sea necesario añades o modificas el código a medida. • Si deseas generar artefactos a medida desde el modelo, puedes escribir un cartridge. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 46
    46. Componentes AndroMDA • Existen 2 componentes primarios usados en el sistema de AndroMDA: • AndroMDA code generation engine.  Plataforma que contiene los módulos de código (llamados cartridges / cartuchos) que realizan la generación del código. • Apache’s Maven project builder and management system.  Serie de plugins de Maven para el simplificar los procesos de uso de AndroMDA. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 47
    47. Cartridges • Son los plugins primarios del framework AndroMDA. • Cartridges: • Los cartridges procesan los elementos del o BPM4Struts modelo que: o tienen unos stereotypes específicos (i.e. o jBPM <<Entity>>, <<Enumeration>>, etc.) o JSF o cumplen ciertas condiciones inferidas del mismo o EJB (por ejemplo, todos los actores que tienen una o Hibernate dependencia con un <<Service>>). o Java • Procesan estos elementos a partir de los ficheros de plantillas definidos en el descriptor o Meta del cartridge. o Spring • En resumen, son los responsables de generar o WebService el código a partir del modelo. o XmlSchema MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 48
    48. Configuración • El engine de AndroMDA está dirigido por la información de configuración encontrada en el fichero andromda.xml • El fichero <projectDir>/project.properties contiene las propiedades de Maven que son pasadas a andromda.xml • El fichero <projectDir>/build.properties contiene las propiedades de Maven que son especificas para construir la versión. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 49
    49. Creando el Modelo con UML • La generación de código en AndroMDA está dirigida por los esterotipos UML. • Si encuentra un estereotipo reconocido, le cede el control al cartridge para generar el código. • Para simplificar el modelado, ha sido desarrollado un Profile de UML el cual debe ser incluido como parte de tu modelo. o Este profile contiene los estereotipos necesarios para poder modelar. • No genera el 100% del código ejecutable, debemos implementar manualmente la lógica de negocio. o La lógica de negocio se implementa en clases que heredan de las clases generadas en el core. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 50
    50. Implementando el código a media • Utiliza el patrón template method para facilitar la implementación del código a medida. De esta manera durante el proceso de generación no se tocan las clases modificadas manualmente. • En UsuarioServiceImpl implementamos el código a medida que necesitemos. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 51
    51. Implementando el código a media UsuarioServiceBase.java public es.i2e.server.administracion.model.Usuario getUsuario(java.lang.Integer idUsuario) { if (idUsuario == null) { throw new IllegalArgumentException('idUsuario' can not be null"); } try { return this.handleGetUsuario(idUsuario); } catch (Throwable th) { throw new es.i2e.dpsrecobro.server.administracion.service.UsuarioServiceException(th, th); } } protected abstract es.i2e.server.administracion.model.Usuario handleGetUsuario(java.lang.Integer idUsuario) throws java.lang.Exception; MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 52
    52. Otros Frameworks MDA • OpenMDX • www.openmdx.org , Es una plataforma MDA Open Source basada en los estándares MDA de la OMG. OpenMDX soporta Java SE, Java EE y .NET • Taylor MDA • http://taylor.sourceforge.net , Taylor no es una herramienta UML de propósito general. Es una herramienta especializada en construir aplicaciones empresariales utilizando tecnologías Java Open. Trabajamos directamente en un nivel PSM. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 53
    53. Herramientas para la Construcción de Frameworks a medida. • Eclipse Modeling Project • www.eclipse.org/modeling/ , Eclipse Modeling Project esta enfocado en la evolución y promoción de las tecnologías de desarrollo dirigido por modelos en la comunidad eclipse proveyendo frameworks de modelado, herramientas e implementaciones estándar. • Acceleo • http://acceleo.org/pages/home/en , Acceleo es una herramienta para la construcción de generadores de codigo basada en eclipse. • OpenArchitectureWare (oAW) • openArchitectureWare (oAW) es un framework de generacion MDA/MDD modular basada en eclipse. Soporta EMF y otros modelos en UML2, XML o JavaBeans MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 54
    54. Puntos a Tratar • Introducción • Model Driven Software Development (MDD) • Model Driven Architecture (MDA) • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 55
    55. MDA en I2E • Utilizamos como proceso de desarrollo Scrum + AUP o con unas pequeñas modificaciones para adaptarlo a un proceso MDSD. • Iteraciones de 2 semanas en cada proyecto. • No generamos el 100% de la aplicación, utilizamos las clases de infraestructura (core) sobre las cuales implementamos la lógica de negocio a medida. • Todos los integrantes del equipo intervienen en cada decisión del proyecto. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 56
    56. MDA en I2E Scrum of Scrum Stakeholders Product Backlog Usuarios Product Owner Scrum Master Sprint Backlog Helpdesk Product Owner Product Backlog Scrum Master Sprint Backlog ..etc.. Scrum Master Product Backlog Product Owner Sprint Backlog MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 57
    57. Herramientas • MagicDraw o Para la realización de los diagramas UML. o AndroMDA esta perfectamente integrada con MagicDraw, nos proporciona los profiles para utilizarlos directamente desde MagicDraw. o Es la herramienta recomendada por el equipo de AndroMDA. • Eclipse o Para el desarrollo de código. • Jira y Confluence o Para la gestión de los proyectos. • Hudson o Integración Continua. • Subversion o Control de versiones MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 58
    58. ¿Cómo se adapta AndroMDA en todo el proceso? • Para cada solución, realizamos una división en 3 proyectos: o Proyecto MDA donde se genera el código con AndroMDA a partir de los modelos. o Proyecto de desarrollo, donde realizamos el desarrollo a medida y los test. o Proyecto cliente, el cliente puede ser:  Escritorio • RCP, SWT, Swing  Web • Struts, GWT (Google Web Toolkit) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 59
    59. Ventajas de la separación en proyectos • Nos independizamos de cambios futuros en la estructura de los proyectos de AndroMDA. • Podemos utilizar un sistema de control de versiones con el proyecto de desarrollo. • Los diseñadores y arquitectos son los únicos que tocan el proyecto de diseño. • Los programadores no tienen que preocuparse de aspectos del diseño ni conocer en profundidad tecnologías como EJB, Spring e Hibernate. • Los desarrolladores del cliente o diseñadores gráficos pueden trabajar en local o remoto, están exentos del código del servidor. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 60
    60. Proyecto 1 - MDA • Este proyecto lo generamos utilizando andromdapp, herramienta para la creación de proyectos. • Esta herramienta configura el proyecto en función de las tecnologías seleccionadas. • Se realizan versiones en cada hito del proyecto. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 61
    61. Proyecto 1 - MDA • Tareas Ant • Hemos realizado tareas de Ant para copiar el código generado del proyecto MDA al proyecto de desarrollo. • Estas tareas utilizan una cache (cache.properties) de hash para determinar si 2 archivos son iguales o han sido modificados. Ejemplo de hash: C:repositorioAndroMDAerpi2eServerMDAcoretargetsrcesi2e erpserveralmacenmodelHistoricoPrecioVenta.java=696f7d682d4e 5ee062012680d8f7fc8f MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 62
    62. Proyecto 2 - Desarrollo • Este proyecto esta bajo un sistema de control de versiones (Subversion o CVS) • Sobre este proyecto trabajan los desarrolladores implementando la lógica de negocio y los test. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 63
    63. Proyecto 2 - Desarrollo • Tareas Ant • Disponemos de tareas de Ant para: o la compilación o el deploy en el servidor de aplicaciones o la ejecución de test automáticos. • También se han creado tareas de cobertura de los test o para comprobar cuanto código de servidor esta testeado. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 64
    64. Proyecto 3 - Cliente • También esta bajo Subversion (o CVS). • Sobre este proyecto trabajan los desarrolladores y diseñadores gráficos • Implementan la aplicación web o la aplicación de escritorio. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 65
    65. Ejemplo de una iteración (Sprint) en el proceso de desarrollo (Scrum + AUP) – Estimar las pilas de producto y extraer nuevas pilas de producto. – Planificar el sprint en función del tamaño y velocidad (recursos disponibles), se decide cuantos items del producto se puede realizar. – Se realiza una sesión de modelado. – Se genera el código y se empieza con el trabajo. – Al final de la iteración se realiza una demo con todo lo que se ha realizado. – Se obtiene el feedback de la demo para realizar un nuevo sprint. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 66
    66. Sesión de Modelado • Primero realizamos un esbozo en pizarra o en papel, en caso de que no tengamos claro como vamos a modelar los requerimientos. o Modelado Ágil o Intentamos integrar a todos los participantes del proyecto en la realización de este primer esbozo. • Una vez obtenido el esbozo utilizamos MagicDraw para realizar el modelo. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 67
    67. Modelado • Realizamos 3 diagramas de clases: • Diagrama con las entidades <<Entity>>. • Diagrama con los servicios <<Service>>. • Diagrama con los Value Objects o Data Transfer Objects <<ValueObject>>. • En la herramienta de modelado tenemos que ir definiendo las estructura de paquetes para las clases. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 68
    68. Resultado del Modelado • Tras el modelado, utilizamos las tareas de Ant para generar el código y copiarlo al proyecto de desarrollo. o En función de cómo hayamos configurado el proyecto de AndroMDA generará el código sobre una arquitectura u otra. • Ejemplo de arquitectura • MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 69
    69. Arquitectura de despliegue Cliente Eclipse RCP Cliente Eclipse RCP Cliente Eclipse RCP Internet Base de Datos. Servidor de Aplicaciones. MySQL (PostgreSQL,...) Cliente Web JBoss Servidor Web ecommerce. Tomcat Cliente Web MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 70
    70. Código y ficheros de configuración generados MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 71
    71. Implementación • Una vez hemos generado el código, implementamos la lógica de negocio ,las consultas y los test. • AndroMDA nos proporciona: o el esqueleto sobre el cual implementar las funcionalidades del negocio o y ciertas funcionalidades ya implementadas (CRUD). • El código de negocio se implementa en los métodos de las clases Impl generadas por AndroMDA. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 72
    72. Pruebas • Para la implementación podemos seguir la metodología Test Driven Development, realizando las pruebas antes de la codificación de la implementación. • Estos test se ejecutan desde un entorno de Integración Continua (CI). MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 73
    73. Técnicas Complementarias • Cobertura de los Test o Utilizamos la herramienta Cobertura (http:// cobertura.sourceforge.net/) para obtener el % de código cubierto por los test automáticos. o Con los informes obtenidos podemos observar que partes del código están sin probar. • Análisis Estático del Código o Utilizamos Herramientas como FindBugs (http:// findbugs.sourceforge.net/) o PDM para realizar un análisis estático del código y encontrar errores de implementación que reducen la calidad del código. o Estas Herramienta también nos pueden servir para mejorar la calidad del código generado automáticamente por la herramienta MDA. MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 74
    74. Integraciones Continuas • Con la integración continua automatizamos: o la compilación de la aplicación o los test o el análisis estático del código o la obtención del instalable. • También controlamos la evolución de la aplicación de una forma automatizada. • Utilizamos Hudson (https://hudson.dev.java.net/) como servidor de integración. Lo utilizamos por su versatibilidad y la integración con Jira (http:// www.atlassian.com/software/jira/). MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 75
    75. Proceso de Desarrollo SVN MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 76
    76. Puntos a Tratar • Introducción • Model Driven Software Development (MDSD) • Model Driven Architecture (MDA) • Agile MDD y Agile MDA • Proceso Desarrollo (Scrum + AUP) • AndroMDA • MDA en I2E o Ejemplos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 77
    77. ERP suministros eléctricos y domóticos MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 78
    78. Gestión de un Laboratorio de Farmacia MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 79
    79. Gestión del Boletín Oficial del Registro Mercantil (BORME) MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 80
    80. Gestión de Deudas MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 81
    81. Para Saber Más • Bibliografía o MDA Explained: The Model Driven Architecture(TM): Practice and Promise (Addison-Wesley). o MDA Distilled (Addison-Wesley). o Model Driven Architecture: Applying MDA to Enterprise Computing (OMG Press). o Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML (Addison-Wesley). o Model-Driven Software Development: Technology, Engineering, Management (Wiley). o Model-Driven Software Development (Springer). o Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools (Wiley). • Enlaces o http://www.omg.org/mda/ o http://www.andromda.org/ o http://www.agilemodeling.com/ o http://www.ibm.com/developerworks/rational/library/3100.html MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e – 82
    82. ¿Preguntas...? MDA © 2008-2009 Depto. Ciencia de la Computación e IA MDA en i2e - 83

    + Ingenieria Informatica EmpresarialIngenieria Informatica Empresarial, 4 months ago

    custom

    569 views, 0 favs, 2 embeds more stats

    Introducción al desarrollo dirigido por modelos y more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 569
      • 476 on SlideShare
      • 93 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 18
    Most viewed embeds
    • 92 views on http://www.i2e.com.es
    • 1 views on http://74.125.47.132

    more

    All embeds
    • 92 views on http://www.i2e.com.es
    • 1 views on http://74.125.47.132

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories