Title: Arquitectura de software dirigida por modelos (Model-Driven Architecture)
1Arquitectura de software dirigida por
modelos(Model-Driven Architecture)
- Liliana Favre
- UNCPBA
- 2006
2 3Bibliografía
- Las gráficas y especificaciones fueron extraídas
de la siguiente bibliografía - MDA The Model Driven Architecture
www.omg.org/mda, 2006 MOF Meta Object facility
(MOF ) 1.4. formal/2002-04-03 www.omg-org/mof - OCL OCL Specification. Version 2.0. Formal
document ptc/03-10-14 www.omg.org - UML UML 2.0 Superstructure Specification. OMG
formal/05-07-04 www.omg.org - UML UML 2.0 Infrastructure Specification. OMG
formal/05-07-04 www.omg.org - Warmer, J., Kleppe, A. The Object-Constraint
Language. (Second Edition). Addison Wesley (2003)
- Warmer, J., Kleppe,A., Bast, W. MDA Explained
The Model Driven Architecture Practice and
Promise Addison Wesley (2003)
4METAMODELOS
- Los lenguajes de programación basados en texto
se describen por gramáticas (BNF). - Los lenguajes de modelamiento como UML tienen, en
general, una sintaxis gráfica que requiere otro
tipo de descripción -
- Metamodelado
5Modelos, Lenguajes, Metamodelos y Metalenguajes
- Un metamodelo es un modelo que define el lenguaje
- para expresar un modelo.
- Un modelo se expresa en un lenguaje.
- Un lenguaje se define por un metamodelo.
- Un metamodelo se expresa en un metalenguaje.
- BNF es un metalenguaje?
6Modelos, Lenguajes, Metamodelos y Metalenguajes
- El metamodelo de un lenguaje es una descripción
de - todos los conceptos que pueden usarse en el
mismo. - Por ejemplo,
- los conceptos de package, clase , atributo y
operaciones aparecen en UML - los conceptos de métodos, constructores e
interfaces en JAVA - los conceptos de tabla, columna, clave son parte
de SQL - Cada elemento de un modelo es una instancia de
una metaclase - en el metamodelo.
- Una clase define a sus objetos y una metaclase
define a los - elementos del modelo
7Modelos, Lenguajes, Metamodelos y Metalenguajes
- Metamodelos basados en
- Entidades
- Relaciones
- Sistemas
- Modelos estáticos UML
- Clases
- Asociaciones binarias
- Tipos de datos
- Package
- Especificaciones OCL
8Un ejemplo de metamodelo UML
9Un ejemplo de metamodelo UML
10Ejemplo- Metamodelo SQL simplificado
11Modelos, Lenguajes, Metamodelos y Metalenguajes
- Un metalenguaje es un lenguaje y puede ser
- definido por un metamodelo
- Metalenguaje Meta-metamodelo
- Meta-meta lenguaje Meta-meta- metamodelo
- .......
- (meta)i metalenguaje (meta)i metamodelo
- El estándar definido por OMG usa 4 niveles
12 Arquitectura de 4 niveles
- OMG usa una arquitectura de 4 niveles para sus
- estándares
- MO Modelo de instancias
- M1 Modelo del sistema
- M2 Metamodelo
- M3 Meta-metamodelo
13 Arquitectura de 4 niveles
14 Arquitectura de 4 niveles
15 Arquitectura de 4 niveles
16 Arquitectura de 4 niveles
17Meta Object facility (MOF)
- MOF captura la diversidad de estándares de
- modelamiento para integrar diferentes tipos de
- modelos y metadatos e intercambiarlos entre
- diferentes herramientas.
- .
18MOF
- MOF usa un framework de modelamiento que es
- un subconjunto del núcleo de UML. Los 4
- construcciones de modelamiento son
- Clases, que modelan metaobjetos MOF.
- Asociaciones que modelan relaciones binarias
entre metaobjetos. - Tipos de datos, que modelan otros datos (por
ejemplo tipos primitivos, tipos externos, etc). - Packages, que modularizan los modelos.
-
19MOF(Meta Object Facility)
- Construcciones en MOF
- Asociaciones
- Association-end
- Multiplicidades
- Agregación
- Agregación asociación
- Agregación atributo
20MOF(Meta Object Facility)
- MOF soporta dos tipos de agregaciones
- Non-aggregate
- No impone restricciones sobre las
- multiplicidades de las relaciones.
- No impone restriccciones sobre el origen de las
- instancias en la relación.
- La relación no impacta sobre el ciclo de vida
- de las instancias.
21MOF(Meta Object Facility)
- Composite
- Es asimétrica, identifica a un todo y sus
partes. - Una instancia no puede ser componente de más de
un composite a la vez. - Una instancia no puede ser componente de sí
misma, sus componentes, las componentes de sus
componentes. - Cuando un composite es eliminado, todos sus
componentes y las componentes de sus componentes
son también eliminadas. - El composite y las partes, junto con los links
que forman la composición, deben pertenecer al
mismo package más externo
22MOF(Meta Object Facility)
- Construcciones en MOF
- Tipos de datos
- Tipos primitivos
- Tipos constructores
- Packages
- Generalización de packages
- Anidamiento de packages
- Importación de packages
- Clustering
23MOF(Meta Object Facility)
- Constraints y consistencia
- El modelo MOF define un elemento llamado
- Constraint que puede ser usado para adjuntar
- reglas de consistencia a componentes del
- Metamodelo.
- En MOF son expresados en OCL.
24Arquitectura de 4 niveles y UML 1.x
- El metamodelo UML 1.x era compatible pero no
- se alineaba estrictamente a la arquitectura de 4
- niveles en la que cada metamodelo es una
- instancia de un meta-metamodelo.
- UML 2.0 está alineado con MOF, es una
- instancia de MOF. El núcleo de UML y de MOF
- comparten los elementos de metamodelado.
25Especificación de UML 2.0
- La especificación de UML 2.0 está organizada en
- dos documentos
- UML 2.0 Infrastructure
- Define las construcciones de lenguaje
fundacionales - requeridas por UML 2.0. Es un núcleo de
metalenguaje - que puede ser reusado para definir otros
metamodelos y - mecanismos de extensión para UML
- UML 2.0 Superstructure
- Complementa a UML 2.0 Infrastructure. Define
construcciones a - nivel de usuario requeridas por UML 2.0
26Especificación de UML 2.0
- La infraestructura de UML se define en
- Infrastructure Library
- Define un núcleo de metalenguaje que puede ser
reusado para definir variedad de metamodelos,
como MOF, UML, CWM.
27Especificación de UML 2.0
- Alinea arquitecturalmente a UML, MOF y XMI
- Permite la creación de dialectos a través de
profiles y de nuevos lenguajes(familias de
lenguajes) basados en el núcleo del metalenguaje.
28UML 2.0 InfrastructureCore Package
- Core Package
- Es un metamodelo completo diseñado para lograr
alta - reusabilidad, donde otros metamodelos en el mismo
- nivel importan o especializan sus metaclases
29UML 2.0 Superstructure
- La superestructura de UML está especificada en
- el package PACKAGE que está dividido en un
- número de packages que especifican modelos
- estructurales y de comportamiento.
30UML 2.0 SuperstructurePackage
31El metamodelo de UML Packages - Estructura
32El metamodelo de UML Packages - Classes
33El metamodelo de UML Package-Kernel-Root Diagram
34El metamodelo de UML Package-Kernel-Root Diagram
35El metamodelo de UML Kernel-Operaciones
36El metamodelo de UML Kernel-Operaciones
- Una operación es un feature de comportamiento
- que especifica nombre, parámetros y constraints
- para invocar un comportamiento asociado.
37El metamodelo de UML Kernel-Operaciones
38El metamodelo de UML Kernel-Operaciones
39El metamodelo de UML Kernel-Operaciones
40El metamodelo de UML Kernel-Operaciones
41El metamodelo de UML Kernel-Operaciones
42El metamodelo de UMLKernel-Diagrama de
multiplicidades
43El metamodelo de UMLKernel-Diagrama de
multiplicidades
44Metamodelo OCLKernel
45El metamodelo OCLKernel
- Las reglas que especifican si un tipo conforma a
- otro son especificadas en OCL.
- La operación conformsTo(cClassifier)Boolean,
- evalúa True si self conforam a c.
- Reglas para tipos individuales
46El metamodelo OCLKernel
47El metamodelo OCLKernel
48El metamodelo OCLKernel
49El metamodelo OCLKernel
50El metamodelo OCLKernel
51El metamodelo OCLKernel
52El metamodelo OCLKernel
53El metamodelo OCLKernel
54La relación entre los metamodelos de UML y OCL
- Una expresión OCL en los metamodelos
- referencia a elementos de un modelo UML.
- Los elementos referenciados son instancias de
- metaclases
55La relación entre los metamodelos de UML y OCL
56La relación entre los metamodelos de UML y OCL