MDE: Ingeniería dirigida por modelos. Otra forma de...

162

Transcript of MDE: Ingeniería dirigida por modelos. Otra forma de...

Page 1: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

MDE: Ingeniería dirigida por modelos.Otra forma de construir software

Dr. Juan Manuel Cueva LovelleDra. B. Cristina Pelayo García-Bustelo

Departamento de Informática

Universidad de Oviedo

Universidad Distrital Francisco José de CaldasBogotá, Noviembre de 2008

Page 2: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 3: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 4: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 5: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 6: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 7: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 IntroducciónResumenPlanteamiento del problema

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 8: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

El Desarrollo de Software Dirigido por Modelos(DSDM) es una propuesta para la construcción desoftware en la que se le atribuye a los modelos el papelprincipal de todo el proceso, frente a las propuestastradicionales basadas en lenguajes de programación,plataformas de objetos y componentes software.

Page 9: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

DSDM persigue elevar el nivel de abstracción en eldesarrollo de software, convirtiendo a los modelos y alas transformaciones entre ellos en los principalesartefactos de todas las fases del proceso de desarrollode software: captura y gestión de los requisitos, diseño,análisis, implementación, despliegue, con�guración,mantenimiento, evolución, etc. [BBC+06]

Page 10: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

El éxito de esta iniciativa ha originado la evolución dedistintos paradigmas englobados dentro del contextodel DSDM, como por ejemplo:

la iniciativa MDA (Model Driven Architecture) de laOMGlas técnicas de Agile Model-Driven Development(AMDD)las propuestas de Domain Speci�c Modeling (DSM)las estrategias de Domain-Oriented Programming(DOP)las Software Factories (SF)

Cada una de ellas aborda el proceso de DSDM dediferente forma, y con distintos mecanismos.

Page 11: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

En particular, la iniciativa MDA cubre un amplioespectro de áreas de investigación:

metamodelos basados en MOFper�les UMLtransformaciones de modelos y de�nición de lenguajesde transformación (QVT)construcción de modelos PIM y PSM ytransformaciones de PIM a PSMconstrucción de herramientas de soporteaplicación en métodos de desarrollo y en dominiosespecí�cos

Algunos de estos aspectos están bien fundamentados yse están empezando a aplicar, otros sin embargo estántodavía en fase inicial

Page 12: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

MDE es el acrónimo de Model Driven Engineering(Ingeniería Dirigida por Modelos) y hace referencia aluso sistemático de modelos, como los elementosprincipales en la ingeniería de software, durante el ciclode vida completo del proyecto [Sch06]

Concibe al desarrollo de software bajo la idea centralde que los artefactos fundamentales son los modelos (yno los programas)

Implica la generación automática de programas a partirde modelos. Model Driven Engineering (MDE) es unaforma genérica de de�nir el DSDM y los MDA

Page 13: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEResumen

El principal objetivo del MDE es bajar el coste ymejorar la calidad de las inversiones en software.Las soluciones que aportan este tipo de modelos son:

Separar los aspectos del dominio de los aspectos de latecnologíaEl conocimiento queda registrado en los modelos y lastransformaciones y puede ser rehusadoSe automatizan partes signi�cantes del procesoImplementación de componentes usables por otraspartes

Page 14: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 IntroducciónResumenPlanteamiento del problema

Page 15: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

En la sociedad actual:

Demanda del Software ⇑ y el coste ⇑Se intenta aumentar la productividad:

⇑ nivel de abstracción⇑ nivel de reutilización

Premisa

¾Cómo aumentar la productividad en la construcción de

software a través del aumento de la abstracción y el

aumento del nivel de reutilización?

Page 16: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

En la sociedad actual:

Demanda del Software ⇑ y el coste ⇑Se intenta aumentar la productividad:

⇑ nivel de abstracción⇑ nivel de reutilización

Premisa

¾Cómo aumentar la productividad en la construcción de

software a través del aumento de la abstracción y el

aumento del nivel de reutilización?

Page 17: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

La iniciativa Model Driven Architecture (MDA)Es una iniciativa del Object Management Group (OMG)

Planteamiento de los MDA's

El proceso de crear software debería ser dirigido por laformulación de MODELOS en lugar de por la escrituramanual de código fuente.

Con ello se conseguiría: ⇑ nivel de abstracción + ⇑ nivel dereutilización + Interoperabilidad

Page 18: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

La iniciativa Model Driven Architecture (MDA)Es una iniciativa del Object Management Group (OMG)

Planteamiento de los MDA's

El proceso de crear software debería ser dirigido por laformulación de MODELOS en lugar de por la escrituramanual de código fuente.

Con ello se conseguiría: ⇑ nivel de abstracción + ⇑ nivel dereutilización + Interoperabilidad

Page 19: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

La iniciativa Model Driven Architecture (MDA)Los modelos de MDA [RFW+04] representaran todos losaspectos del programa �nal ejecutable, por tanto deben ser:

formales

precisos

semántica bien de�nida

Deben conseguir un nivel de abstracción que permita surealización en múltiples plataformas [MRM03]

Transformación [KWB03]

El proceso de transformar una especi�cación software en unprograma ejecutable será automático, por tanto el códigofuente de las aplicaciones se debería generar a partir de losmodelos en un proceso de transformación

Page 20: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

La iniciativa Model Driven Architecture (MDA)Los modelos de MDA [RFW+04] representaran todos losaspectos del programa �nal ejecutable, por tanto deben ser:

formales

precisos

semántica bien de�nida

Deben conseguir un nivel de abstracción que permita surealización en múltiples plataformas [MRM03]

Transformación [KWB03]

El proceso de transformar una especi�cación software en unprograma ejecutable será automático, por tanto el códigofuente de las aplicaciones se debería generar a partir de losmodelos en un proceso de transformación

Page 21: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Desarrollo ágil de softwareDe�ne nuevas metodologías para afrontar el desarrollo delsoftware de una forma más e�ciente, y por tanto menoscostosa [Lar03]

Los métodos ligeros asumen el cambio como algo inevitabley están centrados en el código, que será la principaldocumentación del proyecto.Los métodos ágiles suponen procesos y relaciones con elcliente y su mantenimiento, no código.

Modelos ejecutables [Amb04]

Si asumimos que un modelo ejecutable es código, se puedenaplicar los principios ágiles a la construcción de modelosejecutables

Page 22: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Desarrollo ágil de softwareDe�ne nuevas metodologías para afrontar el desarrollo delsoftware de una forma más e�ciente, y por tanto menoscostosa [Lar03]

Los métodos ligeros asumen el cambio como algo inevitabley están centrados en el código, que será la principaldocumentación del proyecto.Los métodos ágiles suponen procesos y relaciones con elcliente y su mantenimiento, no código.

