Download presentation
Presentation is loading. Please wait.
Published byThor Therkildsen Modified over 6 years ago
1
“The UML Collaboration, a Standard for Role Modeling.”
OMG Technical Committee Meeting Oslo, June 2000 Trygve Reenskaug, Mogul Norway AS, Oslo The UML Collaboration for Role Modeling
2
Legal Notice This presentation is copyright
Understand IT Saturday, December 29, 2018 Legal Notice This presentation is copyright ©2000 Trygve Reenskaug Oslo, Norway. All rights reserved. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made for profit or commercial advantage and that copies bear this notice and full citation on the first page. The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
3
Activity network planning Our main example
Understand IT Saturday, December 29, 2018 Activity network planning Our main example The (toy) sample user interface is a Java Applet that is run from a web browser. The interface interacts with a background service that is also written in Java. The top bars in the bar chart shows the earliest times when the activities can be performed. The bottom bars show when the activities all have to be done by the same resource, and this resource can only serve one activity at the time. The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
4
The Idea: Records --> Objects Some relevant shipyard objects
Understand IT Saturday, December 29, 2018 Object representing the Shipyard Object representing a ship’s schedule Object representing the shipyard resources Object representing a construction activity Object representing a resource Our example is taken from a shipyard. We represent important aspects by objects and let work scheduling be performed through negotiation between these objects. Object representing a ship's part The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
5
Essential questions answered by the Collaboration
What is the purpose ? What are the objects ? What are their responsibilities ? How are they interconnected ? How do they interact ? The UML Collaboration for Role Modeling
6
We use objects to master complexity
Object B Object A Message triggers method causes response Port toB TO-B IN Message TO-C toC IN TO-C toC Message Object C Methods Variables Methods Variables IN Methods Variables The UML Collaboration for Role Modeling
7
First collaboration model IFIP Conference, Toronto, 1977
Understand IT First collaboration model IFIP Conference, Toronto, 1977 Saturday, December 29, 2018 / Accounting / Materials Procurement / Project Group Leader / Sector / Head of Department 1 * Accounting Materials Procurement Head of Department Sector Leader Project Group The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
8
The OMG vision: A Universe of objects
The UML Collaboration for Role Modeling
9
CORBA Controls the Interfaces
IDL : messages XML : information The UML Collaboration for Role Modeling
10
A system is a chosen perspective on reality
A system is a part of the real world which we choose to regard as a whole, separated from the rest of the world during some period of consideration. A whole that we choose to consider as a collection of parts, each part being characterized by attributes and by actions which may involve itself and other parts. Holbæk_Hanssen et.al.: System Description and the Delta Language Oslo, 1977 The UML Collaboration for Role Modeling
11
Consider the Universe as a Universe of objects
The UML Collaboration for Role Modeling
12
The example Activity Network Objects and Interaction
fL(t) = public void frontLoad (int time ) Project 1:fL(0) 9:fL(19) Activity-B 7 (4) 10 Activity-D 14 (3) 16 4:fL(10) 2:fL(6) 7:fL(16) Activity-A 1 (6) 6 Activity-F 18 (2) 19 5:fL(13) 3:fL(6) Activity-C 7 (7) 13 Activity-E 14 (4) 17 8:fL(17) 6:fL(13) The UML Collaboration for Role Modeling
13
Specification level collaboration ClassifierRole definition
A ClassifierRole is a named slot for an object participating in a Collaboration. Object behavior is represented by its participation in the overall behavior of the Collaboration. Object identity is preserved through this constraint: "In an instance of a collaboration, each ClassifierRole maps onto at most one object." The UML Collaboration for Role Modeling
14
Collaborations specify system behavior
Understand IT Saturday, December 29, 2018 Collaborations specify system behavior 1: fL(t1) 2: fL(t2) /F-Pred /F-Act /F-Succ * * Network frontloading collaboration 1 * / R-Res / R-Act Resource allocation collaboration We change our perspective from classes to objects; from sets to individuals. This permits us to study patterns of interacting objects: What are the objects, what are their responsibilities, and how do their collaborate to achieve the system functionality. The role represents the object’s position in the structure. We see that instances of the Activity class play different roles: Predecessor, Activity, and Successor. Instances of the Project class are also Predecessors, in this way a Project can start the frontloading operation. The Project also plays the Successor role so that it can receive the final scheduling messages. We achieve a separation of concern; a collaboration describes the objects involved in one or more functions, describing the objects involved only and focusing on the relevant object properties. 1: alloc() 2: reserv() The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
15
Specialization of Collaboration Frontloading with resources
Understand IT Saturday, December 29, 2018 Specialization of Collaboration Frontloading with resources / F-Pred / F-Act / F-Succ 1: fL(t1) 2: fL(t2) * * * / C-Pred / C-Act / C-Succ Synthesized model 1: fL(t1) 2: fL(t2) 1 * / C-Res / C-Act 1.1: alloc() 1.2: reserv() 1 * / R-Res / R-Act 2: reserv() 1: alloc() We change our perspective from classes to objects; from sets to individuals. This permits us to study patterns of interacting objects: What are the objects, what are their responsibilities, and how do their collaborate to achieve the system functionality. The role represents the object’s position in the structure. We see that instances of the Activity class play different roles: Predecessor, Activity, and Successor. Instances of the Project class are also Predecessors, in this way a Project can start the frontloading operation. The Project also plays the Successor role so that it can receive the final scheduling messages. We achieve a separation of concern; a collaboration describes the objects involved in one or more functions, describing the objects involved only and focusing on the relevant object properties. The UML Collaboration for Role Modeling ©2000 Trygve Reenskaug
16
Where we are going Lay a course to intercept the future
Vast Complexity Transparent & Comprehensible Participatory & Graduated knowledge Support Human Communication Multiple Owners Interoperability Geographic Distribution Heterogeneous Platforms The UML Collaboration for Role Modeling
17
Existing technology Lay a course to intercept the future
CORBA Interoperability Geographic Distribution Heterogeneous Platforms & Languages UML Collaboration & System Thinking Vast Complexity Transparent & Comprehensible Participatory & Graduated knowledge Multiple Owners The UML Collaboration for Role Modeling
18
Make IT so simple that even a programmer can understand IT
Edsger Dijkstra, “A Discipline of Programming”, 1976: Testing can only show the presence of bugs Testing can never show the absence of bugs The only way to avoid bugs is not to put them in in the first place So: The number of bugs in the system when you deliver it is proportional to the number of bugs found during testing bugs removed from Windows2000 during testing The UML Collaboration for Role Modeling
19
What is a Component ? Object pluggable on a backplane
Objects Collaboration links Backplane (Container) Net Hardware Operating System Thanks to Øystein Myhre for this illustration The UML Collaboration for Role Modeling
20
Make IT simple so that Programmers and Users can master it
Focus on: Objects ! Responsibilities ! Message paths ! Interfaces ! Collaborations ! Invisible: Code Communication etc. Challenge: Manage complexity Solution: Collaborations & Systems The UML Collaboration for Role Modeling
21
Thank You The UML Collaboration for Role Modeling
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.