“The UML Collaboration, a Standard for Role Modeling.” OMG Technical Committee Meeting Oslo, June 2000 Trygve Reenskaug, Mogul Norway AS, Oslo http://www.ifi.uio.no/~trygver The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:29 AM. Slide 1 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 © Trygve Reenskaug 2000 5/29/2016 3:32:30 AM. Slide 2 Activity network planning Our main example The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:30 AM. Slide 3 The Idea: Records --> Objects Some relevant shipyard objects Object representing the Shipyard Object representing a ship’s schedule Object representing the shipyard resources Object representing a construction activity Object representing a resource Object representing a ship's part The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:30 AM. Slide 4 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 © Trygve Reenskaug 2000 5/29/2016 3:32:30 AM. Slide 5 We use objects to master complexity Object A Object B Port Message IN Methods TO-B toB toC TO-C Variables IN TO-C toC Object C Methods Variables Message Message triggers method causes response The UML Collaboration for Role Modeling Message © Trygve Reenskaug 2000 IN Methods Variables 5/29/2016 3:32:31 AM. Slide 6 First collaboration model IFIP Conference, Toronto, 1977 /Materials Materials Procurement 1 1 */ Project * Project Leader Leader /Sector Sector Leader Leader * 1 */ Head of * Head of Department 1 /Accounting Accounting 1 The UML Collaboration for Role Modeling 1 * /Project Project Group © Trygve Reenskaug 2000 * 5/29/2016 3:32:31 AM. Slide 7 The OMG vision: A Universe of objects The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:31 AM. Slide 8 CORBA Controls the Interfaces IDL : messages XML: information The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:31 AM. Slide 9 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 © Trygve Reenskaug 2000 5/29/2016 3:32:31 AM. Slide 10 Consider the Universe as a Universe of objects The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:31 AM. Slide 11 The example Activity Network Objects and Interaction fL(t) = Project public void frontLoad (int time ) 0 --20 Activity-B 4:fL(10) 7 (4) 10 14 (3) 16 Activity-F Activity-C Activity-E 18 (2) 19 7 (7) 13 14 (4) 17 Activity-A 1 (6) 6 Activity-D The UML Collaboration for Role Modeling 6:fL(13) © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 12 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 © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 13 Collaborations specify system behavior 1: fL(t1) /F-Pred * 2: fL(t2) /F-Act * /F-Succ Network frontloading collaboration / R-Act Resource allocation collaboration 1: alloc() 1 2: reserv() * / R-Res The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 14 Specialization of Collaboration Frontloading with resources 1: fL(t1) / F-Pred * 2: fL(t2) / F-Act * 1: fL(t1) / C-Pred * / F-Succ 2: fL(t2) / C-Act * 1 1.1: alloc() / C-Succ 1.2: reserv() / R-Act * Synthesized model / C-Res 1: alloc() 1 2: reserv() * / R-Res The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 15 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 © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 16 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 © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 17 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 60.000 bugs removed from Windows2000 during testing The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:32 AM. Slide 18 What is a Component ? Object pluggable on a backplane Objects Collaboration links Backplane (Container) Operating System Net Hardware The UML Collaboration for Role Modeling Thanks to Øystein Myhre for this illustration © Trygve Reenskaug 2000 5/29/2016 3:32:33 AM. Slide 19 Make IT simple so that Programmers and Users can master it Focus on: •Objects ! •Responsibilities ! •Message paths ! •Interfaces ! •Collaborations ! Invisible: Challenge: Manage complexity Code Communication olution: Collaborations & System etc. The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:33 AM. Slide 20 Thank You The UML Collaboration for Role Modeling © Trygve Reenskaug 2000 5/29/2016 3:32:34 AM. Slide 21