Modelos ejecutables [Amb04]

Si asumimos que un modelo ejecutable es código, se puedenaplicar los principios ágiles a la construcción de modelosejecutables

Page 23: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

La propuesta MDA de OMG tiene dos importantes carenciasrelacionadas con el tratamiento de los modelos iniciales:

No se aclara cómo deben manejarse los modelosligados al negocio, lo que se conoce como modelosindependientes de la computación ó CIM.

No se describe cómo deben asociarse esos modelosCIM con los primeros modelos del software adesarrollar, es decir, con los PIM (modelosindependientes de plataforma).

Las metodologías de desarrollo ágil de software tiene comopunto fuerte la conexión de los aspectos asociados alnegocio con los tecnológicos. Sin embargo, no se ajusta a laespeci�cación MDA.

Page 24: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Hipótesis

La combinación de la especi�cación MDA con

la idea del desarrollo ágil resultaría muy

ventajosa de cara a un desarrollo de software

�exible y asociado a los procesos del negocio.

Page 25: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivo PrincipalDe�nir una metodología para el desarrollo de software quepermita la creación de software a partir del modelado deprocesos del negocio de acuerdo a la especi�cación MDA yel desarrollo de software ágil.

Centrado en las etapas iniciales del proceso de desarrollo,aquellas relacionadas con los modelos CIM y PIM de MDA.

Page 26: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivo PrincipalDe�nir una metodología para el desarrollo de software quepermita la creación de software a partir del modelado deprocesos del negocio de acuerdo a la especi�cación MDA yel desarrollo de software ágil.

Centrado en las etapas iniciales del proceso de desarrollo,aquellas relacionadas con los modelos CIM y PIM de MDA.

Page 27: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivos Parciales

Objetivo Parcial 1:Realizar un estudio de las áreas relacionadas con elobjetivo principal, es decir, MDA, desarrollo ágil desoftware, patrones de diseño y estándares.

Objetivo Parcial 2:De�nir una metodología para el desarrollo de softwareágil de acuerdo a la especi�cación MDA.

Objetivo Parcial 3:Crear un prototipo que implemente la metodología.

Objetivo Parcial 4:Desarrollar una aplicación usando la metodología yutilizando el prototipo.

Page 28: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivos Parciales

Objetivo Parcial 1:Realizar un estudio de las áreas relacionadas con elobjetivo principal, es decir, MDA, desarrollo ágil desoftware, patrones de diseño y estándares.

Objetivo Parcial 2:De�nir una metodología para el desarrollo de softwareágil de acuerdo a la especi�cación MDA.

Objetivo Parcial 3:Crear un prototipo que implemente la metodología.

Objetivo Parcial 4:Desarrollar una aplicación usando la metodología yutilizando el prototipo.

Page 29: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivos Parciales

Objetivo Parcial 1:Realizar un estudio de las áreas relacionadas con elobjetivo principal, es decir, MDA, desarrollo ágil desoftware, patrones de diseño y estándares.

Objetivo Parcial 2:De�nir una metodología para el desarrollo de softwareágil de acuerdo a la especi�cación MDA.

Objetivo Parcial 3:Crear un prototipo que implemente la metodología.

Objetivo Parcial 4:Desarrollar una aplicación usando la metodología yutilizando el prototipo.

Page 30: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

ResumenPlanteamiento delproblema

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlanteamiento del problema

Objetivos Parciales

Objetivo Parcial 1:Realizar un estudio de las áreas relacionadas con elobjetivo principal, es decir, MDA, desarrollo ágil desoftware, patrones de diseño y estándares.

Objetivo Parcial 2:De�nir una metodología para el desarrollo de softwareágil de acuerdo a la especi�cación MDA.

Objetivo Parcial 3:Crear un prototipo que implemente la metodología.

Objetivo Parcial 4:Desarrollar una aplicación usando la metodología yutilizando el prototipo.

Page 31: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 32: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 33: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDESoftware Ágil

Métodos ligeros de desarrollo

Desarrollado por Kent Beck [BEC99a]

Proceso de desarrollo de Software es impredecible

Debe ser FLEXIBLECaso de Estudio: Extreme Programming

MDA ágiles

Código = los modelos ejecutablesUn modelo ejecutable puede ser construido, ejecutado,probado y modi�cado en ciclos cortos e incrementales.

Page 34: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDESoftware Ágil

Métodos ligeros de desarrollo

Desarrollado por Kent Beck [BEC99a]

Proceso de desarrollo de Software es impredecible

Debe ser FLEXIBLECaso de Estudio: Extreme Programming

MDA ágiles

Código = los modelos ejecutablesUn modelo ejecutable puede ser construido, ejecutado,probado y modi�cado en ciclos cortos e incrementales.

Page 35: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPrincipios del Software Ágil (1/2)

Los métodos ligeros están centrados en el código

Solución de compromiso entre la ausencia de proceso yel exceso de proceso

Diferencias entre métodos pesados y ágiles según Fowler[FOW95]

Adaptación al Cambio:Los métodos ágiles son adaptables,los métodos pesados que plani�can el proceso de desarrollosólo funciona mientras las cosas no cambian.Aceptación a la naturaleza de las personas: Centrados en laspersonas no en el proceso.

Page 36: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPrincipios del Software Ágil (2/2)

Mani�esto para el Desarrollo de Software Ágil [BEC01]

Se pre�ere frente a

las personas y las relaciones los procesos y herramientasel software que funciona la documentaciónla colaboración del cliente los contratosresponder a los cambios seguir un plan

Procesos y relaciones con el cliente y sumantenimiento, no código.

Page 37: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMétodos del Software Ágil

Extreme Programming (XP)

Scrum

Adaptive Software Development (ASD)

Crystal Clear y otras metodologías de la familia Crystal

DSDM

Feature Driven Development

Lean software development

Page 38: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDELas 12 Prácticas de Extreme Programming (XP)

1 Plani�cación (historias, iteracciones y tareas)2 Versiones Cortas3 Metáfora4 Diseño Simple5 Pruebas continuas6 Factorización7 Programación en parejas8 Propiedad colectiva del código9 Integración continua10 Trabajo de 40 horas semanales11 Cliente en el sitio12 Estándares de codi�cación

Page 39: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 40: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Arquitectura formulada por el Object ManagementGroup (OMG)Proporciona un enfoque para:

Especi�car un sistema de manera independiente a laplataforma de soporteEspeci�car plataformasElegir una plataforma particular para el sistemaTransformar la especi�cación del sistema para unaplataforma en concreto.

