The UML Collaboration, a Standard for Role Modeling.” Oslo, June 2000

advertisement
“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
Download