Arquitectura de software dirigida por modelos ModelDriven Architecture

  • Slides: 33
Download presentation
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006

Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006

Consideraciones para el desarrollo de herramientas CASE basadas en UML/MDA

Consideraciones para el desarrollo de herramientas CASE basadas en UML/MDA

Sintaxis de los lenguajes visuales

Sintaxis de los lenguajes visuales

Definición de la sintaxis de los lenguajes visuales Metamodelos Surgieron para definir la sintaxis

Definición de la sintaxis de los lenguajes visuales Metamodelos Surgieron para definir la sintaxis de lenguajes visuales basados en diagramas de entidad-relación. UML es el referente de estilo de definición sintáctica, que usa una técnica de metamodelado con 4 niveles de metamodelos. n Gramáticas de grafos Interpretan modelos gráficos como grafos y usan reglas de transformación para expresar las reglas para construir diagramas correctos. Sólo una clase restringida de grafos puede ser descrita por gramáticas de grafos [1]. n [1] Marriot, K. , Meryer, B. Visual Language Theory, Springer, 1998.

Definición de la sintaxis de los lenguajes visuales Grafos abstractos Transforma diagramas concretos en

Definición de la sintaxis de los lenguajes visuales Grafos abstractos Transforma diagramas concretos en un lenguaje de modelamiento en un grafo abstracto que preserva la topología. Este grafo es interpretado como un metamodelo del lenguaje. Debe complementarse con especificaciones en un lenguaje de constraints basado en lógica [2] Ebert, J. , Suttenbach, R. An OMT Metamodel, Technical report 13, University of Koblenz, 1997. n EBNF Una integración de Gramáticas de cadenas para lenguajes libres del contexto y gramáticas de atributos para sensibles al contexto y reglas operacionales para expresar constraints de la sintaxis dinámica [3] Xia, Y. Glinz, M. Rigorous EBNF-based Definition for a Graphic Modeling Language, IEEE, 2003 n

Relación entre gramáticas libres del contexto y metamodelos MOF

Relación entre gramáticas libres del contexto y metamodelos MOF

Las gráficas y ejemplos de esta sección fueron extraídos de: Alanen, M. , Porres,

Las gráficas y ejemplos de esta sección fueron extraídos de: Alanen, M. , Porres, I. A Relation between Context-Free grammars and meta Object facility Metamodels. Turku Centre for Computer Science TUCS Technical Report 606, 2003 www. tucs. fi/research/publications/search/. .

BNF (Backus Naur Form) y MOF (Meta Object Facility) Metamodelos Lenguaje de modelos Gramáticas

BNF (Backus Naur Form) y MOF (Meta Object Facility) Metamodelos Lenguaje de modelos Gramáticas Lenguaje de programas Transformación de una gramática en un metamodelo G MM Transformación de un texto (código) en un modelo T M Son reversibles G MM T M

BNF y MOF Se han desarrollado tecnologías para derivar metamodelos de varias fuentes: n

BNF y MOF Se han desarrollado tecnologías para derivar metamodelos de varias fuentes: n BNF n UML n ERD n … Por ejemplo MDWorkbench es un IDE basado en Eclipse para generación de código y transformaciones de modelos para implementa estrategias MDA/MDE.

BNF y MOF QVT (Query, View, Transformation) Metamodel Transformaciones Relaciones Especificación de transformaciones, no

BNF y MOF QVT (Query, View, Transformation) Metamodel Transformaciones Relaciones Especificación de transformaciones, no ejecutables multidireccionales Mappings Implementación de transformaciones, potencialmente unidireccionales

BNF y MOF

BNF y MOF

BNF y MOF G MM Relación a nivel de metamodelos que puede implementarse mediante

BNF y MOF G MM Relación a nivel de metamodelos que puede implementarse mediante los mappings G MM

BNF y MOF G n n n MM Cada gramática válida puede ser mapeada

BNF y MOF G n n n MM Cada gramática válida puede ser mapeada a un metamodelo válido. Cada metamodelo válido puede ser mapeado a una gramática válida La relación es reversible Los modelos válidos deberían producir árboles de sintaxis válidos y viceversa. Toda la información debe estar contenida en la gramática o el metamodelo

Algoritmo para transfomar una EBNF en un metamodelo MOF

Algoritmo para transfomar una EBNF en un metamodelo MOF

Algoritmo para transformar una EBNF en un metamodelo MOF

Algoritmo para transformar una EBNF en un metamodelo MOF

Algoritmo para transformar un metamodelo a una BNF

Algoritmo para transformar un metamodelo a una BNF

Algoritmo para transformar un metamodelo a una BNF

Algoritmo para transformar un metamodelo a una BNF

Ejemplo: desde una gramática JAVA simplificada a MOF

Ejemplo: desde una gramática JAVA simplificada a MOF

Metamodelo JAVA generado desde BNF simplificada

Metamodelo JAVA generado desde BNF simplificada

Algoritmos para transformaciones entre BNF y MOF Estos algoritmos no mapean cualquier gramática arbitraria

