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

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
A Road Map of the New Project on “Framework for Registering Business Objects” Hajime Horiuchi ISO/IEC JTC1 SC32 Japan, Tokyo International University SC32WG2-SEL-009.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Common Mechanisms in UML
SysML: A Modeling Language for Systems of Systems
Object-Oriented Analysis and Design
Introduction To System Analysis and design
SEG4110 – Advanced Software Design and Reengineering
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to MDA (Model Driven Architecture) CYT.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Specializing and extending the UML
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
UML Profiles Eclipse ECESIS Project The UML Profile technology SOFTEAM 144 Ave des Champs Elysées Paris, France
1 Devon M. Simmonds Metadata & The UML Metamodel SLIDES include some from tvarious sources including: (1)
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Selected Topics in Software Engineering - Distributed Software Development.
Chapter 2, Modeling with UML, Part 3 UML 2 Hightlights
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)
A language to describe software texture in abstract design models and implementation.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 2, Modeling with UML: UML 2 Hightlights
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
XASTRO Metamodel. CCSDS SAWG2 Presentation Outline XASTRO-1 Metamodel XASTRO-2 Metamodel Alignment with Model Driven Architecture.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
1 Use Cases Object-Oriented Modeling and Design with UML (Second Edition) Blaha & Rumbaugh Sections 7.1, 8.1.
Language = Syntax + Semantics + Vocabulary
SysML v2 Formalism: Requirements & Benefits
Syntactic Requirements
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
Introduction to UML.
UML profiles.
Software Architecture & Design
Presentation transcript:

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.

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

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?

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

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)

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

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.

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:

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? ….

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

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.

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.

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!

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

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)

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.

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!

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

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

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

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

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

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

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!

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)

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

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) = “)

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

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

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…

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

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.

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)

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

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

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 Additional Information MOF Home Page MOF Specification, Current Version spec_catalog.htm#MOF spec_catalog.htm#MOF RSS Feed: feed://