(Model-Driven Architecture) Liliana Favre UNCPBA 2006 Model-Driven Architecture (MDA) Es una evolucin de estndares definidos por OMG (Object Management Group) para mejorar procesos de desarrollo de sistemas de software dirigidos por modelos. Ideas centrales en MDA Separar la especificacin de la funcionalidad del sistema de su implementacin sobre una plataforma en una tecnologa especfica. Controlar la evolucin desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatizacin. Plataforma en MDA Plataforma Es un conjunto de subsistemas y tecnologas que proveen un conjunto coherente de funcionalidad que puede ser usada en cualquier aplicacin sin tener en cuenta detalles de cmo la funcionalidad es implementada Modelos y MDA Distingue diferentes tipos de modelos:
CIM (Computation Independent Model)
PIM (Platform Independent Model)
PSM (Platform Specific Model)
ISM (Implementation Specific Model)
Modelos y MDA Computation Independent Model (CIM) Es una descripcin de la lgica del negocio desde una perspectiva independiente de la computacin. Es un modelo del dominio
Platform Independent Model Es una descripcin de la funcionalidad del sistema en forma independiente de las caractersticas de plataformas de implementacin especficas.
Modelos y MDA Platform Specific Model (PSM) Es una descripcin del sistema en trminos de una plataforma especfica
Implementation Specific Model Es una descripcin (especificacin) del sistema a nivel de cdigo MDD (Model-Driven Development) PIM PIM PSM J2EE PSM REL PSM dotNET CODE CODE CODE Transformaciones y MDA La evolucin desde modelos CIM a ISM es alcanzada por: Refinamientos que permiten construir una especificacin ms especfica a partir de una ms abstracta (por ejemplo, PIM PSM, PSM ISM ) y Refactorings que permiten transformar modelos en un determinado nivel sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no funcionales (por ejemplo PIM PIM, PSM PSM, ISM ISM) Metamodelos y MDA En MDA es crucial Mantener trazas y relaciones entre diferentes modelos Lograr interoperabilidad en diferentes niveles
Metamodelos Modelos, Transformaciones y Metamodelos Estndares de OMG
UML/OCL Modelos
MOF Metamodelos (Meta Object Facility)
QVT Transformaciones (Query-View-Transformation) Arquitectura de metamodelado Arquitectura de metamodelado de 4 niveles: Meta-metamodelo (MOF) MOF Metamodelo (Metamodelo UML, SPEM) SPEM Modelo (UML, RUP) RUP Objetos es-una-instancia
MOF (Meta Object Facility) MOF captura la diversidad de estndares de modelamiento para integrar diferentes tipos de modelos y metadatos e intercambiarlos entre diferentes herramientas.
MOF (Meta Object Facility) Se describen mediante: Modelos estticos UML Clases Asociaciones binarias Tipos de datos Package
CASE-Tiempo Real Rapsody, Rational Rose Real Time, RapidRMA
CASE-MDA OptimalJ, AndroMDA, Ameos, Together Architect, Codagen, ArcStyler, MDE Studio, Objecteering Herramientas CASE-MDA Unas 120 herramientas CASE se basan en UML y slo un 10% soporta parcialmente MDA. Limitaciones en procesos de: ingeniera directa (forward engineering) ingeniera reversa (reverse engineering) transformaciones (refinamientos, refactoring) anlisis de consistencia No proveen asistencia en reenginera de sistemas legacy
MDA y Reingeniera Curso: Arquitectura de software dirigida por modelos Los contenidos del curso se centran en: Conceptos de modelado de software bajo el enfoque propuesto por el estndar del Object Management Group (OMG)denominado MDA (Model Driven Architecture). Anlisis de tcnicas bsicas para el desarrollo de herramientas CASE basadas en MDA.
CONTENIDO PARTE II MDA (Model-Driven Architecture) CIM, PIM, PSM, ISM Transformaciones de modelos y metamodelado Refinamiento y refactoring Evolucin de software y MDA Herramientas CASE basadas en MDA Tcnicas para el desarrollo de CASE basadas en UML/MDA Ingeniera directa, ingeniera reversa Refactoring, patrones de reinmgeniera wrapping,