Title: Arquitectura de software dirigida por modelos (Model-Driven Architecture)
1Arquitectura de software dirigida por
modelos(Model-Driven Architecture)
- Liliana Favre
- UNCPBA
- 2006
2- Consideraciones para el desarrollo de
- herramientas CASE basadas en UML/MDA
3- Sintaxis de los lenguajes visuales
4Definició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 este estilo de definición
sintáctica, que - usa una técnica de metamodelado con 4 niveles de
- metamodelos.
- 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.
- 1 Marriot, K., Meryer, B. Visual Language
Theory, Springer, 1998.
5Definició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.
- 2 Ebert, J., Suttenbach, R. An OMT Metamodel,
Technical report 13, University of Koblenz, 1997. - 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
- 3 Xia, Y. Glinz, M. Rigorous EBNF-based
Definition for a Graphic Modeling Language, IEEE,
2003
6- Relación entre gramáticas libres del contexto y
- metamodelos MOF
7- 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/..
8BNF (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
9BNF y MOF
- Se han desarrollado tecnologías para derivar
- metamodelos de varias fuentes
- BNF
- UML
- ERD
-
- Por ejemplo MDWorkbench es un IDE basado
- en Eclipse para generación de código y
- transformaciones de modelos para implementa
- estrategias MDA/MDE.
10BNF y MOF
- QVT (Query, View, Transformation) Metamodel
- Transformaciones
- Relaciones
- Especificación de transformaciones, no
ejecutables multidireccionales - Mappings
- Implementación de transformaciones,
potencialmente unidireccionales
11BNF y MOF
12BNF y MOF
- G MM
- Relación a nivel de metamodelos que puede
- implementarse mediante los mappings G MM
- G MM
13BNF y MOF
- G 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
14Algoritmo para transfomar una EBNF en un
metamodelo MOF
15Algoritmo para transformar una EBNF en un
metamodelo MOF
16Algoritmo para transformar un metamodelo a una BNF
17Algoritmo para transformar un metamodelo a una BNF
18Ejemplo desde una gramática JAVA simplificada a
MOF
19Metamodelo JAVA generado desdeBNF simplificada
20Algoritmos 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.
21Algoritmos 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.
22Relaciones 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.
23- Reingeniería basada en MDA
24Arquitectura de una heramienta de ingeniería
inversa
- Tonella, P. Potrich, A. Reverse Engineering of
- Object-Oriented Code, Springer, 2005
25Reingenierí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
- Parsing del código del sistema legacy de acuerdo
a la gramática. - Mapping de los árboles de sintaxis abstracta
obtenidos en el paso previo a un modelo de
gramática que está definida en MOF. - 1Reus, T., Geers, H. van Deursen, A. Harvesting
- Software System for MDA-based Reengineering.
- Lecture Notes in Computer Science 4066, Springer,
2006.
26Reingeniería de sistemas legacy
- 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 modelo a modelos UML que pueden ser
usados para generar código o como
documentación.
27Reingeniería de sistemas legacy
28Transformaciones y metamodelos
Metamodelo PSM
PSM
es-instancia-de
AntiRefinamiento ISM-PSM
Anti Refinamiento ISM-PSM
Metamodelo ISM
ISM
es-instancia-de
29- Arquitecture-Driven Modernization
- ADM
30ADM
- 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.
31ADM
- 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
32ADMTask 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
33ADMTask 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