Download CLASE10-ADM

Document related concepts
no text concepts found
Transcript
Arquitectura de software
dirigida por modelos
(Model-Driven Architecture)
Liliana Favre
UNCPBA
2006
Consideraciones para el desarrollo de
herramientas CASE basadas en UML/MDA
Sintaxis de los lenguajes visuales
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 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.
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].
[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

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, 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
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:
 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.
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
G
MM
Relación a nivel de metamodelos que puede
implementarse mediante los mappings G MM
G MM
BNF 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
Algoritmo para transfomar 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
Ejemplo: desde una gramática JAVA
simplificada a MOF
Metamodelo JAVA generado desde
BNF simplificada
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 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 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
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 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 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.
Reingeniería de sistemas legacy
Transformaciones y metamodelos
Metamodelo
PSM
“es-instancia-de”
PSM
AntiRefinamiento
Anti Refinamiento ISM-PSM
ISM-PSM
Metamodelo
ISM
ISM
“es-instancia-de”
Arquitecture-Driven Modernization
ADM
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), 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 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 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