Objetivos [PGBCLST05]

Separación arquitectónica de conceptos para:

Portabilidad

Interoperatibilidad

Reusabilidad

Page 41: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Arquitectura formulada por el Object ManagementGroup (OMG)Proporciona un enfoque para:

Especi�car un sistema de manera independiente a laplataforma de soporteEspeci�car plataformasElegir una plataforma particular para el sistemaTransformar la especi�cación del sistema para unaplataforma en concreto.

Objetivos [PGBCLST05]

Separación arquitectónica de conceptos para:

Portabilidad

Interoperatibilidad

Reusabilidad

Page 42: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Conceptos Básicos (1/4)

Sistema: Los conceptos de MDA serán expresados entérminos del sistema existente.Modelo: Descripción o especi�cación del sistemamediante un modelo.Dirigido por modelos: aporta los medios para usar losmodelos directamente para el entendimiento, diseño,construcción, despliegue, operación, mantenimiento ymodi�cación.Arquitectura del sistema es una especi�cación de laspartes y los conectores del sistema y las reglas para lainteracción de las partes usando conectores.Punto de vista es la técnica para la abstracciónutilizando un conjunto seleccionado de conceptos de laarquitectura y reglas estructurales

Page 43: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Conceptos Básicos (2/4)

Vista: representación del sistema desde la perspectivadel punto de vista elegido

Plataforma: hace referencia a los detalles tecnológicosy de ingeniería que no son relevantes de cara a lafuncionalidad esencial del sistema

Aplicación: funcionalidad que se está diseñando

Independencia de Plataforma

El modelo de computación independiente (CIM): noenseña la estructura de los sistemas, el principalusuario son los conocedores del dominio. Es un puenteentre los expertos del dominio y sus requisitos, y losexpertos en el diseño y construcción de artefactos quejuntos satisfacen los requisitos del dominio.

Page 44: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Conceptos Básicos (3/4)

El modelo de plataforma independiente (PIM): vistadel sistema centrada en la operación del mismo queesconde los detalles necesarios para una determinadaplataforma, puede ser utilizado con varias plataformasdiferentes de forma similar. Una técnica muy común esa través de una máquina virtual

Page 45: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Conceptos Básicos (4/4)

El modelo de plataforma especi�ca (PSM): combina lasespeci�caciones del PIM con los detalles que especi�cacómo utiliza el sistema un tipo particular de plataforma

Transformación del modelo: proceso de convertir unmodelo en otro del mismo sistema.

Servicios difundidos: servicios disponibles en unaamplia gama de plataformas.

Implementación: especi�cación, que suministra toda lainformación necesaria para la construcción del sistema.

Page 46: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Transformaciones de modelos (1/3)

Las transformaciones son un punto clave de MDA

Page 47: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Transformaciones de modelos (2/3)

Transformaciones de PIM a PSM:

Implementaciones del estándar QVT(Query/View/Transformation) de OMG:

Borland Together ArchitectSmartQVTMOMENT

VIsual Automated model TRAnsformation (VIATRA 2)ATLAS Transformation Language (ATL)Motor de Transformaciones de BOA 2Model-To-Model Transformation (M2M)

Page 48: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Transformaciones de modelos (3/3)

Transformaciones de PSM a Código:

Sistemas de Generación de Código:

Code mungingExpansor de código en línea (inline-code expander)Generación de código mezclado (mixed-codegeneration)

Motores de Plantillas

Page 49: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEModel Driven Architecture (MDA)

Implementaciones de MDAs

En el mercado existen múltiples herramientas queimplementan total o parcialmente los conceptos deMDA

Herramientas analizadas:

AndroMDA (version 3 y papers de la version 4)OpenArchitectureWare (oAW)Software Factories de MicrosoftBorland Together Architect Edition

Page 50: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 51: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPatrones de Diseño

Conceptos

Los Patrones de Diseño [GHJV95] son la base para labúsqueda de soluciones a problemas comunes en eldesarrollo de softwareLos patrones de diseño software describen solucionessimples y elegantes a una serie de problemas concretosque tienen lugar en el diseño orientado a objetosCuatro elementos esenciales:

1 El nombre del patrón permite describir un problema dediseño así como sus soluciones y consecuencias

2 El problema describe cuándo aplicar el patrón3 La solución describe los elementos que constituyen el

diseño, sus relaciones, responsabilidades ycolaboraciones

4 Las consecuencias son los resultados de aplicar elpatrón, así como sus ventajas e inconvenientes

Page 52: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPatrones de Diseño

Clasi�cación

Patrones de Creación: tienen un propósito de creaciónde objetos

Patrones Estructurales: tratan con la composición declases u objetos

Patrones de Comportamiento: caracterizan el modo enque las clases y objetos interactúan y se reparten laresponsabilidad

Page 53: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 54: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEUni�ed Modeling Language (UML)

El lenguaje uni�cado de modelado es unaespeci�cación del Object Management Group (OMG)

UML es un lenguaje estándar para escribir planos desoftware

UML es un lenguaje

para visualizarpara especi�carpara construirpara documentar

Page 55: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEUni�ed Modeling Language (UML)

Modelo conceptual de UML

Elementos principales:

los bloques básicos de construcción de UMLlas reglas que dictan cómo se pueden combinar estosbloques físicosmecanismos comunes que se aplican a través de UML

Page 56: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEUni�ed Modeling Language (UML)

Arquitectura

Vista de Casos de Uso

Vista de Diseño

Vista de Procesos

Vista de Implementacion

Vista de Despliegue

Page 57: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEUni�ed Modeling Language (UML)

UML ejecutable

Es un per�l de UML que de�ne una semántica deejecución para un subconjunto de UML [Mel04]

Toma un subconjunto del lenguaje UML sinconstrucciones semánticamente ambiguas y les añadela semántica de ejecución a través de Action Semantics

Se obtiene una propuesta computacionalmentecompleta

Page 58: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 59: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEObject Constraint Language (OCL)

OCL es un lenguaje para la descripción precisa derestricciones que se aplican a los modelos grá�cos UML

Desarrollado por IBM y adoptado en octubre de 2003por el grupo OMG como parte de UML 2.0

Características del Lenguaje

Lenguaje de expresión puro: garantiza que unaexpresión OCL no tendrá efectos colaterales, no puedecambiar nada en el modelo

Lenguaje de modelado no es un lenguaje deprogramación: no es posible escribir lógica de programao �ujo de control en OCL

Lenguaje Formal: todos los constructores tienen unsigni�cado formalmente de�nido, por ser OCL parte dela especi�cación UML

Page 60: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEObject Constraint Language (OCL)

Utilización de OCL

Como lenguaje de consulta

