SEG4110 – Advanced Software Design and Reengineering TOPIC D Metamodelling.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

UML an overview.
UML (cont.) “The Unified Modeling Language User Guide” by G. Booch, J. Rumbaugh and I. Jacobson ● Classes ● Relationships ● Class diagrams ● Examples.
1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Stereotypes Stereotypes provide the capability to create a new kind of modeling element. –They can be used to classify or mark modeling elements. –A type.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
1 Devon M. Simmonds The UML Metamodel SLIDES include some from tvarious sources including: (1)
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
UML – Class Diagrams.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Databases Illuminated Chapter 7 The Object-Oriented Model.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
Unified Modeling Language
UML Diagrams Computer Science I.
Ontologies Reasoning Components Agents Simulations Agent Modeling Language: Behavioral Models Rafael Oliveira Ricson Santana Vinícius Remigo Jacques Robin.
SEG4110 – Advanced Software Design and Reengineering
Page 1 What is the UML? UML stands for Unified Modeling Language The UML combines the best of the best from – Data Modeling concepts (Entity Relationship.
Introduction to MDA (Model Driven Architecture) CYT.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
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.
1 Devon M. Simmonds Metadata & The UML Metamodel SLIDES include some from tvarious sources including: (1)
UML Formalization: A Position Paper Kenneth BaclawskiNortheastern University Scott DeLoachAFIT Mieczyslaw KokarNortheastern University Jeffrey SmithNortheastern.
Ontologies Reasoning Components Agents Simulations Structural Modeling with UML2 Jacques Robin.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 03. Classes,
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
An Introduction to the Unified Modeling Language
BCS 2143 Object Oriented Design Using UML. Objectives Objects Interactions Finding Classes Relationship Between Classes Attribute and Operation Class.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
Ontologies Reasoning Components Agents Simulations Architectural Modeling with UML2 Composite Structures and Components Jacques Robin.
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
All Presentation Material Copyright Eurostep Group AB ® A Meta-model of EXPRESS in UML for MOF and UML to EXPRESS David Price April 2002.
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.
Object Modeling THETOPPERSWAY.COM. Object Modelling Technique(OMT)  Building a model of an application domain and then adding implementation.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
UML (Unified Modeling Language)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
The Movement To Objects
Course Outcomes of Object Oriented Modeling Design (17630,C604)
SysML v2 Formalism: Requirements & Benefits
Systems Analysis and Design With UML 2
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Systems Analysis and Design With UML 2
Software Architecture & Design Pattern
Object Oriented Analysis and Design
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
Object-Oriented Knowledge Representation
Appendix A Object-Oriented Analysis and Design
Class Diagrams.
Appendix A Object-Oriented Analysis and Design
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

SEG4110 – Advanced Software Design and Reengineering TOPIC D Metamodelling

SEG Topic D - Metamodelling2 What is a Meta-metamodel? A metamodel describes information about models A meta-metamodel describes information about metamodels Metamodels that are defined using the same meta- metamodel -Can exchange information -Can be used by the same CASE tools that understand the meta-metamodel

SEG Topic D - Metamodelling3 What is MOF? MOF stands for Meta Object Facility enables meta-metamodeling of UML level metamodels It defines a small set of concepts (such as package, class, method, attribute…) that -allow one to define and manipulate models of metadata (data about data) -are described using a subset UML notation

SEG Topic D - Metamodelling4 OMG 4-Layer Architecture

SEG Topic D - Metamodelling5 OMG 4-Layer Architecture (Cont.)

SEG Topic D - Metamodelling6 MOF Model

SEG Topic D - Metamodelling7 MOF Key Abstract Classes

SEG Topic D - Metamodelling8 MOF Key Abstract Classes (Cont.) ModelElement common base Class of all M3-level Classes. Every ModelElement has a name Namespace base Class for all M3-level Classes that need to act as containers GeneralizableElement base Class for all M3-level Classes that support generalization (i.e. inheritance) TypedElement base Class for M3-level Classes such as Attribute, Parameter, and Constant whose definition requires a type specification Classifier base Class for all M3-level Classes that (notionally) define types. Examples of Classifier include Class and DataType

SEG Topic D - Metamodelling9 The MOF Model: Main Concrete Classes The key concrete classes (or meta-metaclasses) of MOF are as follows: -Class -Association -Exception (for defining abnormal behaviours) -Attribute -Constant -Constraint

SEG Topic D - Metamodelling10 The MOF Model: Key associations Contains: relates a ModelElement to the Namespace that contains it Generalizes: relates a GeneralizableElement to its ancestors (superclass and subclass) IsOfType: relates a TypedElement to the Classifier that defines its type -An object is an instance of a class DependsOn : relates a ModelElement to others that its definition depends on -E.g. a package depends on another package

SEG Topic D - Metamodelling11 UML Meta Model Metaclasses used in class, package, component and deployment diagrams

SEG Topic D - Metamodelling12 Model Elements An element is an atomic constituent of a model. Element is the top metaclass in the metaclass hierarchy A model element is a named entity in a Model It is the base for all modeling metaclasses in UML -All other modeling metaclasses are either direct or indirect subclasses of ModelElement ModelElement name Element

SEG Topic D - Metamodelling13 owner {ordered} Method body Operation isAbstract Attribute initialValue specification ***** * Feature visibility BehaviouralFeature StructuralFeature multiplicity Classifier * Features Feature is an abstract class that declares a behavioral or structural property of -an instance of a Classifier -the Classifier itself A behavioral feature refers to a dynamic feature of a model element -E.g. operation or method A structural feature refers to a static feature of a model element -E.g. attribute

SEG Topic D - Metamodelling14 A classifier is an element that describes behavioral and structural features -E.g. class, data type, interface, component Classifier is an abstract class that -declares a collection of Features, such as Attributes, Methods… -has a name, which is unique in the Namespace enclosing the Classifier Classifier Component Structure 1..* EnumerationLiteral ProgrammingLanguageTypeEnumerationPrimitive Subsystem DataType Interface deploymmentLocation * resident * ClassNode Classifier {ordered} Feature visibility * Namespace

SEG Topic D - Metamodelling15 Classifier (cont.) * 1..* * Object Parameter defaultValue kind Instance GeneralizableElement isRoot isLeaf isAbstract owner {ordered} participant * specification * AssociationEnd isNavigable aggregation multiplicity * type Feature visibility Classifier * type Namespace A classifier defines a namespace and is a generalizable element Can have -association ends -parameters -instances

SEG Topic D - Metamodelling16 AssociationClass Class Association Generalization discriminator Relationship Relationships A relationship is a connection among model elements UML defines several relationships such as: -Association -Generalization UML defines other types of relationships that are not shown in this diagram, such as: -Dependency -Flow

SEG Topic D - Metamodelling17 Namespace 0..1 ownedElement Namespace GeneralizableElement isRoot isLeaf isAbstract Package Model Subsystem Classifier ModelElement name * importedElement * * A namespace is a part of a model that contains a set of other model elements -E.g. Associations and Classifiers -the name of an owned model element is unique within the namespace Namespace is an abstract metaclass and it subclasses are -Classifier -Package

SEG Topic D - Metamodelling18 Data Types 1..* EnumerationLiteral ProgrammingLanguageTypeEnumeration Primitive DataType UML Data types include -primitive built-in types (such as integer and string) -definable enumeration types (such as Boolean whose literals are false and true) Programming languages data types -are specified according to the semantics of a particular programming language -are not portable among languages (except by agreement among the languages) -do not map into other UML classifiers Enumerations are a user-defined data types whose instances are literals (specified by the user)

SEG Topic D - Metamodelling19 Mapping of UML Models to Metamodel Elements (Example) CustomerAccount accountNumber balance overdraftLimit CreditCard expiryDate * 1..2 withdraw deposit SavingChequing BankSystem Generalization discriminator Relationship Association Relationship AssociationEnd isNavigable aggregation multiplicity Class Classifier Namespace Package Attribute initialValue StructuralFeature multiplicity Method BehaviouralFeature

SEG Topic D - Metamodelling20 Use Case Diagrams Metamodel

SEG Topic D - Metamodelling21 Mapping Use Cases Model to Metamodel Generalization discriminator Relationship Include Relationship Actor Classifier UseCase Classifier Extend Relationship Open file by typing name Open file by browsing Open file System Administrator Browse for file Ordinary User Attempt to open file that does not exist «extend» «include»

SEG Topic D - Metamodelling22 State Machines (Main Metamodel)

SEG Topic D - Metamodelling23 Mapping State Machines to Metamodel SimpleState State PseudoState StateVertex Event Transition 0..1 * Enter / run motor forwards Enter / run motor in reverse Enter / stop motor Enter / stop motor openingCompleted closingCompleted pressButton Closing Open OpeningClosed Procedure State 0..1+entry 0..1

SEG Topic D - Metamodelling24 Extension Mechanisms Metamodel

SEG Topic D - Metamodelling25 Example LinearShape startPoint: Point 1..* edge LineSegment Path LinePolygon RegularPolygon endPoint: Point {startPoint <> endPoint} {ordered} {edge->size=1} {edge->forAll(e1,e2 | e1.length = e2.length)} length : int length {length = edge.length->sum} {edge->first.startPoint = edge->last.endPoint} Stereotype GeneralizableElement Constraint