Title: Chapter 2, Modeling with UML: UML 2 Metamodel
1Chapter 2,Modeling with UMLUML 2 Metamodel
Note to Instructor The material in this slide
set is not contained in the 3rd edition of the
text book. It is planned for the 4th edition.
2Outline for today
- From model instances to meta models
- MOF meta model hierarchy
- How UML relates to MOF
- Example Use case diagram meta model
- Example Class diagram meta model
- Different notations for the UML meta model
describe the same language - UML Profiles Adding new members to the family
3From Model Instances to Meta Models
- Canonical model-instance-relationship
- aPerson is an instance of the class Person
- Thus the class Person is a model for aPerson
- And aPerson is a model (an abstraction) of a real
person
- Can we generalize this idea?
- ? What is the model for the class Person?
4From Model Instances to Meta Models
- Canonical model-instance-relationship
- The instance aPerson and the class Person are on
different levels of abstraction - The class Person specifies features that
characterize the structure and behavior of
Persons - ? The model for the class Person must
characterize the structure and behavior of classes
5From Model Instances to Meta Models
- Relationship between model and meta-model
- The meta class Class is a model for the class
Person - Since Person is a model (for the instance
aPerson), Class is a meta model (model for
models)
6From Model Instances to Meta Models
- At first this might be confusing, so
- Think about the different layers of abstraction
- Instances are concrete
- Models are an abstract description of the
instances - Meta models are an abstract description of models
- Meta-meta models are an abstract description of
meta models.
7Meta Where does the word come from?
- The word comes from the Greek µet? (metá,
"after") - An editor in the first century assembled
Aristotles work - In the bookshelf, it was the book that came
after physics (meta physiká) - Aristotle did not use the term metaphysics,
instead he called these topics "first
philosophy. - A core topic of the metaphysics book is ontology
- Ontology The philosophical study of nature. The
investigation of what types of things exist in
the world and what relations these things have to
each other.
8Questions in Ontology
Source http//en.wikipedia.org/wiki/Ontology
- What is existence?
- Is existence a property?
- Which entities, if any, are fundamental?
- How do the properties of an object relate to the
object itself? - What features are the essential, as opposed to
merely accidental, attributes of a given object? - How many levels of existence or ontological
levels are there? - What is a physical object?
- Can one give an account of what it means to say
that a physical object exists? - Can one give an account of what it means to say
that a non-physical entity exists? - What constitutes the identity of an object?
- When does an object go out of existence, as
opposed to merely changing?
9Another Branch from Philosophy Epistomology
- Epistomology
- Analysis of the nature of knowledge and how it
relates to truth - What do people know?
- How do we know what we know?
- Also deals with the tools for the production of
knowledge - In computer science and project management, we
call it knowledge management - What is knowledge?
- How is knowledge acquired?
- How is knowledge externalized?
- .
10A Taxonomy of Philosophy (UML Class Diagram)
Philosophy
Metaphysics
Epistomology
Ethics
11Meta Models
- Why do we need them?
- Meta models can be used for instance to formalize
UML notations - The UML is a Language, meta models are used to
describe the grammar - The UML meta model describes all models one can
create using UML - The meta model allows to talk about semantics.
12Meta Models
- OK, so meta models are cool, but how do I create
a meta model? - To approach this problem, we will look at the
history of UMLs meta model first.
13The History of UMLs Meta Model
- UML 1.0 had a lot of semantic problems
- The OMG tried to deal with these problems by
formalizing the language - Idea Use meta modeling!
- The OMG realized that all that was needed to
describe meta models was to use a subset of UML
class diagram elements - Insight To describe any meta model, the UML
class diagram notation itself can be used!
14Meta Object Facility (MOF)
- In UML 2, the OMG introduced the Meta Object
Facility to create a common basis for meta
modeling - MOF specification http//www.omg.org/mof/
- The specification describes how models can be
- exported from an application
- imported into another model
- transported across a network
- stored and retrieved from a repository
- rendered into different formats
- used to generate application code
15Advantages of MOF Compliant Meta Models
- MOF compliant models can easily be compared
- MOF compliant models can be exchanged in a
standardized way - XMI (XML Metadata Interchange)
- OMG's XML-based standard format for model
transmission and storage - MOF compliant instances can live in the same
metadata repository (data warehousing)
16The Meta Object Facility (MOF)
- We have seen this modeling sequence
- instance ? model ? meta model
- This sequence could be continued forever
- 4 models seem to be enough for most modeling
problems - MOF defines a four-layer meta model hierarchy
- Layer M0 Information layer (The Application)
- Layer M1 Model layer (The UML model)
- Layer M2 Meta model layer (The UML meta model)
- Layer M3 Meta-meta model layer (The MOF model)
- MOF and UML are aligned
- The UML infrastructure contains all the concepts
needed for the specification of UML and MOF - But MOF is not restricted to UML
- Any meta model which is defined by using MOF is
called MOF compliant.
17Meta model hierarchy of the MOF (UML-specific)
- Layer M0 Run-time Instances
- Real instances of the models
- Layer M0 contains concrete run-time instances
- Note that there is a difference between real
instance and instance specification!
18Meta model hierarchy of the MOF (UML-specific)
Layer M1 UML-model By using any UML diagram, we
instantiate the UML meta model from Layer 2 and
obtain a UML model ? Layer M1 contains
application-specific models
19Meta model hierarchy of the MOF (UML-specific)
- Layer M2 UML meta model
- Models the language UML, i.e., defines concepts
like classes, attributes, associations - ? Layer M2 contains descriptions of elements that
are used to describe the models on the model layer
20Meta model Hierarchy of the MOF (UML-specific)
21Meta model hierarchy of the MOF (UML-specific)
- Layer M3 MOF model
- The UML meta model is an instance of a yet more
abstract model, namely the MOF model - M3 M2 M2 M1
- ? Layer M3 contains meta-meta models
22Meta model hierarchy of the MOF (UML-specific)
- Remember that UML is only one possibility of
modeling with MOF - We looked at a UML-specific hierarchy
- MOF describes meta models in general
23Where are we?
- From model instances to meta models
- MOF meta model hierarchy
- How UML relates to MOF
- Example Use case diagram meta model
- Example Class diagram meta model
- Different notations for the UML meta model
describe the same language - UML Profiles Adding new members to the family
24How UML relates to MOF
- UML is MOF-compliant
- The UML meta model is an instance of the MOF
model - Lets see the UML meta model in action!
25Use Case Diagram Meta Model
UML Model for Use Cases (Layer M1)
UML Meta Model (Layer M2) (Simplified)
1
1
1..
1
1
1
0..1
0..1
26Class Diagram Meta Model (simplified)
0..1
0..1
0..1
2..
0..1
27Notations for the UML Meta Model
- The UML meta model defines a language for
specifying UML models - The notation used to depict UML models provides
graphical icons representing instances of meta
model elements - (Sticky figure represents an Actor)
- The notation is a mapping from meta model
elements to model elements - (uml-notation(Actor) )
28UML Profiles
- A lightweight extension mechanism for UML
- Concepts partially present in earlier versions
- Stereotypes
- Tagged Values
- Established as a specific meta-modeling technique
in UML 2.0 - Contains mechanisms that allow meta classes from
existing meta models to be extended - ability to tailor the UML meta model for
different platforms or domains - consistent with the OMG Meta Object Facility
(MOF).
29UML Profiles
- Consist of stereotypes, tagged values and
constraints - Customize UML models for particular domains or
platforms - Are applied to elements of the UML meta model (M2
Layer) - Are developed by manufacturers or standardization
organizations (CORBA, .NET)
30Applying a Stereotype
- The attributes of a stereotype are called tagged
values - Applying a stereotype to an instance of a meta
class means instantiating the stereotype - If the stereotype has attributes, you have to
provide values for them - Confused? See following slide
31Applying a Sterotype (ctd)
32Applying UML Profiles
- By applying a UML profile, we
- Apply stereotypes to meta classes
- Get a deeper understanding for the model
- Narrow the amount of valid models.
33UML Profiles
All models (MOF)
UML models
CORBA models (profile)
.NET models (profile)
U2TP (profile)
34SysML (Systems Modeling Language)
- SysML is a general-purpose modeling language for
systems engineering applications - Supports the specification, analysis, design,
verification and validation of systems and
systems of systems. - Proposed in 2001 to improve the specification of
functional and nonfunctional requirements - Use Cases allow the specification of requirements
only on a very high level. - Defined as a UML profile
- SysML has two new diagrams (requirements diagrams
and parametric diagrams) in addition to the
existing UML diagrams
35Requirements Diagram
- A SysML requirements diagram is a graphical
notation that describes the requirements of a
system in a graphical notation
- Requirements can be linked to other requirements
- Requirement elements can also be linked to Use
Cases and Components that realize the
requirements (enabling traceability of
requirements).
36Additional Information
- MOF Home Page
- http//www.omg.org/mof/
- MOF Specification, Current Version 2.0
- http//www.omg.org/technology/documents/modeling_s
pec_catalog.htmMOF - RSS Feed
- feed//www.omg.org/mof/rss/index.xml