1 / 30

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

Arquitectura de software dirigida por modelos (Model-Driven Architecture). Liliana Favre UNCPBA 2006. 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

carrington
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. • 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) • PIM (Platform Independent Model) • PSM (Platform 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 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.

  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 • Independencia de plataformas específicas • 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. • 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.

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

  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 verticales • Antirefinamientos • Refactorings • 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 • Verticales (por ejemplo, PIM a PSM, PSM a ISM) • 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.

  12. Transformaciones y MDA Otras transformaciones: • Puentesentre 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,….

  13. Transformaciones en MDA Transformaciones automáticas tool tool PIM PSM ISM

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

  15. Metamodelos y MDA En MDA es crucial analizar, automatizar y transformar modelos: • Mantener trazas y relaciones entre diferentes modelos • 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/OCLModelos MOFMetamodelos (Meta Object Facility) QVT Transformaciones (Query-View-Transformation)

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

  18. Transformaciones y metamodelos Metamodelo PIM PIM “es-instancia-de” Refinamiento PIM-PSM Refinamiento PIM-PIMmetamodelo PSM- PSMmetamodelo Metamodelo PSM PSM “es-instancia-de”

  19. MDA y Reingeniería

  20. Especificación de transformacionescomo contratos OCL TRANSFORMATION transformationName PARAMETERS<parameterList> PRE: <preconditionList> POST: <postconditionList> Additional Operations def:… def:… END

  21. EjemploBON-Metamodel simplificado

  22. EjemploMetamodel UML simplificado

  23. EjemploMetamodel UML simplificado

  24. EjemploMetamodel UML simplificado

  25. Especificación de transformaciones TRANSFORMATION BASIC PACKAGE PARAMETERS source: UMLMetamodel :: Package target: BON-PSM-Metamodel :: Model PRE: -- source es un Package simple, que sólo contiene clases y asociaciones source.ownedMember -> 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-> select(oclIsTypeOf (Class)) -> exists(classTarget|classSource.name= 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 () <= F.parameters ->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

More Related