Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006
Model-Driven Architecture (MDA) Es una evolución de estándares definidos por OMG (Object Management Group) para mejorar procesos de desarrollo de sistemas de software dirigidos por modelos. Ideas centrales en MDA Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica. Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización.
Plataforma en MDA Plataforma Es un conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidad que puede ser usada en cualquier aplicación sin tener en cuenta detalles de cómo 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 descripción de la lógica del negocio desde una perspectiva independiente de la computación. Es un modelo del dominio Platform Independent Model Es una descripción de la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas.
Modelos y MDA Platform Specific Model (PSM) Es una descripción del sistema en términos de una plataforma específica Implementation Specific Model Es una descripción (especificación) del sistema a nivel de código
MDD (Model-Driven Development) PIM PIM PSM J2EE PSM dotNET PSM REL CODE CODE CODE
Transformaciones y MDA La evolución desde modelos CIM a ISM es alcanzada por: Refinamientos que permiten construir una especificación más específica a partir de una más 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 Estándares 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 estándares de modelamiento para integrar diferentes tipos de modelos y metadatos e intercambiarlos entre diferentes herramientas.
MOF (Meta Object Facility) Se describen mediante: Modelos estáticos UML Clases Asociaciones binarias Tipos de datos Package Especificaciones OCL
Metamodelo Especificaciones OCL
Metamodelo Especificaciones OCL
Transformaciones y metamodelos PIM PIM “es-instancia-de” Refinamiento PIM-PSM Refinamiento PIM-PIMmetamodelo PSM- PSMmetamodelo Metamodelo PSM PSM “es-instancia-de”
HERRAMIENTAS CASE CASE-UML Rational Rose, Argo/UML, Together, UModel, MagicDraw, MetaEdit+, Poseidon 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 sólo un 10% soporta parcialmente MDA. Limitaciones en procesos de: ingeniería directa (forward engineering) ingeniería reversa (reverse engineering) transformaciones (refinamientos, refactoring) análisis de consistencia No proveen asistencia en reenginería de sistemas legacy
MDA y Reingeniería
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 estándar del Object Management Group (OMG)denominado MDA (Model Driven Architecture). Análisis de técnicas básicas para el desarrollo de herramientas CASE basadas en MDA.
CONTENIDO PARTE I UML (Unified Modeling Language) OCL (Object Constraint Language) Metamodelado MOF (Meta Object Facility) Cómo construir metamodelos Semántica de UML
CONTENIDO PARTE II MDA (Model-Driven Architecture) CIM, PIM, PSM, ISM Transformaciones de modelos y metamodelado Refinamiento y refactoring Evolución de software y MDA Herramientas CASE basadas en MDA Técnicas para el desarrollo de CASE basadas en UML/MDA Ingeniería directa, ingeniería reversa Refactoring, patrones de reinmgeniería wrapping,…