La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.

Presentaciones similares


Presentación del tema: "Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006."— Transcripción de la presentación:

1 Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006

2 Model-Driven Architecture (MDA) Es una evolución de estándares definidos por OMG (Object Management Group) para mejorar procesos de desarrollo de sistemas de software dirigidos por modelos. Ideas centrales en MDA Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica. Separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica. Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización. Controlar la evolución desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización.

3 Plataforma en MDA Plataforma Es un conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidad que puede ser usada en cualquier aplicación sin tener en cuenta detalles de cómo la funcionalidad es implementada

4 Modelos y MDA Distingue diferentes tipos de modelos: CIM (Computation Independent Model) CIM (Computation Independent Model) PIM (Platform Independent Model) PIM (Platform Independent Model) PSM (Platform Specific Model) PSM (Platform Specific Model) ISM (Implementation Specific Model) ISM (Implementation Specific Model)

5 Modelos y MDA Computation Independent Model (CIM) Es una descripción de la lógica del negocio desde una perspectiva independiente de la computación. Es un modelo del dominio Es una descripción de la lógica del negocio desde una perspectiva independiente de la computación. Es un modelo del dominio Platform Independent Model Es una descripción de la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas. Es una descripción de la funcionalidad del sistema en forma independiente de las características de plataformas de implementación específicas.

6 Modelos y MDA Platform Specific Model (PSM) Es una descripción del sistema en términos de una plataforma específica. Por ejemplo,.NET, J2EE, relacional,… Implementation Specific Model Es una descripción (especificación) del sistema a nivel de código. Por ejemplo, Java, C#, …

7 MDA Clasificación de modelos Clasificación de modelos Independencia de plataformas específicas Independencia de plataformas específicas Transformación de modelos y refinamiento Transformación de modelos y refinamiento

8 Model-driven Development (MDD) Un desarrollo MDD distingue al menos las siguientes etapas: Construir un PIM en un alto nivel de abstracción, independiente de una tecnología específica. Construir un PIM en un alto nivel de abstracción, independiente de una tecnología específica. Transformar al PIM en uno o más modelos dependientes de una paltaforma específica, denominados PSM. Por ejemplo, relacional, J2EE,.NET Transformar al PIM en uno o más modelos dependientes de una paltaforma específica, denominados PSM. Por ejemplo, relacional, J2EE,.NET Transformar los PSM a código. Transformar los PSM a código.

9 MDD (Model-Driven Development) PIM PSM J2EE PSM REL PSM dotNET CODE CIM

10 Transformaciones y MDA Una transformación es el proceso para convertir un modelo en un lenguaje en un modelo en otro lenguaje. Refinamientos horizontales Refinamientos horizontales Refinamientos verticales Refinamientos verticales Antirefinamientos Antirefinamientos Refactorings Refactorings Puentes Puentes

11 Transformaciones y MDA La evolución desde modelos CIM a ISM es alcanzada por: Refinamientos que permiten construir una especificación más específica a partir de una más abstracta Refinamientos que permiten construir una especificación más específica a partir de una más abstracta Verticales (por ejemplo, PIM a PSM, PSM a ISM) Verticales (por ejemplo, PIM a PSM, PSM a ISM) Horinzontales (por ejemplo, PIM a PIM, PSM a PSM) Horinzontales (por ejemplo, PIM a PIM, PSM a PSM) Refactorings que permiten transformar modelos en un determinado nivel (PIM, PSM, ISM) sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no funcionales. Refactorings que permiten transformar modelos en un determinado nivel (PIM, PSM, ISM) sin cambiar su funcionalidad, pero mejorando algunos factores de calidad no funcionales.

12 Transformaciones y MDA Otras transformaciones: Puentes entre diferentes PSMs, ISMs. Por ejemplo de COBOL a JAVA, de J2EE a.NET,… Puentes entre diferentes PSMs, ISMs. Por ejemplo de COBOL a JAVA, de J2EE a.NET,… Anti-refinamientos que permiten construir una especificación más abstracta a partir de una más específica. Por ejemplo, de ISM a PSM, de PSM a PIM,…. Anti-refinamientos que permiten construir una especificación más abstracta a partir de una más específica. Por ejemplo, de ISM a PSM, de PSM a PIM,….

13 Transformaciones en MDA Transformaciones automáticas tool tool PIMPSMISM

14 MDA- Beneficios Productividad Productividad Portabilidad Portabilidad Interoperabilidad Interoperabilidad Evolución del software Evolución del software