Dentro del modelo de clase para expresar invariantessobre clases y tipos

Para especi�car tipos invariantes para Estereotipos

Para describir pre y postcondiciones sobre Operacionesy Métodos

Para describir controles

Para especi�car objetivos para mensajes y acciones

Para especi�car restricciones sobre operaciones

Para especi�car reglas de derivación de atributos parauna expresión sobre el modelo UML

Page 61: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEObject Constraint Language (OCL)

Elementos de OCL

Expresiones, tipos y valores en OCL

Tipos de�nidos por el usuario

Tipos Collection

Page 62: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEObject Constraint Language (OCL)

Ejemplo de utilización OCL para invariantes

Tenemos un diagrama de clases con un clase Cliente deBanco

Restricción: La edad de cualquier cliente es siempremayor o igual a cero.

Restricción de Invariantecontext Cliente inv:

mEdad>=0

Page 63: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEObject Constraint Language (OCL)

Ejemplo de utilización OCL para pre y postcondiciones

Extracto del diagrama de clases con dos clases Clientey Cuentas de Banco

Restricción: Retirada de efectivo si el saldo de lacuenta es mayor que el importe

Restricción de pre y postcondicioncontext Cuenta :: retirar(importe : real) : realpre : importe>0 and getSaldo()>=importepost : result=importe

Page 64: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 65: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMeta-Object Facility (MOF)

El Meta-Object Facility es un estándar del ObjectManagement Group (OMG)

MOF se utiliza como Metamodelo para de�nir UML

Metamodelo

Es un modelo de un modelo.Un modelo es una abstracción y un metamodelo es unaabstracción de mayor nivel, cuyo propósito es de�nir laspropiedades del modelo en sí mismo.

Page 66: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMeta-Object Facility (MOF)

El Meta-Object Facility es un estándar del ObjectManagement Group (OMG)

MOF se utiliza como Metamodelo para de�nir UML

Metamodelo

Es un modelo de un modelo.Un modelo es una abstracción y un metamodelo es unaabstracción de mayor nivel, cuyo propósito es de�nir laspropiedades del modelo en sí mismo.

Page 67: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMeta-Object Facility (MOF)

Metamodelo de UML

Page 68: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMeta-Object Facility (MOF)

Metanivel MOF en el ámbito de los MDA

Metanivel Descripción

M3 MOFM2 MetamodelosM1 ModelosM0 Objetos y Datos

Ejemplos:

MOF: Clase MOF, Atributo MOF,. . .

Metamodelos: Clase UML, Atributo UML,. . .

Modelos: Clase Cuenta en un banco, clase Cliente,. . .

Objetos y Datos: Cliente Cris Pelayo, Cuenta111118,. . .

Page 69: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEMeta-Object Facility (MOF)

Implementaciones de MOF

Metadata Repository (MDR) de la plataforma deherramientas de desarrollo NetBeans

Eclipse Modeling Framework (EMF) es un frameworkde modelado y una utilidad de generación de código

Page 70: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 71: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEXML Metadata Interchange (XMI)

XMI es un estándar del Object Management Group(OMG) para el intercambio de información vía XML

Se utiliza como formato de intercambio de modelosUML, es decir, se puede utilizar para la serialización demetamodelos.

Desde la perspectiva de modelado de OMG, los datosse dividieron:

Modelos abstractos: representan la informaciónsemántica, son instancias de lenguaje de modeladobasado en MOFModelos concretos: representan diagramas visuales,para estos se utiliza el XMI

Page 72: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEXML Metadata Interchange (XMI)

Facilita el intercambio de los metadatos entre lasherramientas de modelado UML y los repositorios demetadatos MOF

XMI hace la correspondencia (mapping) de MOF aXML para permitir el intercambio entre herramientasde modelado

XMI integra estándares

Page 73: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEXML Metadata Interchange (XMI)

DTD, XML Schemas y Documentos XML

Producción de DTD desde un modelo de objetos.Producción de XML Schemas desde un modelo deobjetos.Producción de documentos XML desde un modelo deobjetos.

Page 74: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 75: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDESistemas de Persistencia

De�niciones de Persistencia

Es el tiempo en el que los datos existen y sonutilizables [AMP86] , por tanto es el mantenimiento delos valores de los datos durante todo su tiempo de vida.

Principio secundario del modelo de objetos [Boo94] :cualidad de un objeto de mantener su identidad yrelaciones con otros objetos con independencia delsistema o proceso que lo creó

Page 76: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDESistemas de Persistencia

Desarrollo de Aplicaciones Persistentes

El modelo de datos dominante es el modelo relacionalrepresentado por el lenguaje SQLUtilización de SQL desde un lenguaje de programacióncómo Java

de forma directa: JDBC o SQLJde forma indirecta: sistemas de traducciónobjeto-relacional como JDO o Hibernate o unframework de persistencia especí�co (Enterprise JavaBeans o Spring)

Page 77: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 78: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEGeneración automática de Interfaces

Generación de interfaces de usuario a partir de modelosconceptuales.

Dos conceptos fundamentales en la creación deinterfaces: la usabilidad y la accesibilidad

El Modelo Vista Controlador (MVC)

Page 79: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEGeneración automática de Interfaces

El Modelo Vista Controlador (MVC)

Patrón de arquitectura de software inventado porTrygve Reenskaug e introducido en el entorno dedesarrollo del SmallTalk 80

Tres elementos:

Modelo: representación del dominio de la informaciónsobre la cual funciona la aplicación (Capa de dominioo negocio)Vista: presenta el modelo en un formato adecuadopara interactuar, es el mecanismo encargado derealizar la correspondencia entre los datos provenientesdel modelo y la interfaz.Controlador: realiza el control del �ujo de navegaciónde la aplicación.

Page 80: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEGeneración automática de Interfaces

Flujo de la Información en MVC

El usuario interactúa con la interfaz de usuario dealguna forma, por ejemplo pulsando un botón.

El controlador gestiona el evento que llega.

El controlador accede al modelo, modi�cándolo deforma adecuada a la acción solicitada por el usuario.

El controlador delega a los objetos de la vista la tareade desplegar la interfaz de usuario. La vista obtiene susdatos del modelo para generar la interfaz apropiadapara el usuario donde se re�eja los cambios en elmodelo.

La interfaz de usuario espera nuevas interacciones delusuario, comenzando el ciclo nuevamente.

Page 81: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEGeneración automática de Interfaces

Implementaciones del MVC orientadas a la Web

JavaServer Faces

Apache Struts

XForms

