Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.

Similar presentations


Presentation on theme: "Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this."— Presentation transcript:

1 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.

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

3 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: 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?

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

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

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

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

8 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 Questions in 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? Source: http://en.wikipedia.org/wiki/Ontology

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25 Use Case Diagram Meta Model * > * * 1 * 1 11 * * 1 * * 1..* 0..1 UML Meta Model (Layer M2) (Simplified) UML Model for Use Cases (Layer M1)

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

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

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

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

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

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

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

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

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

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

36 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 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 http://www.omg.org/technology/documents/modeling_ spec_catalog.htm#MOF RSS Feed: feed://www.omg.org/mof/rss/index.xml


Download ppt "Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this."

Similar presentations


Ads by Google