arquitectura de software dirigida por modelos (model-driven architecture)
DESCRIPTION
Arquitectura de software dirigida por modelos (Model-Driven Architecture). Liliana Favre UNCPBA 2006. METAMODELADO. Bibliografía. Las gráficas y especificaciones fueron extraídas de la siguiente bibliografía: - PowerPoint PPT PresentationTRANSCRIPT
Arquitectura de software Arquitectura de software dirigida por modelosdirigida por modelos(Model-Driven Architecture)(Model-Driven Architecture)
Liliana FavreLiliana FavreUNCPBAUNCPBA
20062006
METAMODELADOMETAMODELADO
BibliografíaBibliografíaLas gráficas y especificaciones fueron extraídas de la siguiente
bibliografía:1. 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
2. OCL: OCL Specification. Version 2.0. Formal document: ptc/03-10-14 www.omg.org
3. UML: UML 2.0 Superstructure Specification. OMG formal/05-07-04 www.omg.org
4. UML: UML 2.0 Infrastructure Specification. OMG formal/05-07-04 www.omg.org
5. Warmer, J., Kleppe, A. The Object-Constraint Language. (Second Edition). Addison Wesley (2003)
6. Warmer, J., Kleppe,A., Bast, W. MDA Explained: The Model Driven Architecture™: Practice and Promise Addison Wesley (2003)
METAMODELOSMETAMODELOS
Los lenguajes de programación basados en Los lenguajes de programación basados en texto se describen por gramáticas (BNF).texto se describen por gramáticas (BNF).
Los lenguajes de modelamiento como UML Los lenguajes de modelamiento como UML tienen, en general, una sintaxis gráfica que tienen, en general, una sintaxis gráfica que requiere otro tipo de descripciónrequiere otro tipo de descripción
MetamodeladoMetamodelado
Modelos, Lenguajes, Metamodelos y Metalenguajes
Un Un metamodelometamodelo es un modelo que define el lenguaje es un modelo que define el lenguajepara expresar un modelo.para expresar un modelo.
Un Un modelomodelo se expresa en un se expresa en un lenguaje.lenguaje.
Un Un lenguajelenguaje se define por un se define por un metamodelometamodelo..
Un Un metamodelometamodelo se expresa en un se expresa en un metalenguajemetalenguaje..
¿BNF es un metalenguaje?¿BNF es un metalenguaje?
Modelos, Lenguajes, Metamodelos y Metalenguajes
El metamodelo de un lenguaje es una descripción detodos 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 SQLCada elemento de un modelo es una instancia de una metaclaseen el metamodelo.Una clase define a sus objetos y una metaclase define a loselementos del modelo
Modelos, Lenguajes, Metamodelos y MetalenguajesMetamodelos basados en Metamodelos basados en
EntidadesEntidades RelacionesRelaciones SistemasSistemas
Modelos estáticos UMLModelos estáticos UML
ClasesClasesAsociaciones binariasAsociaciones binarias
Tipos de datosTipos de datosPackagePackage
Especificaciones OCLEspecificaciones OCL
Un ejemplo de metamodelo Un ejemplo de metamodelo UMLUML
Un ejemplo de metamodelo Un ejemplo de metamodelo UMLUML
context Packagecontext Packageself.class self.class --> forAll (e1,e2 / e1.name = e2.name implies e1 = e2)> forAll (e1,e2 / e1.name = e2.name implies e1 = e2)self.associationself.association-->forAll(a1,a2/ a1.name=a2.name implies a1=a2)>forAll(a1,a2/ a1.name=a2.name implies a1=a2)self.nestedPackagesself.nestedPackages-->>forAll(p1,p2 / p1.name = p2.name implies p1=p2)forAll(p1,p2 / p1.name = p2.name implies p1=p2)
context context AssociationEndAssociationEndsource = source = self.otherEnd.targetself.otherEnd.target and target = and target = otherEnd.sourceotherEnd.source
Ejemplo- Metamodelo SQL Ejemplo- Metamodelo SQL simplificado simplificado
Modelos, Lenguajes, Metamodelos y Metalenguajes
Un metalenguaje es un lenguaje y puede serUn metalenguaje es un lenguaje y puede serdefinido por un metamodelodefinido por un metamodelo
MetalenguajeMetalenguaje Meta-metamodelo Meta-metamodeloMeta-meta lenguaje Meta-meta- metamodeloMeta-meta lenguaje Meta-meta- metamodelo…………………… ………………………………………… ……………………..............(meta)(meta)i i metalenguaje (meta)metalenguaje (meta)ii metamodelo metamodelo
El estándar definido por OMG usa 4 nivelesEl estándar definido por OMG usa 4 niveles
Arquitectura de 4 nivelesArquitectura 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
Arquitectura de 4 niveles Arquitectura de 4 niveles
Arquitectura de 4 nivelesArquitectura de 4 niveles
Arquitectura de 4 nivelesArquitectura de 4 niveles
Arquitectura de 4 nivelesArquitectura de 4 niveles
Meta Object facility Meta Object facility (MOF)(MOF)
MOF captura la diversidad de estándares deMOF captura la diversidad de estándares de
modelamiento para integrar diferentes tipos demodelamiento para integrar diferentes tipos de
modelos y metadatos e intercambiarlos entremodelos y metadatos e intercambiarlos entre
diferentes herramientas.diferentes herramientas.
.
MOF
MOF usa un framework de modelamiento que esun subconjunto del núcleo de UML. Los 4construcciones 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.
MOF(Meta Object Facility)
Construcciones en MOF
Asociaciones
Association-end
Multiplicidades
Agregación
Agregación asociación
Agregación atributo
MOF(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.
MOF(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
MOF(Meta Object Facility)
Construcciones en MOFTipos de datos
Tipos primitivos Tipos constructoresPackages Generalización de packages Anidamiento de packages Importación de packages Clustering
MOF(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.
Arquitectura de 4 niveles y Arquitectura de 4 niveles y UML 1.xUML 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.
Especificación de UML 2.0
La especificación de UML 2.0 está organizada endos documentos:UML 2.0 InfrastructureDefine las construcciones de lenguaje fundacionalesrequeridas por UML 2.0. Es un núcleo de metalenguaje que puede ser reusado para definir otros metamodelos ymecanismos de extensión para UML UML 2.0 SuperstructureComplementa a UML 2.0 Infrastructure. Define construcciones anivel de usuario requeridas por UML 2.0
Especificación de UML 2.0
La infraestructura de UML se define enInfrastructure Library: Define un núcleo de metalenguaje que puede ser
reusado para definir variedad de metamodelos, como MOF, UML, CWM.
Especificación de UML Especificación de UML 2.02.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.
UML 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
UML 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.
UML 2.0 SuperstructureUML 2.0 SuperstructurePackagePackage
El metamodelo de UMLEl metamodelo de UML Packages - Estructura Packages - Estructura
El metamodelo de UMLEl metamodelo de UML Packages - Classes Packages - Classes
El metamodelo de UMLEl metamodelo de UML Package-Kernel-Root Package-Kernel-Root
DiagramDiagram
El metamodelo de UMLEl metamodelo de UML Package-Kernel-Root Package-Kernel-Root
DiagramDiagram
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
Una operación es un Una operación es un featurefeature de de comportamientocomportamiento
que especifica nombre, parámetros y que especifica nombre, parámetros y constraintsconstraints
para invocar un comportamiento para invocar un comportamiento asociado.asociado.
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UML El metamodelo de UML Kernel-OperacionesKernel-Operaciones
El metamodelo de UMLEl metamodelo de UMLKernel-Diagrama de Kernel-Diagrama de
multiplicidadesmultiplicidades
El metamodelo de UMLEl metamodelo de UMLKernel-Diagrama de Kernel-Diagrama de
multiplicidadesmultiplicidades
Metamodelo OCLMetamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
Las reglas que especifican si un tipo conforma aLas reglas que especifican si un tipo conforma a
otro son especificadas en OCL.otro son especificadas en OCL.
La operación La operación conformsTo(c:Classifier):BooleanconformsTo(c:Classifier):Boolean,,
evalúa True si self conforam a c. evalúa True si self conforam a c.
Reglas para tipos individualesReglas para tipos individuales
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
El metamodelo OCLEl metamodelo OCLKernelKernel
La relación entre los La relación entre los metamodelos de UML y OCLmetamodelos de UML y OCLUna expresión OCL en los Una expresión OCL en los
metamodelosmetamodelos
referencia a elementos de un modelo referencia a elementos de un modelo UML.UML.
Los elementos referenciados son Los elementos referenciados son instancias deinstancias de
metaclasesmetaclases
La relación entre los La relación entre los metamodelos de UML y OCLmetamodelos de UML y OCL
La relación entre los La relación entre los metamodelos de UML y OCLmetamodelos de UML y OCL