Download - Metamodelo UML
Folie 1
01.04.16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java
01/04/16
Using UML, Patterns, and Java
Object-Oriented Software Engineering
01/04/16
mtkinley_sketch.tiff 0012F214Macintosh HD B7C803F1:Captulo
2,
Modelando con UML,
Parte 4
Metamodelo UML 2
Resumen de la Sesin
De instancias de modelos a metamodelos
Jerarqua del metamodelo MOF
Cmo se relacionan UML y MOF
Ejemplo: Metamodelo del diagrama de caso de uso
Ejemplo: Metamodelo del diagrama de clases
Diferentes notaciones del metamodelo UML describen el mismo lenguaje
Perfiles UML (UML Profiles): Agregando nuevos miembros a la familia
Object model: What is the structure of the system? What are the objects and how are they related?Functional model: What are the functions of the system? How is data flowing through the system?Dynamic model: How does the system react to external events? How is the event flow in the system ?
De Instancias de Modelos a Metamodelos
Relacin cannica modelo-instancia:
aPerson es una instancia de la clase Person.
As que la clase Person es un modelo para aPerson.
Podemos generalizar esta relacin?
Cul es el modelo para la clase Person?
instances1.emf
De Instancias de Modelos a Metamodelos
Relacin cannica modelo-instancia:
La instancia aPerson y la clase Person estn en diferentes niveles de abstraccin
La clase Person especifica rasgos que caracterizan la estructura y comportamiento de las personas
El modelo para la clase Person debe caracterizar la estructura y comportamiento de las clases
instances1.emf
instances2.emfDe Instancias de Modelos a Metamodelos
Relacin entre modelo y metamodelo:
La metaclase Class es un modelo para la clase Person
Dado que Person es un modelo (para la instancia aPerson), Class es un metamodelo (un modelo de modelos)
instances1.emfNote for instructors: Do not change this slide. The blue box is out of the viewing area, but when animated it will appear correctly.
De Instancias de Modelos a Metamodelos
Al principio puede ser confuso, as que:
Pensemos acerca de los diferentes niveles de abstraccin:Las instancias son concretas
Los modelos son descripciones abstractas de las instancias
Los metamodelos son una descripcin abstracta de los modelos
(no abstraction)
Metamodelos
Para qu los necesitamos?
Los metamodelos se pueden utilizar, por ejemplo, para la formalizacin de las notaciones UML:Como UML es un Lenguaje, los metamodelos se usan para describir su gramtica
El metamodelo UML describe todos los modelos que se pueden crear usando UML
El metamodelo permite hablar acerca de la semntica
Metamodelos
Est bien, los metamodelos son buenos, pero cmo se crea un metamodelo?
Para abordar este problema, primero revisaremos la historia del metamodelo de UML
La historia del Metamodelo de UML
UML 1.0 tuvo muchos problemas semnticos
OMG trat de lidiar con esos problemas formalizando el lenguaje
Idea: Usar metamodelado!
OMG se dio cuenta que todo lo que se necesitaba para describir metamodelos era usar un subconjunto de los elementos del diagrama de clases UML
Idea: Para describir cualquier metamodelo, puede emplearse la propia notacin de los diagramas de clase UML!
In practice there exist different meta models
Meta Object Facility (MOF)
En UML 2, OMG introdujo MOF para crear un enfoque comn al metamodelado
Un metamodelo definido usando MOF se dice que cumple con MOF.
Ventajas de los Metamodelos que cumplen con MOF
Pueden compararse fcilmente
Los modelos que cumplen con MOF pueden intercambiarse de forma estandarizada
Intercambio de metadatos XML
Las instancias que cumplen con MOF pueden vivir en un mismo repositorio de metadatos (data warehousing)
Meta Object Facility (MOF)
Hemos visto el uso de la secuencia de modelado
instancia modelo metamodelo meta-metamodelo
Esta secuencia puede continuarse indefinidamente, pero cuatro modelos son suficientes para la mayora de los propsitos de modelado.
MOF define una jerarqua de metamodelado de cuatro capas
Capa M3: Capa de meta-metamodelado (El modelo MOF)
Capa M2: Capa de metamodelado (El meta modelo UML)
Capa M1: Capa de modelado (El modelo UML)
Capa M0: Capa de informacin (La Aplicacin)
MOF y UML estn alineados
La infraestructura UML contiene todos los conceptos necesarios para la especificacin de UML y MOF.
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpgCapa M2: meta modelo UML
Modela el lenguaje UML, i.e., define conceptos como clases, atributos, asociaciones
La capa M2 contiene descripciones de elementos que pueden usarse para describir los modelos de la capa de modelo
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpgCapa M1: modelo UMLAl usar cualquier diagrama UML, instanciamos el metamodelo UML y obtenemos un modelo UML La capa M1 contiene modelos especficos para cada aplicacin
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpgCapa M0: Instancias a tiempo de ejecucin
Instancias reales de los modelos
La capa M0 contiene instancias concretas a tiempo de ejecucin
Note la diferencia entre especificacin de instancia e instancia real!
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpgCapa M3: modelo MOF
El metamodelo UML es una instancia de un modelo an ms abstracto, llamado el modelo MOF
M3 : M2 M2 : M1
La capa M3 contiene meta-metamodelos
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpg
Jerarqua del Metamodelo de MOF
(especfico para UML)
MOF1.jpgRecuerde que UML slo es una posibilidad de modelar con MOF
Observamos una jerarqua especfica de UML
MOF describe metamodelos en general
Dnde estamos?
De instancias de modelos a metamodelos
Jerarqua del metamodelo MOF
Cmo se relaciona UML con MOF
Ejemplo: Metamodelo del diagrama de caso de uso
Ejemplo: Metamodelo del diagrama de clases
Diferentes notaciones para el metamodelo UML describen el mismo lenguaje
Perfiles UML: Agregar nuevos miembros a la familia
Object model: What is the structure of the system? What are the objects and how are they related?Functional model: What are the functions of the system? How is data flowing through the system?Dynamic model: How does the system react to external events? How is the event flow in the system ?
Cmo se relaciona UML con MOF
UML cumple con MOF:
El metamodelo de UML es una instancia del modelo MOF
Veamos el metamodelo de UML en accin!
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Caso de Uso (simplificado)
*
*
*
1
*
1
1
1
*
*
1
*
*
1..*
0..1
0..1
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf
0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf
0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf
0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf0..1
*
0..1
*
0..1
*
0..1
2..*
Metamodelo del Diagrama de Clases (simplificado)
Metamodel_ClassDiagram.pdf
0..1
*
0..1
*
0..1
*
0..1
2..*
Notaciones para el Metamodelo UML
El metamodelo UML define un lenguaje para especificar modelos UML
La notacin usada para diagramar modelos UML proporciona constructos grficos para representar instancias de los elementos del metamodelo
(La figura sticky man representa a un Actor)
La notacin es una funcin que transforma los elementos del metamodelo en elementos del modelo
(uml-notation(Actor) = )
Perfiles UML
Consisten en estereotipos, valores etiquetados y restricciones
Personalizan los modelos UML para plataformas y dominios particulares
Se le aplican a los elementos del metamodelo UML (M2)!
Los desarrollan fabricantes u organizaciones de estandarizacin (CORBA, .NET)
Aplicando los perfiles UML
Al aplicar un perfil UML, nosotros
Aplicamos estereotipos a metaclases
Obtenemos una comprensin ms profunda del modelo
Reducimos la cantidad de modelos vlidos (vase la siguiente diapositiva).
Perfiles UML
Todos los modelos (MOF)
Modelos UML
Modelos
CORBA(perfil)
Modelos
SysML
Modelos
.NET(perfil)
Lecturas Adicionales
La especificacin MOF actual
http://www.omg.org/technology/documents/modeling_spec_catalog.htm#MOF
RSS Feed:
feed://www.omg.org/mof/rss/index.xml