Arquitectura de software dirigida por modelos (Model-Driven Architecture)
description
Transcript of Arquitectura de software dirigida por modelos (Model-Driven Architecture)
Arquitectura de software Arquitectura de software dirigida por modelosdirigida por modelos(Model-Driven Architecture)(Model-Driven Architecture)
Liliana FavreLiliana FavreUNCPBAUNCPBA
20062006
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
MetamodelosSurgieron para definir la sintaxis de lenguajes visualesbasados en diagramas de entidad-relación. UML es elreferente de este estilo de definición sintáctica, queusa una técnica de metamodelado con 4 niveles demetamodelos. Gramáticas de grafosInterpretan modelos gráficos como grafos y usan reglas detransformación para expresar las reglas para construirdiagramas correctos. Sólo una clase restringida de grafospuede 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 abstractosTransforma diagramas concretos en un lenguaje demodelamiento en un grafo abstracto que preserva latopología. Este grafo es interpretado como un metamodelodel lenguaje. Debe complementarse con especificaciones en unlenguaje de constraints basado en lógica [2].[2] Ebert, J., Suttenbach, R. An OMT Metamodel, Technical report 13,
University of Koblenz, 1997. EBNFUna integración de Gramáticas de cadenas para lenguajeslibres del contexto y gramáticas de atributos para sensibles alcontexto y reglas operacionales para expresar constraints dela 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 yRelación entre gramáticas libres del contexto y
metamodelos MOFmetamodelos MOF
Las gráficas y ejemplos de esta sección fueronextraídos de:
Alanen, M., Porres, I. A Relation betweenContext-Free grammars and meta Objectfacility Metamodels.Turku Centre for Computer ScienceTUCS Technical Report 606, 2003www.tucs.fi/research/publications/search/..
BNF (Backus Naur Form) y BNF (Backus Naur Form) y MOF (Meta Object Facility)MOF (Meta Object Facility)
Metamodelos Lenguaje de modelosGramáticas Lenguaje de programasTransformación de una gramática en unmetamodeloG MMTransformación de un texto (código) en unmodeloT MSon reversibles G MM T M
BNF y MOFBNF y MOF
Se han desarrollado tecnologías para derivarmetamodelos de varias fuentes: BNF UML ERD …Por ejemplo MDWorkbench es un IDE basadoen Eclipse para generación de código ytransformaciones de modelos para implementaestrategias MDA/MDE.
BNF y MOFBNF 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 MOFBNF y MOF
BNF y MOFBNF y MOF
G MMG MM
Relación a nivel de metamodelos que puedeRelación a nivel de metamodelos que puede
implementarse mediante los mappings G MMimplementarse mediante los mappings G MM
G MMG MM
BNF y MOFBNF y MOF
G MM G MM Cada gramática válida puede ser mapeada a unCada gramática válida puede ser mapeada a un
metamodelo válido.metamodelo válido. Cada metamodelo válido puede ser mapeado aCada metamodelo válido puede ser mapeado a
una gramática válidauna gramática válida La relación es reversibleLa relación es reversible Los modelos válidos deberían producir árboles de sintaxis Los modelos válidos deberían producir árboles de sintaxis
válidos y viceversa.válidos y viceversa. Toda la información debe estar contenida en la gramática Toda la información debe estar contenida en la gramática
o el metamodeloo 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 Algoritmo para transformar un metamodelo a una BNFmetamodelo a una BNF
Ejemplo: desde una gramática Ejemplo: desde una gramática JAVA simplificada a MOFJAVA simplificada a MOF
Metamodelo JAVA generado Metamodelo JAVA generado desdedesde
BNF simplificadaBNF simplificada
Algoritmos para Algoritmos para transformaciones entre transformaciones entre
BNF y MOFBNF y MOFEstos algoritmos no mapean cualquier gramáticaEstos algoritmos no mapean cualquier gramáticaarbitraria en un metamodelo arbitrario. Porarbitraria en un metamodelo arbitrario. Porejemplo, no pueden ser usadas para mapear laejemplo, no pueden ser usadas para mapear lagramática de JAVA en un metamodelo UML.gramática de JAVA en un metamodelo UML.Esto debería resolverse en dos etapas, primeroEsto debería resolverse en dos etapas, primeromapear JAVA a un metamodelo JAVA y luego,mapear JAVA a un metamodelo JAVA y luego,de éste a un metamodelo MOF usandode éste a un metamodelo MOF usandotransformaciones modelo a modelo. El mismotransformaciones modelo a modelo. El mismorazonamiento se aplica en la dirección inversa. razonamiento se aplica en la dirección inversa.
Algoritmos para Algoritmos para transformaciones entre transformaciones entre
BNF y MOFBNF y MOFLas transformaciones son específicas para cadaLas transformaciones son específicas para cada
par de lenguaje de programación y depar de lenguaje de programación y de
modelamiento.modelamiento.
Es posible definir un mapping de un metamodeloEs posible definir un mapping de un metamodelo
MOF a otro usando transformaciones deMOF a otro usando transformaciones de
modelos.modelos.
Relaciones a nivel de modelos
Esta relación define mappings desde un árbol deEsta relación define mappings desde un árbol de
sintaxis BNF ( es decir un programa) y unsintaxis BNF ( es decir un programa) y un
modelo, y desde un modelo a un árbol demodelo, y desde un modelo a un árbol de
sintaxis.sintaxis.
El mapping de un árbol de sintaxis a un modeloEl mapping de un árbol de sintaxis a un modelo
es una instanciación de elementos deles una instanciación de elementos del
metamodelo de acuerdo al mapping definidometamodelo de acuerdo al mapping definido
entre EBNF y el metamodelo.entre EBNF y el metamodelo.
Reingeniería basada en MDA
Arquitectura de una Arquitectura de una heramienta de ingeniería heramienta de ingeniería
inversainversa
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 laEn [1] se describe un estudio de factibilidad en lareingeniería de sistemas legacy de una compañíareingeniería de sistemas legacy de una compañíaaseguradora.aseguradora.Los pasos del proceso propuesto son:Los pasos del proceso propuesto son:1)1) Parsing del código del sistema legacy de acuerdo a la Parsing del código del sistema legacy de acuerdo a la
gramática.gramática.2)2) Mapping de los árboles de sintaxis abstracta obtenidos en Mapping de los árboles de sintaxis abstracta obtenidos en
el paso previo a un modelo de gramática que está el paso previo a un modelo de gramática que está definida en MOF.definida en MOF.
[1]Reus, T., Geers, H. van Deursen, A. Harvesting[1]Reus, T., Geers, H. van Deursen, A. HarvestingSoftware System for MDA-based Reengineering.Software System for MDA-based Reengineering.Lecture Notes in Computer Science 4066, Springer, 2006.Lecture Notes in Computer Science 4066, Springer, 2006.
Reingeniería de sistemas legacy
3)3) Convertir la gramática de 2) en un Convertir la gramática de 2) en un metamodelo genérico que permita metamodelo genérico que permita expresar información del software en expresar información del software en forma independiente del lenguaje.forma independiente del lenguaje.
4)4) Mapping de los modelos que son Mapping de los modelos que son instancias del metamodelo genérico, instancias del metamodelo genérico, usando transformaciones modelo a modelo usando transformaciones modelo a modelo a modelos UML que pueden ser usados a modelos UML que pueden ser usados para generar código o como para generar código o como documentación. documentación.
Reingeniería de sistemas legacy
Transformaciones y metamodelosTransformaciones y metamodelos
““es-instancia-de”es-instancia-de”
AntiRefinamientoAntiRefinamiento
ISM-PSMISM-PSM
Anti Refinamiento ISM-PSMAnti Refinamiento ISM-PSM
““es-instancia-de”es-instancia-de”PSMPSM
ISMISM
MetamodeloMetamodelo
PSMPSM
MetamodeloMetamodelo
ISMISM
Arquitecture-Driven Modernization
ADM
ADMADM
La misión de ADM es crear estándares en elLa misión de ADM es crear estándares en elmarco de OMG y MDA para la modernizaciónmarco de OMG y MDA para la modernizaciónde sistemas existentes y consolidar prácticas quede sistemas existentes y consolidar prácticas queconduzcan a la realización de proyectos deconduzcan a la realización de proyectos demodernización exitosos.modernización exitosos.La modernización soporta una serie deLa modernización soporta una serie deiniciativas (escenarios) para incluir mejoras eniniciativas (escenarios) para incluir mejoras enla calidad de las aplicaciones, conversión códigola calidad de las aplicaciones, conversión códigoa código, migración a diferentes plataformas, a código, migración a diferentes plataformas,
migración a SOA, a MDA. migración a SOA, a MDA.
ADMADM
Uno de los principales objetivos fue la creaciónUno de los principales objetivos fue la creaciónde KDM (Knowledge Discovery Metamodel), unde KDM (Knowledge Discovery Metamodel), unmetamodelo que permite interoperabilidad entremetamodelo que permite interoperabilidad entrediferentes herramientas. Las diferentes herramientasdiferentes herramientas. Las diferentes herramientasdeberían intercambiar vistas comunes sobredeberían intercambiar vistas comunes sobreplataformas y lenguajes con el fin de analizar yplataformas y lenguajes con el fin de analizar yestandarizar sistemas existentes.estandarizar sistemas existentes.KDM está alineado con MOF 2.0. KDM KDM está alineado con MOF 2.0. KDM representa a los principales artefactos del softwarerepresenta a los principales artefactos del software(propios) o aquellos externos con los que interactúa(propios) o aquellos externos con los que interactúa
ADMADMTask Force- RoadmapTask Force- Roadmap
OMG Adopted Specification ptc/06-06-07OMG Adopted Specification ptc/06-06-07
RFP #1: ADM: Knowledge Discovery MetaModel Package Facilitar el intercambio de metadatos desistemas existentes para varias herramientasde modernización.RFP #2: ADM: Abstract Syntax Tree MetaModel (ASTM)Construido sobre KDM para representarsoftware bajo el nivel procedural
ADMADMTask Force- RoadmapTask Force- Roadmap
RFP #3: ADM: Analysis Package
Un estándar para facilitar el análisis demetadatos estructurales a fin de derivarmetadatos de comportamiento de sistemas.RFP #4: ADM: Metrics PackageRFP #5: ADM: Visualization PackageRFP #6: ADM: Refactoring PackageRFP #7: ADM: Target Mapping &
Transformation Package