Page 82: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del ArteDesarrollo de Software ágilModel Driven Architecture (MDA)Patrones de DiseñoUni�ed Modeling Language (UML)Object Constraint Language (OCL)Meta-Object Facility (MOF)XML Metadata Interchange (XMI)Sistemas de PersistenciaGeneración automática de InterfacesPlataformas: J2EE y .NET

Page 83: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

La Plataforma J2EE

Conjunto de especi�caciones diseñadas por Sun quepermiten la creación de aplicaciones empresariales

J2EE = JVM + Lenguaje Java + API Java + Utilidades

Page 84: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

Características de la JVM (Java Virtual Machine)

Pila de ejecución y un repertorio de instrucciones quemanipulan dicha pila.Puede dar soporte a varios hilos (threads) de ejecuciónconcurrente.Compilación JITVeri�cación estática de bytescodesGestión de memoria dinámicaDependencia del lenguaje Java

Page 85: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

El lenguaje Java

Este lenguaje fue desarrollado por J. Gosling en 1993

Características:

SencilloOrientado a Objetos PuroInterpretado y compiladoDistribuido y con multihilosIndependiente de la plataforma y portableRobusto y seguro

Page 86: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

La Plataforma .NET

Desarrollada por Microsoft.

Intenta simpli�car el desarrollo de aplicaciones en unentorno altamente distribuido como es Internet.

Page 87: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

Características de la CLR (Common Language Runtime)

Utilización de una pila de ejecución

Compilación JIT

Generación de código en tiempo de instalación

Veri�cación estática de tipos

Gestión dinámica de memoria

Independiente del lenguaje

Sistema de Componentes

Page 88: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

Los Lenguajes .NET

Lenguaje Visual Basic

Lenguaje C#

Lenguaje C++ administrado

Lenguaje Jscript .NET

Lenguaje J#

Page 89: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Software ÁgilMDAPatronesUMLOCLMOFXMIS.PersistenciaGeneración CódigoPlataformas

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEPlataformas: J2EE y .NET

Otros elementos de la Plataforma .NET

CTS: Sistema Común de TiposTipos de valorTipos de referencia

Biblioteca de clases de .Net

Page 90: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 91: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 92: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEFundamentación

Capacidad de los MDAs con metodologías ágiles frentea los métodos tradicionales.

Analizar el impacto de los MDAs en el proceso dedesarrollo de software.

Disciplina de Ingeniería

Algunos autores consideran que el desarrollo deherramientas MDA es un requisito indispensable paraconvertir el proceso de crear software en una verdaderadisciplina de ingeniería. [Fra03] [KWB03] [RFW+04]

Page 93: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEFundamentación

Capacidad de los MDAs con metodologías ágiles frentea los métodos tradicionales.

Analizar el impacto de los MDAs en el proceso dedesarrollo de software.

Disciplina de Ingeniería

Algunos autores consideran que el desarrollo deherramientas MDA es un requisito indispensable paraconvertir el proceso de crear software en una verdaderadisciplina de ingeniería. [Fra03] [KWB03] [RFW+04]

Page 94: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 95: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (1/9)

Etapas básicas

Análisis de requisitos

Modelo de análisis

Modelo de diseño

Escritura del códigofuente

Despliegue del sistema

Page 96: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (2/9)

Etapas básicas del proceso de desarrollo de Software,propuesto inicialmente por Royce [Roy70]

Modelo de ciclo de vida en cascada (waterfall model)

Modelo en espiral de Boehm [Boe88]

Evolucionario [MZ96]

Modelo incremental [Som01]

Uni�ed Proccess (UP), la implementación másadoptada de este método es el Racional Uni�edProccess (RUP) [Kru00]

Page 97: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (3/9)

La iteración como respuesta al cambio

Todos estos modelosadoptan la iteración cómoherramienta principal paraabordar los cambios en elsoftware

Se acepta que los cambiosen los requisitos delsoftware son inevitables[Bec99a]

El proceso de desarrollodebe estar preparado paraabsorberlos

Page 98: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (4/9)

Problemas con la Iteración

Los métodos con ciclo de vida iterativo producen grancantidad de artefactos en forma básicamente dedocumentos de texto y diagramas, pero estos estándesconectados entre sí y del código fuente querepresentan [KWB03]

Dos alternativas opuestas:

Retroceder a la fase de desarrollo apropiada y

acometer el cambio, provoca un �exceso deburocracia� [Fow05]

Realizar los cambios únicamente en el código. Lastareas de análisis, modelado y documentaciónprevias a la codi�cación dejan de considerarseimprescindibles

Page 99: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (5/9)

Métodos ágiles

Acortan el plazo de iteración y apuestan por undesarrollo evolutivo

Utilizan una plani�cación adaptativa

Apuestan por la entrega incremental

Incorporan prácticas de desarrollo que buscan permitiruna respuesta rápida y �exible a los cambios

Uni�ed Proccess (UP)

Considerarlo pesado o ágil dependerá de su implantaciónconcreta. Martin Fowler en [Fow05] señala que en laindustria pueden encontrarse utilizaciones del UP que vandesde rígidos modelos en cascada a instanciasperfectamente ágiles

Page 100: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (5/9)

Métodos ágiles

Acortan el plazo de iteración y apuestan por undesarrollo evolutivo

Utilizan una plani�cación adaptativa

Apuestan por la entrega incremental

Incorporan prácticas de desarrollo que buscan permitiruna respuesta rápida y �exible a los cambios

Uni�ed Proccess (UP)

Considerarlo pesado o ágil dependerá de su implantaciónconcreta. Martin Fowler en [Fow05] señala que en laindustria pueden encontrarse utilizaciones del UP que vandesde rígidos modelos en cascada a instanciasperfectamente ágiles

Page 101: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (6/9)

Problemas de los Métodos ágilesFalta de datos empíricos que prueben su efectividadNo escalabilidad a la hora de su aplicación en proyectosgrandes [TFR02]

Excesiva dependencia del conocimiento tácito de losmiembros del equipo de desarrollo debido a la ausenciade una documentación formal [Coc01]Alto acoplamiento entre las diferentes prácticas de XPy la falta de documentación de sus interrelaciones[Van05]

Métodos ágiles = Métodos anárquicos

Esta consideración es errónea dado que en el �Mani�esto Ágil�(Agile Manifesto) [Bec01], en el principio número 10 se señalaque la excelencia técnica y los buenos diseños aumentan laagilidad

Page 102: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (6/9)

Problemas de los Métodos ágilesFalta de datos empíricos que prueben su efectividadNo escalabilidad a la hora de su aplicación en proyectosgrandes [TFR02]

Excesiva dependencia del conocimiento tácito de losmiembros del equipo de desarrollo debido a la ausenciade una documentación formal [Coc01]Alto acoplamiento entre las diferentes prácticas de XPy la falta de documentación de sus interrelaciones[Van05]