15 Metamodelos y MDA En MDA es crucial analizar, automatizar y transformar modelos: Mantener trazas y relaciones entre diferentes modelos Mantener trazas y relaciones entre diferentes modelos Lograr interoperabilidad en diferentes niveles Lograr interoperabilidad en diferentes niveles Descripciones precisas de la semántica de los modelos Metamodelos

16 Modelos, Transformaciones y Metamodelos OMG provee un framework conceptual y estándares para expresar modelos, relaciones y transformaciones modelo-a-modelo. UML/OCL Modelos MOF Metamodelos (Meta Object Facility) QVT Transformaciones (Query-View-Transformation)

17 Arquitectura de metamodelado Arquitectura de metamodelado de 4 niveles: Meta-metamodelo Meta-metamodelo (MOF) MOF (MOF) MOF Metamodelo Metamodelo (Metamodelo UML, SPEM) SPEM (Metamodelo UML, SPEM) SPEM Modelo Modelo (UML, RUP) RUP (UML, RUP) RUP Objetos Objetos “es-una-instancia” “es-una-instancia”

18 Transformaciones y metamodelos “es-instancia-de” RefinamientoPIM-PSM Refinamiento PIM-PIMmetamodelo PSM- PSMmetamodelo PSM- PSMmetamodelo “es-instancia-de” PIM PSM MetamodeloPIM MetamodeloPSM

19 MDA y Reingeniería

20 Especificación de transformaciones como contratos OCL TRANSFORMATION transformationName PARAMETERS<parameterList> PRE: PRE: POST: POST: Additional Operations def:…def:…END

21 Ejemplo BON-Metamodel simplificado

22 Ejemplo Metamodel UML simplificado

23

24

25 Especificación de transformaciones TRANSFORMATION BASIC PACKAGE TRANSFORMATION BASIC PACKAGE PARAMETERS PARAMETERS source: UMLMetamodel :: Package source: UMLMetamodel :: Package target: BON-PSM-Metamodel :: Model target: BON-PSM-Metamodel :: Model PRE: PRE: -- source es un Package simple, que sólo contiene clases y asociaciones source.ownedMember -> source.ownedMember -> forAll (s / s.oclIsTypeOf (Class) or s.oclIsTypeOf(Association)) forAll (s / s.oclIsTypeOf (Class) or s.oclIsTypeOf(Association)) POST:….

26 Especificación de transformaciones POST: -- para cada clase en source existe una clase target que tiene --el mismo nombre source.ownedMember -> select (oclIsTypeOf (Class)) -> forAll(classSource|target.abstractions-> exists(classTarget|classSource.name= classTarget.name )and … classTarget.name )and …

27 Especificación de transformaciones --para cada clase en el conjunto de superclases de --source existe una relación de herencia en el target con --el mismo nombre classSource.superclasses -> forAll (classParent | target.relationships–>select(oclIsTypeOf(inheritance) -> exists (rel | (rel.name = classParent.name))) and …

28 Especificación de transformaciones --para cada operación/atributo en source --existe una rutina/atributo en el target… classSource.ownedOperation -> forAll (op |target.abstractions -> select(oclIsTypeOf(Routine)-> exists(op1| operTransf (op, op1))) and classSource.ownedAttribute -> forAll (at| target.abstractions -> select(oclIsTypeOf(Attribute))-> exists(at1|attribTransf(at, at1))) )

29 Especificación de transformaciones POST: --para cada asociación en source existe una en target.. source.ownedMember-> select(oclIsTypeOf(Association) -> forAll (assoc| exists(assoc1|assocTransf (assoc, assoc1)) … Additional Operations

30 Especificación de transformaciones Additional Operations def:operTransf(O:Package::operation,F:Model::feature): Boolean = if O.stereotype.name = ´constructor´ then F.name = ´make´ else F.name = O.name endif and (F.type.conformsTo.O.type) and O.parameters -> size () size() and Sequence { 1..(O.parameters ->size())} -> forAll (i:Integer | F.parameters -> (at(i).name = O.parameters -> at(i).name) and O.parameters ->at(i).type.conformsTo.(F.parameters->at(i).type)) def: attribTransf(S:Package::Attribute,T:Model::Attribute):Boolean def: assocTransf(S:Package::Association,T:Model::Association):Boolean. END-TRANSFORMATION


Descargar ppt "Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006."

Presentaciones similares


Anuncios Google