Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

description

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 - PowerPoint PPT Presentation

Transcript of Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Page 1: 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

Page 2: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Consideraciones para el desarrollo de

herramientas CASE basadas en UML/MDA

Page 3: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Sintaxis de los lenguajes visuales

Page 4: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 5: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 6: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Relación entre gramáticas libres del contexto yRelación entre gramáticas libres del contexto y

metamodelos MOFmetamodelos MOF

Page 7: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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/..

Page 8: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 9: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 10: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 11: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

BNF y MOFBNF y MOF

Page 12: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 13: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 14: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Algoritmo para transfomar una EBNF en un metamodelo MOF

Page 15: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Algoritmo para transformar una EBNF en un metamodelo MOF

Page 16: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Algoritmo para transformar un metamodelo a una BNF

Page 17: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Algoritmo para transformar un Algoritmo para transformar un metamodelo a una BNFmetamodelo a una BNF

Page 18: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Ejemplo: desde una gramática Ejemplo: desde una gramática JAVA simplificada a MOFJAVA simplificada a MOF

Page 19: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Metamodelo JAVA generado Metamodelo JAVA generado desdedesde

BNF simplificadaBNF simplificada

Page 20: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 21: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 22: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 23: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Reingeniería basada en MDA

Page 24: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 25: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 26: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 27: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Reingeniería de sistemas legacy

Page 28: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 29: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

Arquitecture-Driven Modernization

ADM

Page 30: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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.

Page 31: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 32: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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

Page 33: Arquitectura de software dirigida por modelos (Model-Driven Architecture)

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