Métodos ágiles = Métodos anárquicos

Esta consideración es errónea dado que en el �Mani�esto Ágil�(Agile Manifesto) [Bec01], en el principio número 10 se señalaque la excelencia técnica y los buenos diseños aumentan laagilidad

Page 103: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (7/9)

Modelado y Codi�cación

Un error en muchos enfoques metodológicos dedesarrollo software ha sido obviar la importancia de laactividad de codi�cación.

Royce equiparó la codi�cación a la fase de construcciónde otras ingenierías [Roy70]

Fowler [Fow05] señala que en otras ingenierías:El diseño es más difícil de predecir y requiere la gentecon mayor formación y creatividadLa actividad de construcción es más fácil de predecir,requiere gente con menos formación y es, en general,mucho más costosa¾Puede obtenerse un diseño que haga de lacodi�cación una actividad de construcción predecible?Y si esto es posible ¾será rentable en términos decostes?

Page 104: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (8/9)

Modelado y Codi�caciónEl problema fundamental es la gran distancia existenteentre:

Los modelos software o descripciones del softwarerealizadas a un elevado nivel de abstracción.El código fuente que comprende la aplicación y querealiza los modelos desarrollados sobre una plataformatecnológica concreta.

Enfoque pragmático: Modelado ágil [AJ02]

El modelado es importante, como herramienta decomunicación, NO de documentaciónNo se construyen modelos detallados del softwareLos modelos sólo especi�can las partes más complejas de laaplicación, los problemas sencillos de diseño se resuelvendirectamente en la fase de codi�cación

Page 105: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (8/9)

Modelado y Codi�caciónEl problema fundamental es la gran distancia existenteentre:

Los modelos software o descripciones del softwarerealizadas a un elevado nivel de abstracción.El código fuente que comprende la aplicación y querealiza los modelos desarrollados sobre una plataformatecnológica concreta.

Enfoque pragmático: Modelado ágil [AJ02]

El modelado es importante, como herramienta decomunicación, NO de documentaciónNo se construyen modelos detallados del softwareLos modelos sólo especi�can las partes más complejas de laaplicación, los problemas sencillos de diseño se resuelvendirectamente en la fase de codi�cación

Page 106: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo Tradicional (9/9)

Problemas en los Procesos de Desarrollo Actuales

La desconexión entre los artefactos de modelado, yentre éstos y el código fuente del programa, hacedesaconsejable la realización de un modelado formal,detallado e integral.

Si no se realiza un modelado formal se plantea unproblema importante de mantenimiento.Otros problemas comunes a los métodos de desarrolloiterativos son:

ProductividadCalidadTrazabilidad de requisitosReutilización

Page 107: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 108: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo utilizando MDA (1/4)

El Enfoque MDA de OMG

Importantes cambios en cómo se acometen las fases enel proceso de desarrolloCambios sustanciales en las fases del análisis y deldiseño debido a la doble transformación automática:

entre un PIM y un PSMentre un PSM y el código fuente de la aplicación

PIM se corresponde con la fase de diseño del modelotradicional

La transformación es el conocimiento experto sobre laplataforma tecnológica

Page 109: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo utilizando MDA (2/4)

El Enfoque MDA de OMG

Se favorece la reutilización de:

Mismos modelos con diferentes de�niciones detransformaciónMismas de�niciones de transformación con diferentesmodelos

La doble transformación automática (PIM-PSM yPSM-código fuente) implica que los modelos seperciban como ejecutables:

Permite validar los modelos realizados

Permite determinar cuándo se ha terminado de

modelar: cuando el PIM veri�que todos los casos de

pruebas diseñados [RFW+04]

Page 110: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo utilizando MDA (3/4)

Especi�cación e implementación con MDA

Separación del análisis ydel diseño, realizados porgrupos de especialistasdiferentesLa herramienta MDAacepta como entradas:

Modelo de diseño(PIM)De�nición de latransformación

A partir de las entradas segenera el PSM

El PSM será transformadoa código fuente

Page 111: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEProceso de Desarrollo utilizando MDA (4/4)

Ciclo de Vida con MDA

Iteración para afrontar elcambio en los requisitos,pero son más efectivas

Cambio en requisitostecnológicos ⇒ ajusteen las transformacionesque son reutilizablespara otras aplicacionesCambio en requisitosde negocio ⇒modi�caciones en elmodelo de análisis.

Como la transformación PIM - Código fuente esautomática se pueden validar los modelos de análisisejecutando los PIM

Page 112: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 113: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (1/11)

Los métodos ágiles de desarrollo constituyen unarespuesta a la realidad cambianteEl proceso de desarrollo propuesto en TALISMAN secaracteriza por:

Generación de código automática a partir deespeci�caciones en XMLSer ágil en base a XP basada en la simplicidad,comunicación y retroalimentaciónSer dirigido por modelos especi�cados en XMLSer un proceso AMDD (Agile Model DrivenDevelopment)

Page 114: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (2/11)

Proceso de Desarrollo Ágil con TALISMAN

Page 115: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (3/11)

Análisis

Basado en Casos de Uso

Escenarios que especi�canlos Casos de Uso

Especi�cación completadel proceso (story board)

de cada Escenario

Interfaz Grá�ca ligada acada Escenario

Page 116: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (4/11)

Diseño

Diccionario de Clases

Comportamiento internode los métodos de cadaclase

Especi�cación de laarquitectura software

Especi�cación de laarquitectura hardware

Otros tipos de Modelos

Page 117: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (5/11)

Modelo especi�cado en XML

Especi�cación de requisitos en XML

Aporta contenido semántico a UML a través deextensiones

Especi�cación del comportamiento de los métodos(algorítmica de los métodos)

Información de los per�les

Implementación de Patrones de Diseño

Page 118: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (6/11)

Arquitectura de TALISMAN

Utiliza el Modelo especi�cado en XML para generarcódigoRealiza la validación semánticaConstruye el sistema de persistencia, los interfaces deusuario con ayuda de herramientas generadoras deinterfaces y genera el código por medio detransformaciones

Page 119: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (7/11)

Arquitectura de TALISMAN

La arquitectura tiene varios modelos

CIMPIMPSM

Guías de transformación entre modelos:

PIM a PIMPIM a PSMPSM a PSM

Page 120: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (8/11)

Modelo CIM de la Arquitectura de TALISMAN

Centrado en el dominio del negocio

Especi�cado en XML

Page 121: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (9/11)

Modelo PIM de la Arquitectura de TALISMAN