Algoritmos para transformaciones entre BNF y MOF Estos algoritmos no mapean cualquier gramática arbitraria en un metamodelo arbitrario. Por ejemplo, no pueden ser usadas para mapear la gramática de JAVA en un metamodelo UML. Esto debería resolverse en dos etapas, primero mapear JAVA a un metamodelo JAVA y luego, de éste a un metamodelo MOF usando transformaciones modelo a modelo. El mismo razonamiento se aplica en la dirección inversa.

Algoritmos para transformaciones entre BNF y MOF Las transformaciones son específicas para cada par

Algoritmos para transformaciones entre BNF y MOF Las transformaciones son específicas para cada par de lenguaje de programación y de modelamiento. Es posible definir un mapping de un metamodelo MOF a otro usando transformaciones de modelos.

Relaciones a nivel de modelos Esta relación define mappings desde un árbol de sintaxis

Relaciones a nivel de modelos Esta relación define mappings desde un árbol de sintaxis BNF ( es decir un programa) y un modelo, y desde un modelo a un árbol de sintaxis. El mapping de un árbol de sintaxis a un modelo es una instanciación de elementos del metamodelo de acuerdo al mapping definido entre EBNF y el metamodelo.

Reingeniería basada en MDA

Reingeniería basada en MDA

Arquitectura de una heramienta de ingeniería inversa Tonella, P. Potrich, A. Reverse Engineering of

Arquitectura de una heramienta de ingeniería inversa Tonella, P. Potrich, A. Reverse Engineering of Object-Oriented Code, Springer, 2005

Reingeniería de sistemas legacy En [1] se describe un estudio de factibilidad en la

Reingeniería de sistemas legacy En [1] se describe un estudio de factibilidad en la reingeniería de sistemas legacy de una compañía aseguradora. Los pasos del proceso propuesto son: 1) Parsing del código del sistema legacy de acuerdo a la gramática. 2) Mapping de los árboles de sintaxis abstracta obtenidos en el paso previo a un modelo de gramática que está definida en MOF. [1]Reus, T. , Geers, H. van Deursen, A. Harvesting Software System for MDA-based Reengineering. Lecture Notes in Computer Science 4066, Springer, 2006.

Reingeniería de sistemas legacy 3) 4) Convertir la gramática de 2) en un metamodelo

Reingeniería de sistemas legacy 3) 4) Convertir la gramática de 2) en un metamodelo genérico que permita expresar información del software en forma independiente del lenguaje. Mapping de los modelos que son instancias del metamodelo genérico, usando transformaciones modelo a modelos UML que pueden ser usados para generar código o como documentación.

Reingeniería de sistemas legacy

Reingeniería de sistemas legacy

Transformaciones y metamodelos Metamodelo PSM “es-instancia-de” PSM Anti. Refinamiento Anti Refinamiento ISM-PSM Metamodelo ISM

Transformaciones y metamodelos Metamodelo PSM “es-instancia-de” PSM Anti. Refinamiento Anti Refinamiento ISM-PSM Metamodelo ISM “es-instancia-de”

Arquitecture-Driven Modernization ADM

Arquitecture-Driven Modernization ADM

ADM La misión de ADM es crear estándares en el marco de OMG y

ADM La misión de ADM es crear estándares en el marco de OMG y MDA para la modernización de sistemas existentes y consolidar prácticas que conduzcan a la realización de proyectos de modernización exitosos. La modernización soporta una serie de iniciativas (escenarios) para incluir mejoras en la calidad de las aplicaciones, conversión código a código, migración a diferentes plataformas, migración a SOA, a MDA.

ADM Uno de los principales objetivos fue la creación de KDM (Knowledge Discovery Metamodel),

ADM Uno de los principales objetivos fue la creación de KDM (Knowledge Discovery Metamodel), un metamodelo que permite interoperabilidad entre diferentes herramientas. Las diferentes herramientas deberían intercambiar vistas comunes sobre plataformas y lenguajes con el fin de analizar y estandarizar sistemas existentes. KDM está alineado con MOF 2. 0. KDM representa a los principales artefactos del software (propios) o aquellos externos con los que interactúa

ADM Task Force- Roadmap OMG Adopted Specification ptc/06 -06 -07 RFP #1: ADM: Knowledge

ADM Task Force- Roadmap OMG Adopted Specification ptc/06 -06 -07 RFP #1: ADM: Knowledge Discovery Meta Model Package Facilitar el intercambio de metadatos de sistemas existentes para varias herramientas de modernización. RFP #2: ADM: Abstract Syntax Tree Meta Model (ASTM) Construido sobre KDM para representar software bajo el nivel procedural

ADM Task Force- Roadmap RFP #3: ADM: Analysis Package Un estándar para facilitar el

ADM Task Force- Roadmap RFP #3: ADM: Analysis Package Un estándar para facilitar el análisis de metadatos estructurales a fin de derivar metadatos de comportamiento de sistemas. RFP #4: ADM: Metrics Package RFP #5: ADM: Visualization Package RFP #6: ADM: Refactoring Package RFP #7: ADM: Target Mapping & Transformation Package