Using UML Patterns and Java ObjectOriented Software Engineering

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this slide set is not contained in the 3 rd edition of the text book. It is planned for the 4 th edition.

Outline 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

From Model Instances to Meta Models Canonical model-instance-relationship: a. Person is an instance of the class Person • Thus the class Person is a model for a. Person • And a. Person is a model (an abstraction) of a real person Can we generalize this idea? What is the model for the class Person? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

From Model Instances to Meta Models Canonical model-instance-relationship: • The instance a. Person 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

From 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 a. Person), Class is a meta model (model for models) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

From 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…. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Meta: Where does the word come from? • The word comes from the Greek μετά (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. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Questions 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 nonphysical entity exists? What constitutes the identity of an object? When does an object go out of existence, as opposed to merely changing? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Another Branch from Philosophy: 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? …. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

A Taxonomy of Philosophy (UML Class Diagram) Philosophy Metaphysics Bernd Bruegge & Allen H. Dutoit Epistomology Object-Oriented Software Engineering: Using UML, Patterns, and Java Ethics 10

Meta 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. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Meta 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 UML’s meta model first. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

The History of UML’s 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! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Meta 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14 14

Advantages 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) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

The 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 M 0: M 1: M 2: M 3: Information layer (The Application) Model layer (The UML model) Meta model layer (The UML meta model) 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. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

�Layer M 0: Run-time Instances Meta model hierarchy of the (UML-specific) • Real instances of MOF the models Layer M 0 contains concrete run-time instances • Note that there is a difference between real instance and instance specification! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Layer M 1: UML-model Meta model hierarchy of UML the diagram, MOF (UML-specific) By using any we instantiate the UML meta model from Layer 2 and obtain a UML model Layer M 1 contains application-specific models Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

Layer M 2: UML meta model Meta model hierarchy oflanguage the MOF (UML-specific) • Models the UML, i. e. , defines concepts like classes, attributes, associations Layer M 2 contains descriptions of elements that are used to describe the models on the model layer Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Meta model Hierarchy of the MOF (UML-specific) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Meta model hierarchy of the MOF (UML-specific) Layer M 3: MOF model • The UML meta model is an instance of a yet more abstract model, namely the MOF model • M 3 : M 2 ≈ M 2 : M 1 Bernd Bruegge & Allen H. Dutoit Object-Oriented Engineering: meta-meta Using UML, Patterns, and models Java Layer M 3 Software contains 21

Meta 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Where 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 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

How UML relates to MOF • UML is MOF-compliant: The UML meta model is an instance of the MOF model • Let’s see the UML meta model in action! Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Use Case Diagram Meta Model UML Model for Use Cases (Layer M 1) UML Meta Model (Layer M 2) (Simplified) <<instance. Of>> * 1. . * <<instance. Of>> <<Include>> 0. . 1 * 1 1 * * 1 * 0. . 1 * * <<instance. Of>> <<Extend>> Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Class Diagram Meta Model (simplified) * 0. . 1 * 2. . * 0. . 1 * <<instance. Of>> Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Notations 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) = Bernd Bruegge & Allen H. Dutoit “) Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

UML 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). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

UML 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 (M 2 Layer) • Are developed by manufacturers or standardization organizations (CORBA, . NET) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29 29

Applying 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… Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Applying a Sterotype (ctd) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

Applying 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. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

UML Profiles All models (MOF) UML models. NET models (profile) CORBA models (profile) U 2 TP (profile) Sys. ML models Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Sys. ML (Systems Modeling Language) • Sys. ML 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 • Sys. ML has two new diagrams (requirements diagrams and parametric diagrams) in addition to the existing UML diagrams Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Requirements Diagram • A Sys. ML 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). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Additional Information • MOF Home Page • http: //www. omg. org/mof/ • MOF Specification, Current Version 2. 0 • http: //www. omg. org/technology/documents/modeling_ spec_catalog. htm#MOF • RSS Feed: • feed: //www. omg. org/mof/rss/index. xml Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36
- Slides: 36