Especi�cación del funcionamiento propias del sistemajunto a la especi�cación para la implementación en unmedio informático

Especi�cado en XMLN-Capas

Diccionario de ClasesModelo de interfaz de usuarioEscenarios que se utilizan para de�nir la lógica denegocio

Page 122: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (10/11)

Modelo PSM de la Arquitectura de TALISMAN

Se combina el punto de vista independiente de laplataforma con los detalles y características propias deluso de una plataforma de desarrolloN-Capas

Base de Datos a través de especi�cación XMLInterfaces de usuario a través de especi�cación XMLModelo de negocio a través de especi�cación XML

Page 123: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEMetolodología propuesta (11/11)

Guías de transformación entre modelos de TALISMAN

CIM a PIM: los aspectos independientes decomputación se transforman en una especi�caciónformal de la estructura y forma del sistema

PIM a PIM: con objeto de re�namiento

PIM a PSM: un PIM re�nado se transforma en unmodelo dependiente de la infraestructura �nal deejecución

PSM a PSM: con objeto de re�namiento

PSM a Código: un PSM re�nado se transforma encódigo fuente en la plataforma de destino

Page 124: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 125: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (1/16)

Objetivos

Construir un prototipo utilizando la MetodologíaTALISMAN

Orientado al mundo Web

Plataforma .NET

Generación automática de código ASP.NET y C#

Se crean los modelos en XML y a partir de ellos serealiza el proceso de desarrollo, transformación yconstrucción del sistema hasta obtener el código deforma automática

Page 126: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (2/16)

Características de las aplicaciones Web

En el desarrollo de aplicaciones Web se mezclan:Métodos tradicionales de desarrolloPropuestas de ingeniería WebMétodos para hipermedia

La agilidad en los desarrollos Web es fundamentalPronta disponibilidad del software en la redCiclos de desarrollo generalmente más cortosRequisitos de usuario desconocidosDesarrollos aparentemente muy sencillosNecesidad de entrega de versiones previas

Page 127: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (3/16)

Adaptación de TALISMAN a los Sistemas Web:

La adaptación de TALISMAN se realiza de�niendonuevos artefactos adaptados a la Ingeniería WebCon los Diagramas y la información del Análisis y delDiseño se genera la documentación en XML coninformación de:

Clases con la información del Diagrama de ClasesFragmentos con la información semántica de las clasesdel Diagrama de FragmentosNavegación con la información sobre la navegación delDiagrama de NavegaciónUsuarios con sus roles que de�nidos en el Diagrama deUsuariosServicios Web de�nidos en los Diagrama de serviciosWeb y Servicios Web ClienteModelo de la lógica de Negocio

Page 128: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (4/16)

Clases más representativas del Prototipo

Model

Resources

Generator

GeneratorASPNET2

Utils

Associations

Class

MultipleAssociation

ClassTest

Compiles

DataAccessBase

Links

Page 129: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (4/16)

Clase Generator

Page 130: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (5/16)

Diagrama de Estados de la Clase Generator

Page 131: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (6/16)

Con�guración del Prototipo

Page 132: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (7/16)

Construcción del PIM

El PIM de TALISMAN con la información de laaplicación se almacena en un archivo �pim.xml�

Se permite selecionar los modelos de entrada que seránutilizados

Page 133: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (8/16)

Construcción del PSM

A partir del PIM se genera el PSM

A partir del PSM se genera el código fuente de laaplicación

Proceso completamente automático

Page 134: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (9/16)

Generación de Código fuente

Se genera un proyecto de Visual Studio 2005denominado �solution.sln�

La solución consta de cinco proyectos

Page 135: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (10/16)

Interfaz de Usuario (WebUI)

Proyecto principal

Páginas WebASPX generadas

Web.con�g con la con�guración de la aplicación

Servicios Web que se ofrecen y que se consumen

Archivos generadores de menús.

Page 136: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (11/16)

Lógica de Negocio (Business)

Contiene las clase para las tablas que se generarán enla base de datos

Contiene los archivos que utiliza NHibernate paraindependizar el acceso a datos de la lógica de negocio

Lógica de Negocio (BusinessFacade)

Puente entre la capa de negocio y la capa de acceso adatos

Page 137: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (12/16)

Persistencia (DataAccess)

Independiza el acceso a la base de datos del resto de laaplicación

Contiene métodos para guardar, obtener o borrarelementos de la base de datos

Page 138: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (13/16)

Pruebas (TestUnit)

Pruebas unitarias generadas automáticamente

Page 139: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (14/16)

Tablas de la base de datos

Script que genera la estructura de la base de datos

Para Sql Server 2005 se generará un archivo llamadoDataBase.sql

Page 140: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (15/16)

Administración de usuarios y per�les de usuario

Se realiza la gestión de usuarios a través de lainformación generada en el archivo web.con�g

Se especi�can roles y permisos de acceso a toda oparte de la aplicación

Fragmento de web.con�g<location path=�Reserva.aspx�><system.web><authorization><allow roles=�Admin� /><deny users=�?� /></authorization></system.web></location>

Page 141: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEConstrucción del prototipo (16/16)

Registros(logs)Registro de proyecto generado con todas lasactividades de TALISMAN dividido en secciones:

Beginning: creación directorios y copia de archivoscomunes a todos los proyectosPIM to PIMPIM to PSMPSM to PSMPSM to Code

Registro de la ejecución del proyecto generadoAcciones que realiza el usuario de la aplicaciónMensajes de NHibernate generados durante laejecución

Page 142: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDAFundamentaciónProceso de Desarrollo TradicionalProceso de Desarrollo con MDATALISMAN: Metodología ágil con MDAPrototipo asociado a TALISMANEjemplo: �Casas Rurales en Asturias�

Page 143: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (1/11)

Objetivo y Características generales

Objetivo: Comprobar la validez del prototipo creadosiguiendo TALISMAN

Características:

Plataforma ASP.NET 2.0Sistema de gestión de bases de datos Sql Server 2005

Casas Rurales en Asturias

Aplicación Web con información de casas rurales dediferentes zonas en Asturias y de las actividades que en ellasse pueden realizar

Page 144: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (1/11)

Objetivo y Características generales

Objetivo: Comprobar la validez del prototipo creadosiguiendo TALISMAN

Características:

Plataforma ASP.NET 2.0Sistema de gestión de bases de datos Sql Server 2005

Casas Rurales en Asturias

Aplicación Web con información de casas rurales dediferentes zonas en Asturias y de las actividades que en ellasse pueden realizar

Page 145: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (2/11)

Análisis y Diseño

Especi�cación en XML de los Requisitos

Diagramas:

Diagrama de ClasesDiagramas de Interfaz de Usuario a través de:

