Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial...
Transcript of Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial...
![Page 1: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/1.jpg)
Advanced Modeling
Karin Palmkvist, Bran Selic, and Jos Warmer
UML Revision Task ForceNovember 2000
© 1999-2000 OMG and Tutorial Contributors: EDS, IBM, Enea Data, InLine Software,IntelliCorp, Kabira Technologies, Klasse Objecten, ObjectTime Ltd., Rational Software, Unisys
Object Modeling with OMG UML Tutorial Series
![Page 2: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/2.jpg)
Advanced Modeling with UML 2
Overview
! Tutorial series! UML Overview! Advanced Modeling
! Part 1: Model Management! Karin Palmkvist, Enea Data
! Part 2: Extension Mechanisms and Profiles! Bran Selic, Rational Software
! Part 3: Object Constraint Language (OCL)! Jos Warmer, Klasse Objecten
![Page 3: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/3.jpg)
Advanced Modeling with UML 3
Tutorial Series! Lecture 1: Introduction to UML:
Structural Modeling and Use Cases! Lecture 2: Behavioral Modeling with
UML! Lecture 3: Advanced Modeling with UML! Lecture 4: Metadata Integration with
UML, MOF and XMI
![Page 4: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/4.jpg)
Advanced Modeling with UML 4
Tutorial Focus: the Language
! language = syntax + semantics! syntax = language elements (e.g. words) are
assembled into expressions (e.g. phrases, clauses)! semantics = the meanings of the syntactic
expressions
! UML Notation Guide – defines UML’s graphic syntax
! UML Semantics – defines UML’s semantics
![Page 5: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/5.jpg)
Advanced Modeling with UML 5
«metamodel»UML
UML Overview
Foundation
Model Management
Behavioral Elements
dependency
package
![Page 6: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/6.jpg)
Advanced Modeling with UML 6
Foundation
Model Management
Behavioral Elements
UML Overview
CoreExtension Mechanisms
Data Types
![Page 7: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/7.jpg)
Advanced Modeling with UML 7
Behavioral Elements
Model Management
Foundation
UML Overview
Use Cases State Machines Activity GraphsCollaborations
Common Behavior
![Page 8: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/8.jpg)
Advanced Modeling with UML 8
Advanced Modeling with UML
! Part 1: Model Management! Part 2: Extension Mechanisms and Profiles! Part 3: Object Constraint Language (OCL)
![Page 9: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/9.jpg)
Advanced Modeling with UML 9
UML Overview
Use Cases State Machines Activity Graphs
Behavioral Elements
Model Management
Foundation
Collaborations
Common Behavior
![Page 10: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/10.jpg)
Advanced Modeling with UML 10
Model Management Overview
! Package! Subsystem! Model
![Page 11: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/11.jpg)
Advanced Modeling with UML 11
Unifying Concepts
! Grouping - Packages, Subsystems, and Models all group other model elements, although with very differing purposes
! Other grouping elements include Classes and Components
![Page 12: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/12.jpg)
Advanced Modeling with UML 12
Package
! What are Packages?! Core Concepts! Diagram Tour! When to Use Packages! Modeling Tips
![Page 13: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/13.jpg)
Advanced Modeling with UML 13
Package
A package is a grouping of model elements
![Page 14: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/14.jpg)
Advanced Modeling with UML 14
Package – Example
OrderCustomer
Location Item
Stock Item Order Item
Sales
Warehouse
![Page 15: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/15.jpg)
Advanced Modeling with UML 15
Package
! A package can contain model elements of different kinds
! In particular, there can be a containment hierarchy of nested packages
! A package defines a namespace for its contents
! Packages can be used for different purposes
![Page 16: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/16.jpg)
Advanced Modeling with UML 16
Core ConceptsConstruct Description Syntax
Access
Import A dependency indicating that the public contents of the target package are added to the namespace of the source package.
«import»
A dependency indicating that the public contents of the target package are available in the namespace of the source package.
«access»
Package A grouping of model elements.Name
![Page 17: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/17.jpg)
Advanced Modeling with UML 17
Visibility
! A public element is visible to elements outside the package, denoted by ‘+’
! A protected element is visible only to elements within inheriting packages, denoted by ‘#’
! A private element is not visible at all to elements outside the package, denoted by ‘-’
![Page 18: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/18.jpg)
Advanced Modeling with UML 18
X Y
Import
The associations are owned by package X
«import»A
B +C-D
+E
A
B +C-D
+E
X Y
Y::C
Y::E«import»
![Page 19: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/19.jpg)
Advanced Modeling with UML 19
Import – Alias
An imported element can be given a local alias and a local visibility
«import»A
B +B-D
+E
X Y
A
B +B-D
X Y
+E«import»
+Y::E
-C
same class
![Page 20: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/20.jpg)
Advanced Modeling with UML 20
A
B +C-D
+E
X Y«access»
X Y
Access
The associations are owned by package X
«access»A
B +C-D
+E
![Page 21: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/21.jpg)
Advanced Modeling with UML 21
X Y Z
X Y Z
Import vs. Access
«import»
A
B +C-D
+E
«import»
+G
+F
-H-Z::G
+Z::F
«access»
A
B +C-D
+E
«access»
+G
+F
-H
Y::C
Y::E
Y::F
![Page 22: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/22.jpg)
Advanced Modeling with UML 22
Diagram Tour
! Packages are shown in static diagrams! Two equivalent ways to show containment:
![Page 23: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/23.jpg)
Advanced Modeling with UML 23
When to Use Packages
! To create an overview of a large set of model elements
! To organize a large model! To group related elements! To separate namespaces
![Page 24: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/24.jpg)
Advanced Modeling with UML 24
Modeling Tips – Package
! Gather model elements with strong cohesion in one package
! Keep model elements with low coupling in different packages
! Minimize relationships, especially associations, between model elements in different packages
! Namespace implication: an element imported into a package does not “know” what is done to it in the imported package
![Page 25: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/25.jpg)
Advanced Modeling with UML 25
Subsystem
! What are Subsystems?! Core Concepts! Diagram Tour! When to Use Subsystems! Modeling Tips
![Page 26: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/26.jpg)
Advanced Modeling with UML 26
Subsystem
Subsystems are used for system decomposition
![Page 27: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/27.jpg)
Advanced Modeling with UML 27
Subsystem – Example
TrunkTraffic Control
Subscription
Communicating subsystems constitute a system
![Page 28: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/28.jpg)
Advanced Modeling with UML 28
Core Concepts
Subsystem
Construct Description SyntaxA grouping of model elements that represents a behavioral unit in a physical system.
Name
![Page 29: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/29.jpg)
Advanced Modeling with UML 29
Subsystem Aspects
! A subsystem has two aspects:! An external view, showing the services provided
by the subsystem! An internal view, showing the realization of the
subsystem
! There is a mapping between the two aspects
![Page 30: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/30.jpg)
Advanced Modeling with UML 30
Subsystem Aspects
A subsystem has a specification and a realization
Realization elementsSpecification elements
![Page 31: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/31.jpg)
Advanced Modeling with UML 31
Subsystem Realization
! The subsystem realization defines the actual contents of the subsystem
! The subsystem realization typically consists of classes and their relationships, or a contained hierarchy of subsystems with classes as leaves
Realization elementsSpecification elements
?
![Page 32: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/32.jpg)
Advanced Modeling with UML 32
Subsystem Specification
The subsystem specification defines the external view of the subsystem
Realization elementsSpecification elements
?
![Page 33: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/33.jpg)
Advanced Modeling with UML 33
Subsystem Specification
! The subsystem specification:! describes the services offered by the
subsystem! describes the externally experienced
behavior of the subsystem! does not reveal the internal structure of
the subsystem! describes the interface of the subsystem
![Page 34: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/34.jpg)
Advanced Modeling with UML 34
Specification Techniques
! The Use Case approach! The State Machine
approach! The Logical Class approach! The Operation approach! …and combinations of
these.
![Page 35: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/35.jpg)
Advanced Modeling with UML 35
Use Case Approach
! For subsystem services used in certain sequences
! When the specification is to be understood by non-technical people
! For complex behavior
Realization elementsSpecification elements
![Page 36: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/36.jpg)
Advanced Modeling with UML 36
Use Case Approach – Example
Traffic Control
Specification elements Realization elements
Change Digit Analysis Information
Initiate Call
Receive Digit and Connect
Hook Signal and Disconnect
Operator
Trunk
Subscription
![Page 37: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/37.jpg)
Advanced Modeling with UML 37
State Machine Approach
Specification elements
Stopped Running
Error
Maintenance
Exhausted
Traffic Control
! For subsystems with state dependent behavior
! Focuses on the states of the subsystem and the transitions between them
![Page 38: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/38.jpg)
Advanced Modeling with UML 38
Specification elements
AnalyzerNumber
Dictionary
Network Manager
Traffic Control
! When usage of the subsystem is perceived as manipulation of objects
! When the requirements are guided by a particular standard
Logical Class Approach
![Page 39: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/39.jpg)
Advanced Modeling with UML 39
Operation Approach
OperationsinitiateConnection (…)dialledDigit (…)throughConnect (…)bAnswer (…)bOnHook (…)aOnHook (…)
Traffic Control
! For subsystems providing simple, “atomic” services! When the operations are invoked independently
![Page 40: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/40.jpg)
Advanced Modeling with UML 40
Mixing TechniquesTraffic Control
changeDigitAnalysisInformation (...)
Operator
Initiate Call
Receive Digit and Connect
Hook Signal and DisconnectSubscription
Trunk
Specification elements
Specification elements
Operations
![Page 41: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/41.jpg)
Advanced Modeling with UML 41
Complete Subsystem Notation
! The complete subsystem symbol has three pre-defined compartments
! Each of the compartments may be optionally omitted from the diagram
Realization elements
Specification elements
Operations
![Page 42: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/42.jpg)
Advanced Modeling with UML 42
Subsystem Interfaces
TrunkTraffic Control Subscription
TrunkTraffic Control Subscription
![Page 43: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/43.jpg)
Advanced Modeling with UML 43
Operations and Interfaces
The subsystem must support all operations in the offered interfaces
Operationsoperation1( ) : Type1
operation2( ) : Type2
operation3( ) : Type3
operation4( ) : Type4
operation5( ) : Type5
«Interface»
«realize»operation1( )operation2( )operation4( )
«Interface»
«realize»operation2( )operation3( )operation5( )
![Page 44: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/44.jpg)
Advanced Modeling with UML 44
Subsystem Interfaces
Specification elements«Interface»
«realize»
«Interface»
«realize»
![Page 45: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/45.jpg)
Advanced Modeling with UML 45
Specification – Realization
! The specification and the realization must be consistent
! The mapping between the specification and the realization can be expressed by:
! «realize» relationships! collaborations
![Page 46: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/46.jpg)
Advanced Modeling with UML 46
Realize Relationship
«realize» is particularly useful in simple mappings
Operations
operation1( ) : Type1
operation2( ) : Type2
operation3( ) : Type3
operation4( ) : Type4
operation5( ) : Type5
Realization Elements
«realize»operation1( )
![Page 47: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/47.jpg)
Advanced Modeling with UML 47
Realize – Example
Realization elements
Specification elements
changeDigitAnalysisInformation ( )
Initiate Call
Receive Digit and Connect
Hook Signal and DisconnectSubscription
Traffic Control
Operations
Operator
Trunk
changeDigitAnalysisInformation ( )::
«realize»
![Page 48: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/48.jpg)
Advanced Modeling with UML 48
Collaboration! A collaboration defines the roles to be played
when a task is performed! The roles are played by interacting instances
Sequence Diagram
:Trunk :Traffic Control :Subscription
markBusy
dialledDigit
dialledDigit
throughConnect
bAnswer
markBusy
Collaboration Diagram
:Trunk
:Traffic Control
:Subscription
3: dialledDigit6: bAnswer
5: markBusy1: markBusy
4: throughConnect
2: dialledDigit
![Page 49: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/49.jpg)
Advanced Modeling with UML 49
Collaboration – Notation
A collaboration and its participants
Collaboration
Role
Class
role name
role namerole name
role name
![Page 50: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/50.jpg)
Advanced Modeling with UML 50
Collaboration – Example
Collaborations are useful in more complex situations
Specification elements Realization elements
Receive Digit and Connect
Hook Signal and Disconnect
Initiate Call
CoordinatorAnalysisDatabase
NetworkInterface
![Page 51: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/51.jpg)
Advanced Modeling with UML 51
Diagram Tour
! Subsystems can be shown in static diagrams and interaction diagrams
! “Fork” notation alternative for showing contents:
Realization elementsSpecification elements
Realization elements
![Page 52: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/52.jpg)
Advanced Modeling with UML 52
Diagram Tour – continued
! Subsystems can be shown in interaction diagrams! collaboration diagrams! sequence diagrams
Sequence Diagram
![Page 53: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/53.jpg)
Advanced Modeling with UML 53
When to Use Subsystems
! To express how a large system is decomposed into smaller parts
! To express how a set of modules are composed into a large system
! To trace requirements between the system and its parts
![Page 54: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/54.jpg)
Advanced Modeling with UML 54
Modeling Tips – Subsystem
! Define a subsystem for each separate part of a large system
! Choose specification technique depending on factors like kind of system and kind of subsystem
! Realize each subsystem independently, using the specification as a requirements specification
![Page 55: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/55.jpg)
Advanced Modeling with UML 55
Model
! What are Models?! Core Concepts! Diagram Tour! When to Use Models! Modeling Tips
![Page 56: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/56.jpg)
Advanced Modeling with UML 56
Model
A model is an abstraction of a system, specifying the system from a certain viewpoint and at a certain level of abstraction
![Page 57: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/57.jpg)
Advanced Modeling with UML 57
Model – Example
Design Model
Use Case Model
![Page 58: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/58.jpg)
Advanced Modeling with UML 58
Core Concepts
Model
Trace
Construct Description Syntax
A dependency connecting model elements that represent the same concept within different models. Traces are usually non-directed.
«trace»
An abstraction of a system, as seen from a specific viewpoint and at a certain level of abstraction and detail.
Name
![Page 59: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/59.jpg)
Advanced Modeling with UML 59
Trace
Analysis
Design
«trace»
![Page 60: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/60.jpg)
Advanced Modeling with UML 60
Diagram Tour
! Models as such are seldom shown in diagrams
! Two equivalent ways to show containment:
![Page 61: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/61.jpg)
Advanced Modeling with UML 61
Model vs. DiagramUse Case Model
Design Model
Diagrams make up the documentation of a model
![Page 62: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/62.jpg)
Advanced Modeling with UML 62
When to Use Models
! To give different views of a system to different stakeholders
! To focus on a certain aspect of a system at a time
! To express the results of different stages in a software development process
![Page 63: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/63.jpg)
Advanced Modeling with UML 63
Modeling Tips – Model
! Define the purpose for each model! A model must give a complete picture of the
system, within its viewpoint and level of abstraction
! Focus on the purpose of the model; omit irrelevant information
![Page 64: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/64.jpg)
Advanced Modeling with UML 64
Models and SubsystemsModels and subsystems can be combined in a
hierarchy:
![Page 65: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/65.jpg)
Advanced Modeling with UML 65
Wrap Up Model Management! Packages are used to organize a large set of model
elements! Visibility! Import! Access
! Subsystems are used to structure a large system! Specification! Realization
! Models are used to show different aspects of a system! Trace
![Page 66: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/66.jpg)
Advanced Modeling with UML 66
Advanced Modeling with UML
! Part 1: Model Management! Part 2: Extension Mechanisms and Profiles! Part 3: Object Constraint Language (OCL)
![Page 67: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/67.jpg)
Advanced Modeling with UML 67
Semantic Variations in UML
! Semantic aspects that are:! undefined (e.g., scheduling discipline), or
! ambiguous (multiple interpretations/possibilities)
! Why?! Different domains require different specializations
! Extend the applicability and utility of UML to a very broad spectrum of domains
! …while avoiding the “PL/I syndrome”
![Page 68: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/68.jpg)
Advanced Modeling with UML 68
Extensibility Mechanisms! Used for refining the general UML
semantics! must be consistent with general UML
semantics!
Purpose:To obtain specialized domain-specific or even application-specific variations of general-purpose modeling concepts
Standard UML semanticsStandard UML semanticsStandard UML semantics
refined semantics(valid)refined semanticsrefined semantics(valid)(valid) different semantics
(NOT valid)different semanticsdifferent semantics(NOT valid)(NOT valid)
![Page 69: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/69.jpg)
Advanced Modeling with UML 69
Models! A model is a description of something
! “a pattern for something to be made” (Merriam-Webster)! model ≠ thing that is modeled
blueprint(model)
model ≠ thing that is modeledbuilding building
![Page 70: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/70.jpg)
Advanced Modeling with UML 70
Meta-Models! Models of models (modeling tools)
ClassClassClass AssociationAssociationAssociation
ObjectsObjects
ModelModel
MetaMeta--ModelModel
(M0)(M0)
(M1)(M1)
(M2)(M2)
<sawdust><2 tons><sawdust><sawdust><2 tons><2 tons>
<Ben&Jerry’s><Ben&Jerry’s><Ben&Jerry’s> <lard><5 tons><lard><lard><5 tons><5 tons>
CustomerOrderCustomerOrderCustomerOrder
itemquantityitemitemquantityquantity
CustomerCustomerCustomer
ididid
![Page 71: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/71.jpg)
Advanced Modeling with UML 71
The UML Meta-Model! Expressed using a very small subset of UML
GeneralizableElementGeneralizableElementGeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
isRootisRoot : Boolean: BooleanisLeafisLeaf : Boolean: BooleanisAbstractisAbstract : Boolean: Boolean
ClassClassClass
isActive : BooleanisActiveisActive : Boolean: Boolean
ClassifierClassifierClassifier
FeatureFeatureFeature
visibility : {public, private,protected}visibility : {public, private,visibility : {public, private,protected}protected}
**
not self.isAbstract implies self.allOperations->forAll(op |
self.allMethods->exists(m | m.specification includes (op)))
not self.isAbstract implies self.allOperations->forAll(op |
self.allMethods->exists(m | m.specification includes (op)))
WellWell--formedness formedness constraint (OCL)constraint (OCL)
Meta-ClassMetaMeta--ClassClass
![Page 72: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/72.jpg)
Advanced Modeling with UML 72
The Three Basic Mechanisms! Stereotypes
! used to refine meta-classes (or other stereotypes) by defining supplemental semantics
! Constraints! predicates (e.g., OCL expressions) that reduce
semantic variation! can be attached to any meta-class or stereotype
! Tagged Values! individual modifiers with user-defined semantics ! can be attached to any meta-class or stereotype
![Page 73: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/73.jpg)
Advanced Modeling with UML 73
Example: A Special Type of Class
ClassClassClass
isActive : BooleanisActiveisActive : Boolean: Boolean
self.feature->select(f |f.oclIsKindOf(Operation))-> forAll(o |
o.elementOwnership.visibility = #protected)
self.feature->select(f |f.oclIsKindOf(Operation))-> forAll(o |
o.elementOwnership.visibility = #protected)
«Capsule»«Capsule»«Capsule»
<Language = ”C++”><Language = ”C++”><Language = ”C++”>
Stereotypeconstraint
Stereotypeconstraint
Required tagRequired tagStereotypeStereotype
![Page 74: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/74.jpg)
Advanced Modeling with UML 74
Extensibility Method! Refinements are specified at the Model (M1)
level but apply to the Meta-Model level (M2)! does not require “meta-modeling” CASE tools! can be exchanged with models
«Capsule»«Capsule»«Capsule»(M1)(M1)
(M2)(M2)ClassClassClass AssociationAssociationAssociation
CustomerOrderCustomerOrderCustomerOrder
itemquantityitemitemquantityquantity
CustomerCustomerCustomer
ididid
«capsule»aCapsuleClass
«capsule»«capsule»aCapsuleClassaCapsuleClass
![Page 75: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/75.jpg)
Advanced Modeling with UML 75
Stereotypes! Used to define derivative modeling concepts
based on existing generic modeling concepts! Defined by:
! base (meta-)class = UML meta-class or stereotype! constraints! required tags (0..*)
! often used for modeling pseudo-attributes
! icon
! A model element can have at most one stereotype
![Page 76: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/76.jpg)
Advanced Modeling with UML 76
Heuristic: Combining Stereotypes
! Through multiple inheritance:
«Capsule»«Capsule»«Capsule»
<Language = ”C++”><Language = ”C++”><Language = ”C++”>
«Square»«Square»«Square»
«SquareCapsule»««SquareCapsuleSquareCapsule»»
![Page 77: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/77.jpg)
Advanced Modeling with UML 77
Stereotype Notation! Several choices
«capsule»aCapsuleClass
«capsule»«capsule»aCapsuleClassaCapsuleClass aCapsuleClassaCapsuleClassaCapsuleClass
Stereotypeicon
Stereotypeicon
(a) with (a) with guillemetsguillemets (b) with icon(b) with icon
(c) (c) iconified iconified formform
![Page 78: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/78.jpg)
Advanced Modeling with UML 78
Heuristic: When to Stereotype?! Abstract class or stereotype?
ClassClassClassisActive : BooleanisActiveisActive : Boolean: Boolean
«Capsule»«Capsule»«Capsule»<Language = ”C++”><Language = ”C++”><Language = ”C++”>
AbstractCapsuleClass
AbstractCapsuleAbstractCapsuleClassClass
«capsule»aCapsuleClass
«capsule»«capsule»aCapsuleClassaCapsuleClass
Stereotypes typically used where one or more tools need to support (validate, enforce) the supplementary semantics
basis for further standardization
![Page 79: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/79.jpg)
Advanced Modeling with UML 79
Tagged Values and Constraints! Tagged values:
! consist of a tag and value pair! often used to model stereotype attributes! arbitrary domain-specific semantics
! instructions to a code generator (“debug_flag = true”)! project management data (“status = unit_tested”)! etc.
! Constraints! formal or informal expressions! must not contradict inherited base semantics
![Page 80: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/80.jpg)
Advanced Modeling with UML 80
Constraint Notation! Enclosed in braces “{…}”! Can appear in various places in a model
ATM_WithdrawlATM_ATM_WithdrawlWithdrawl
customer : idamount : Money{amount is multiple of $20}
customer : idcustomer : idamount : Moneyamount : Money{amount is multiple of $20}{amount is multiple of $20}
AccountAccountAccount
customer : idbalance : Moneycustomer : idcustomer : idbalance : Moneybalance : Money
{ATM_Withdrawl.customer = Account.customer}
{ATM_{ATM_WithdrawlWithdrawl.customer = .customer = Account.customer}Account.customer}
![Page 81: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/81.jpg)
Advanced Modeling with UML 81
UML Profiles! A package of related specializations of
general UML concepts that capture domain-specific variations and usage patterns➪ A domain-specific interpretation of UML
! Profiles currently being defined by the OMG:! EDOC! Real-Time! CORBA! ...
![Page 82: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/82.jpg)
Advanced Modeling with UML 82
Advanced Modeling with UML
! Part 1: Model Management! Part 2: Extension Mechanisms and Profiles! Part 3: Object Constraint Language (OCL)
![Page 83: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/83.jpg)
Advanced Modeling with UML 83
Overview! What are constraints?! Core OCL Concepts! Advanced OCL Concepts! Wrap up
![Page 84: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/84.jpg)
Advanced Modeling with UML 84
Why use OCL ?What’s in it
for me?
Use the Object ConstraintLanguage
![Page 85: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/85.jpg)
85
That’s why !!
Flight Airplane
CargoFlightPassengerFlight
PasssengerPlane CargoPlane11
0..*0..* 11
0..*0..*
0..*0..*11flights
![Page 86: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/86.jpg)
86
Diagram with invariants
context Flightinv: type = #cargo implies airplane.type = #cargoinv: type = #passenger implies airplane.type = #passenger
10..*Flight Airplane
type = enum{cargo, passenger}
type = enum{cargo, passenger}
flights
![Page 87: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/87.jpg)
Advanced Modeling with UML 87
Definition of constraint
! “A constraint is a restriction on one or more values of (part of) an object-oriented model or system.”
![Page 88: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/88.jpg)
Advanced Modeling with UML 88
Different kinds of constraints! Class invariant
! a constraint that must always be met by all instances of the class
! Precondition of an operation ! a constraint that must always be true
BEFORE the execution of the operation
! Postcondition of an operation ! a constraint that must always be true
AFTER the execution of the operation
![Page 89: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/89.jpg)
Advanced Modeling with UML 89
Constraint stereotypes! UML defines three standard stereotypes
for constraints:! invariant! precondition! postcondition
![Page 90: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/90.jpg)
Advanced Modeling with UML 90
What is OCL?! OCL is
! a textual language to describe constraints! the constraint language of the UML
! Formal but easy to use ! unambiguous! no side effects
![Page 91: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/91.jpg)
Advanced Modeling with UML 91
Constraints and the UML model! OCL expressions are always bound to a
UML model
![Page 92: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/92.jpg)
Advanced Modeling with UML 92
Overview! What are constraints! Core OCL Concepts! Advanced OCL Concepts! Wrap up
![Page 93: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/93.jpg)
Advanced Modeling with UML 93
Example model
Airport
Flight
Passenger
Airline
*
**
*
$minAge: Integerage: IntegerneedsAssistance: Boolean
departTime: Time/arrivalTime: Timeduration : IntervalmaxNrPassengers: Integer
origin
desti-nation
name: String
name: String
{ordered}
arrivingFlights
departingFlights
CEO
0..1
flights
passengers
book(f : Flight)
0..1
airline
airline
![Page 94: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/94.jpg)
Advanced Modeling with UML 94
Constraint context and self! Every OCL expression is bound to a
specific context.! The context may be denoted within the
expression using the keyword ‘self’.Who? Who? Me?Me?
![Page 95: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/95.jpg)
Advanced Modeling with UML 95
Notation! Constraints may be denoted within the
UML model or in a separate document.! the expression:
context Flight inv: self.duration < 4
! is identical to:context Flight inv: duration < 4
! is identical to: Flight
duration: Integer<<invariant>>duration < 4
![Page 96: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/96.jpg)
Advanced Modeling with UML 96
Elements of an OCL expression! In an OCL expression these elements
may be used:! basic types: String, Boolean, Integer, Real.! classifiers from the UML model and their
features! attributes, and class attributes! query operations, and class query operations
! associations from the UML model
![Page 97: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/97.jpg)
Advanced Modeling with UML 97
Example: OCL basic types
context Airline inv:name.toLower = ‘klm’
context Passenger inv:age >= ((9.6 - 3.5)* 3.1).floor implies mature = true
![Page 98: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/98.jpg)
Advanced Modeling with UML 98
Model classes and attributes! “Normal” attributes
context Flight inv:self.maxNrPassengers <= 1000
! Class attributescontext Passenger inv:age >= Passenger.minAge
![Page 99: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/99.jpg)
Advanced Modeling with UML 99
Example: query operationscontext Flight inv:self.departTime.difference(self.arrivalTime)
.equals(self.duration)Time
difference(t:Time):Intervalbefore(t: Time): Booleanplus(d : Interval) : Time
Interval
equals(i:Interval):Boolean$Interval(d, h, m : Integer) :
Interval
$midnight: Timemonth : Stringday : Integeryear : Integerhour : Integerminute : Integer
nrOfDays : IntegernrOfHours : IntegernrOfMinutes : Integer
![Page 100: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/100.jpg)
Advanced Modeling with UML 100
Associations and navigations! Every association is a navigation
path.! The context of the expression is
the starting point.! Role names are used to identify
the navigated association.
![Page 101: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/101.jpg)
Advanced Modeling with UML 101
Example: navigations! Navigations
context Flightinv: origin <> destinationinv: origin.name = ‘Amsterdam’
context Flight inv: airline.name = ‘KLM’
![Page 102: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/102.jpg)
Advanced Modeling with UML 102
Association classescontext Person inv:if employer.name = ‘Klasse Objecten’ then
job.type = #trainerelse
job.type = #programmerendif
Person Company
Job
* 1employee employer
type : {trainer, programmer}
name : String
![Page 103: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/103.jpg)
Advanced Modeling with UML 103
The OCL Collection types! What are constraints! Core OCL Concepts
! Collections
! Advanced OCL Concepts! Wrap up
![Page 104: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/104.jpg)
Advanced Modeling with UML 104
Three subtypes to Collection! Set:
! arrivingFlights(from the context Airport)
! Bag: ! arrivingFlights.duration (from the context
Airport)
! Sequence: ! passengers (from the context Flight)
![Page 105: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/105.jpg)
Advanced Modeling with UML 105
Collection operations! OCL has a great number of predefined
operations on the collections types.
! Syntax:
collection->operation
![Page 106: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/106.jpg)
Advanced Modeling with UML 106
The collect operation! Syntax:
collection->collect(elem : T | expr)collection->collect(elem | expr)collection->collect(expr)
! Shorthand:collection.expr
! The collect operation results in the collection of the values resulting evaluating expr for all elements in the collection
![Page 107: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/107.jpg)
Advanced Modeling with UML 107
Example: collect operationcontext Airport inv:self.arrivingFlights->collect(airLine)->notEmpty
airp1
airp2
f1
f2
f3
f4
f5
airline1
airline2
airline3
departing flights arriving flights
![Page 108: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/108.jpg)
Advanced Modeling with UML 108
The select operation! Syntax:
collection->select(elem : T | expression)collection->select(elem | expression)collection->select(expression)
! The select operation results in the subset of all elements for which expression is true
![Page 109: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/109.jpg)
Advanced Modeling with UML 109
Example: collect operationcontext Airport inv:self.departingFlights->select(duration<4)-
>notEmpty
departing flights arriving flights
airp1
airp2
airline1
airline2
airline3
f5duration = 2
f1duration = 2
f4duration = 5
f2duration = 5
f3duration = 3
![Page 110: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/110.jpg)
Advanced Modeling with UML 110
The forAll operation! Syntax:
collection->forAll(elem : T | expr)
collection->forAll(elem | expr)collection->forAll(expr)
! The forAll operation results in true if expr is true for all elements of the collection
![Page 111: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/111.jpg)
Advanced Modeling with UML 111
Example: forAll operationcontext Airport inv:self.departingFlights-
>forAll(departTime.hour>6)
departing flights arriving flights
airp1
airp2
airline1
airline2
airline3
f5depart = 8
f1depart = 7
f4depart = 9
f2depart = 5
f3depart = 8
![Page 112: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/112.jpg)
Advanced Modeling with UML 112
The exists operation! Syntax:
collection->exists(elem : T | expr)collection->exists(elem | expr)collection->exists(expr)
! The exists operation results in true if there is at least one element in the collection for which the expression expr is true.
![Page 113: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/113.jpg)
Advanced Modeling with UML 113
Example: exists operationcontext Airport inv:self.departingFlights-
>exists(departTime.hour<6)
departing flights arriving flights
airp1
airp2
airline1
airline2
airline3
f5depart = 8
f1depart = 7
f4depart = 9
f2depart = 5
f3depart = 8
![Page 114: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/114.jpg)
Advanced Modeling with UML 114
Example: exists operationcontext Airport inv:self.departingFlights ->
exists(departTime.hour < 6)
![Page 115: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/115.jpg)
Advanced Modeling with UML 115
Other collection operations! isEmpty: true if collection has no elements! notEmpty: true if collection has at least one
element! size: number of elements in collection! count(elem): number of occurences of elem
in collection! includes(elem): true if elem is in collection! excludes(elem): true if elem is not in
collection! includesAll(coll): true if all elements of coll
are in collection
![Page 116: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/116.jpg)
Advanced Modeling with UML 116
Result in postcondition! Example pre and postcondition
context Airline::servedAirports() : Set(Airport)pre : -- nonepost: result = flights.destination->asSet
![Page 117: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/117.jpg)
Advanced Modeling with UML 117
Statechart: referring to states! The operation oclInState returns true if
the object is in the specified state.
open closed
context Bottle inv:self.oclInState(closed) implies filled = #full
Bottlefilled : enum {empty, half, full}
![Page 118: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/118.jpg)
Advanced Modeling with UML 118
Local variables! The Let construct defines variables local
to one constraint:
Let var : Type = <expression1> in <expression2>
![Page 119: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/119.jpg)
Advanced Modeling with UML 119
Iterate! The iterate operation for collections is
the most generic and complex building block.
collection->iterate(elem : Type;answer : Type = <value>
|<expression-with-elem-and-answer>)
![Page 120: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/120.jpg)
Advanced Modeling with UML 120
Iterate example! Example iterate:
context Airline inv:flights->select(maxNrPassengers > 150)-
>notEmpty! Is identical to:
context Airline inv:flights->iterate(f : Flight; answer : Set(Flight) =
Set{ } |if f.maxNrPassengers > 150 then
answer->including(f)else answer endif )->notEmpty
![Page 121: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/121.jpg)
Advanced Modeling with UML 121
Inheritance of constraints! Guiding principle Liskovs Substitution
Principle (LSP):! “Whenever an instance of a class is
expected, one can always substitute an instance of any of its subclasses.”
![Page 122: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/122.jpg)
Advanced Modeling with UML 122
Inheritance of constraints! Consequences of LSP for invariants:
! An invariant is always inherited by each subclass.
! Subclasses may strengthen the invariant.
! Consequences of LSP for preconditions and postconditions:! A precondition may be weakened! A postcondition may be strengthened
![Page 123: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/123.jpg)
Advanced Modeling with UML 123
Wrap up! What are constraints! Core OCL Concepts! Advanced OCL Concepts! Wrap up
![Page 124: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/124.jpg)
Advanced Modeling with UML 124
Current Developments! Feedback from several OCL
implementors handled in UML-RTF! e.g. the grammar has some loose ends! typical tool-related issues
! Development of OCL metamodel! currently concrete syntax only! will result in abstract syntax
! OCL Workshop with pUML group! formalization of OCL
![Page 125: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/125.jpg)
Advanced Modeling with UML 125
OCL Tools! Cybernetics
! ww.cybernetic.org
! University of Dresden! www-st.inf.tu-dresden.de/ocl/
! Boldsoft! www.boldsoft.com
! ICON computing! www.iconcomp.com
! Royal Dutch Navy! Others … …
![Page 126: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/126.jpg)
Advanced Modeling with UML 126
Conclusions and Tips! OCL invariants allow you to
! model more precisely! stay implementation independent
! OCL pre- and postconditions allow you to! specify contracts (design by contract)! precisely specify interfaces of components
! OCL usage tips! keep constraints simple! always combine natural language with OCL! use a tool to check your OCL
![Page 127: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/127.jpg)
Advanced Modeling with UML 127
Further Resources for OCL! The Object Constraint Language
! ISBN 0-201-37940-6
! OCL home page! www.klasse.nl/ocl/index.htm
![Page 128: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/128.jpg)
Advanced Modeling with UML 128
Preview - Next Tutorial
! Metadata Integration with UML, MOF and XMI! OMG Modeling and Metadata Architecture! Meta Object Facility (MOF)! XML Metadata Interchange (XMI)
![Page 129: Object Modeling with OMG UML Tutorial Series · Advanced Modeling with UML 2 Overview! Tutorial series! UML Overview! Advanced Modeling! Part 1: Model Management! Karin Palmkvist,](https://reader031.fdocuments.us/reader031/viewer/2022022015/5b4fcde47f8b9a206e8d2e1c/html5/thumbnails/129.jpg)
Advanced Modeling with UML 129
! Web: ! UML 1.4 RTF: www.celigent.com/omg/umlrtf! OMG UML Tutorials: www.celigent.com/omg/umlrtf/tutorials.htm! UML 2.0 Working Group:
www.celigent.com/omg/adptf/wgs/uml2wg.htm! OMG UML Resources: www.omg.org/uml/
! Email! Karin Palmkvist: [email protected]! Bran Selic: [email protected]! Jos Warmer: [email protected]
! Conferences & workshops! OMG UML Workshop: UML in the .com Enterprise, Palm Springs,
California, Nov. 2000! UML World 2001, location and dates TBA! UML 2001, Toronto, Canada, Oct. 2001
Further Info