Diagrama de FragmentosDiagrama de Navegación

Diseño de la Lógica de Negocio a través de:

Diagrama de clases de servicios WebDiagrama de servicios Web ClienteDiagrama de usuarios

Page 146: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (3/11)

Análisis y Diseño: Diagrama de Clases

Page 147: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (4/11)

Análisis y Diseño: Diagrama de Fragmentos

Page 148: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (5/11)

Análisis y Diseño: Diagrama de Navegación

Page 149: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (6/11)

Análisis y Diseño: Lógica de Negocio

Page 150: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (7/11)

Modelo especi�cado en XML

A partir de los Diagramas del Análisis y Diseño serealiza la documentación en formato XML

ClasesFragmentosNavegaciónUsuariosServicios WebServicios Web Cliente

Un único archivo que constituye la entrada aTALISMAN

Page 151: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (8/11)

TALISMAN: Modelo PIM

Almacenado en el archivo �pim.xml�

Esqueleto del PIM<?xml version=�1.0� encoding=�utf-8�?><PIM><classes><fragments><navigation><users><webservices><webservicesClients>

</PIM>

Page 152: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (9/11)

TALISMAN: Transformaciones mediante archivos XSLT yCSS

Especi�cación de transformaciones con archivos XSLT(eXtensible Stylesheet Language Transformations)

Actividad.xsltActPropia.xsltCasa.xsltDefault.xsltError.xsltReserva.xsltZona.xslt

Estilo de la aplicación Web a través de archivos CSS deHojas de Estilo (StyleSheet.css).

Page 153: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (10/11)

TALISMAN: Recursos adicionales

Para crear la interfaz de usuario se proporcionanimágenes

Page 154: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

FundamentaciónProceso TradicionalProceso con MDATALISMANPrototipoEjemplo

Conclusiones

Referencias

MDEEjemplo de utilización del Prototipo (11/11)

Salida GeneradaEl prototipo genera todos los archivos necesarios parala ejecución de la aplicación sobre la plataforma ASP.NET.Se generan más de 60 archivos

Page 155: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 156: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEConclusiones

Aportaciones en el ámbito de MDA

De�nición de un entorno de desarrollo basado en MDA

De�nición de modelos CIM a partir de los procesos delnegocio

Directrices para la creación de modelos PIM a partir demodelos CIM

Una metodología que mejora la conexión entre lasreglas de negocio y las tecnologías MDA

Page 157: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEConclusiones

Aportaciones en el ámbito del software ágil

Una metodología para el desarrollo de software ágil quepueda adaptarse a las necesidades y característicasparticulares de cada empresa

Una metodología de desarrollo de software quecombina las ventajas del MDA y el desarrollo ágil

Page 158: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEContenidos

1 Introducción

2 Base teórica y Estado del Arte

3 Desarrollo ágil con MDA

4 Conclusiones

5 Referencias

Page 159: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEReferencias

[Amb04] S.W. Ambler Agile Model Driven Development withUML 2. Cambridge University Press, 3rd edition, 2004.

[BBC+06] L. Balmelli, D. Brown, M. Cantor y M. MottModel-driven systems development. IBM Systems Journal,volumen 45 número 3, páginas 569 a 585. 2006.

[Bec01] K. Beck. Manifesto for agile softwaredevelopment.Technical Report, 2001.http://www.agilemanifesto.org/

[Fra03] David S. Frankel. Model Driven Architecture. ApplyingMDA to Enterprise Computing. OMG Press, 2003

[KWB03] A. Kleppe, J. Warmer y W. Bast MDA Explained. TheModel Driven Architecture: Practice and Promise.Addison-Wesley. 2003.

[Mel04] S. J. Mellor Agile MDA.The MDA Journal, páginas 144a 160, 2004

[MM03] J. Miller y J. Mukerji MDA Guide Version 1.0.1. ObjectManagement Group, 2003

Page 160: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEReferencias

[MSU+04] S.J. Mellor, K. Scott, A. Uhl, y D. Weise. MDADistilled. Principles of Model-Driven Architecture. ObjectTechnology. Addison-Wesley, 2004.

[PCJ06] B. C. Pelayo García-Bustelo, J. M. Cueva Lovelle, yA.A. Juan Fuente. C3NET: Smart Environment For .NET CodeGeneration Using MDA. WORLDCOMP'06 Proceedings: The2006 World Congress in Computer Science, ComputerEngineering, and Applied Computing. Las Vegas, USA (2006).

[PC06a] B. C. Pelayo García-Bustelo y J. M. Cueva Lovelle.Arquitecturas dirigidas por modelos (MDA). El frameworkC3NET. II Congreso Internacional de Ingeniería de Computacióny Sistemas (IICIIS). Trujillo, Perú (2006).

[PC06b] B. C. Pelayo García-Bustelo y J. M. Cueva Lovelle.Usabilidad, accesibilidad y métricas de sitios Web. II CongresoInternacional de Ingeniería de Computación y Sistemas (IICIIS).Trujillo, Perú (2006).

Page 161: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEReferencias

[PCS+05] B.C. Pelayo García-Bustelo, J.M. Cueva Lovelle, M.C.

Suárez Torrente, y A.A. Juan Fuente. C3NET: Framework para

la construcción de MDA en la Plataforma .NET. III Simposio

Internacional de Sistemas de Información en la Sociedad del

Conocimiento (SISOF 2005). Instituto Tecnológico de las

Américas, República Dominicana (2005)

[PC05] B. C. Pelayo García-Bustelo y J. M. Cueva Lovelle.

Evolución de las directrices de accesibilidad del W3C. III

Simposio Internacional de Sistemas de Información en la

Sociedad del Conocimiento (SISOF 2005). Instituto Tecnológico

de las Américas, República Dominicana (2005)

[RFW+04] C. Raistrick, P. Francis, J. Wright, C. Carter y I.Wilkie. Model Driven Architecture with Executable UML.Cambridge University Press, 2004.

Page 162: MDE: Ingeniería dirigida por modelos. Otra forma de ...di002.edv.uniovi.es/~cueva/asignaturas/masters/2008/MDE_udistrital.pdfResumen Planteamiento del roblemap Estado del Arte Desarrollo

Introducción

Estado del Arte

Desarrollo ágil conMDA

Conclusiones

Referencias

MDEReferencias

[Sch06] Douglas C. Schmidt. Model - Driven Engineering. IEEEComputer Society, páginas 25 a 31. Febrero 2006

[SFP04] Richard Soley, David S. Frankel, y John Parodi. TheMDA Journal: Model Driven Architecture Straight From TheMasters. Meghan Ki�er Pr, Noviembre 2004