You are on page 1of 177

UML

UML Distilled Third Edition

Martin Fowler

Cris KobrynGrady Booch


Ivar Jacobson Jim Rumbaugh

UML

UML 2.0
4

UML

UML

UML 2.0
1

UML 30 UML 2.0 1.x


UML
UML 2.0
UML

UML

Fowler

UML

Martin Fowler ThoughWorks

UMLMartin

Cindy Melrose
http://martinfowler.com
UML Rational

UML

UML

........................................................................................................................................................ 9
......................................................................................................................................... 12
.................................................................................................................................................. 13
.................................................................................................................................................. 16
...................................................................................................................................................... 18
UML ............................................................................................................... 20
......................................................................................................................................... 21
......................................................................................................................... 22
................................................................................................................................................. 23
CHAPTER 1 ............................................................................................................................... 26
UML................................................................................................................................ 26
UML ............................................................................................................................ 27
UML ............................................................................................................................ 35
............................................................................................................................. 37
UML ........................................................................................................................ 40
UML.................................................................................................................... 43
UML ........................................................................................................................ 45
UML ....................................................................................................................... 45
UML ............................................................................................................................ 47
......................................................................................................................... 48
CHAPTER 2 ....................................................................................................................... 50
.......................................................................................................... 52
.......................................................................................................... 57
............................................................................................................................. 59
RATIOANL ........................................................................................................ 60
...................................................................................................... 62
UML................................................................................................................ 66
..................................................................................................................................... 66
............................................................................................................................................. 67
......................................................................................................................................... 69
......................................................................................................... 72
4

................................................................................................................................. 72
......................................................................................................................... 73
CHAPTER 3 ....................................................................................................... 75
................................................................................................................................. 76
............................................................................................................................................. 77
............................................................................................................................................. 79
............................................................................................................................................. 80
.................................................................................................. 83
......................................................................................................................................... 86
................................................................................................................................................. 89
..................................................................................................................................... 91
............................................................................................................................. 93
............................................................................................................................................. 93
......................................................................................................................................... 98
........................................................................................................................... 102
....................................................................................................................... 103
CHAPTER 4 ......................................................................................................................... 104
........................................................................................................ 110
........................................................................................................ 112
....................................................................................................................... 121
........................................................................................................................... 122
CHAPTER 5 ...........................................................................................................
.................................................................................................................................................
.....................................................................................................................................................
.................................................................................................................................
.........................................................................................................................
.............................................................................................................................
.................................................................................................................................
.................................................................................................................................
.............................................................................................................................
.............................................................................................................................................
..................................................................................................................
.....................................................................................................................
.............................................................................................................................................
..................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.................................................................................................................................................
5

UML
.....................................................................................................................................................
CHAPTER 6 ...............................................................................................................................
.................................................................................................................................
CHAPTER 7 ...............................................................................................................................
.....................................................................................................................................
.............................................................................................................................................
.............................................................................................................................
.................................................................................................................................
.............................................................................................................................
CHAPTER 8 ...............................................................................................................................
.................................................................................................................................
CHAPTER 9 ...........................................................................................................................
.................................................................................................................................
.........................................................................................................................................
..................................................................................................................
..........................................................................................
.................................................................................................................................
.............................................................................................................................
CHAPTER 10 .........................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.................................................................................................................................................
.............................................................................................................................................
.................................................................................................................................
.............................................................................................................................
.............................................................................................................................
CHAPTER 11 .............................................................................................................................
.................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.............................................................................................................................................
/ ................................................................................................................................
.........................................................................................................................................
.................................................................................................................................................
.........................................................................................................................................

.............................................................................................................................................
..................................................................................................................
.................................................................................................................................
.............................................................................................................................
CHAPTER 12 .............................................................................................................................
.................................................................................................................................
CHAPTER 13 .........................................................................................................................
.............................................................................................................................
CHAPTER 14 .............................................................................................................................
.....................................................................................................................................
CHAPTER 15 .........................................................................................................................
.................................................................................................................................
CHAPTER 16 .........................................................................................................................
.................................................................................................................................
CHAPTER 17 .............................................................................................................................
.....................................................................................................................................
APPENDIX UML ................................................................................................ 126
UML .............................................................................................................................. 126
UML .................................................................................................................. 128
UML 1.0 1.1 .................................................................................................... 129
....................................................................................................................... 129
................................................................................................... 130
................................................................................................................................... 130
................................................................................................... 131
............................................................................................................... 131
....................................................................................................... 131
UML 1.2 1.1 1.3 1.5 ............................................ 132
................................................................................................................................... 132
....................................................................................................................................... 133
UML 1.3 1.4 .................................................................................................... 134
UML 1.4 1.5 .................................................................................................... 136
UML 1.X 2.0 .................................................................................................... 136
3 ............................................................................................... 137
4 ................................................................................................................... 138

UML

5 ............................................................................................... 138
10 ............................................................................................................. 138
11 ................................................................................................................. 139
............................................................................................................................................ 140
............................................................................................................................................ 146


OOSIG
http://home.kimo.com.tw/ufjl1572/Chinese/event/event_OOSIG001.htm
OOSIG http://home.kimo.com.tw/areca_chen.tw/OOSIG/oosig-2.htm
OOSIG http://140.109.17.201/OOSIG/OOSIG3/OOSIG3.htm

UML

UML
UML OO
design pattern
pattern language

abstraction
OOSIG open designopen
source UML
UML

UML

development roadmap

OEM ODM ODM

market share

2004/4/16

10

11

UML

Unified Modeling LanguageUML

UML

UML

12

UNIX Smalltalk

Unified Modeling LanguageUML


UML
UML 1.1 UML 2.0
UML

UML
Martin UML 2.0

13

UML

Martin

UML
Martin UML
UML
UML

Martin

UML
UML

UML UML
Martin UML
UML Stephen Mellor
UMLExecutable UML

Martin UML 2.0


Martin UML 2.0

Martin
UML
14

model driven development

UML

Cris Kobryn
UML 2.0 U2 Partners
Telelogic

15

UML

Unified Modeling Language UML

UML

UML

UML

modeling language

UML
Martin Fowler UML
Martin UML
UML 12

16

UML
modeling language

UML
UML

Brandy Booch
Ivar Jacobson
James Rumbaugh

17

UML

1997

Unified Modeling LanguageUML


UML
UML 25

modeling
programming

programming language

modeling modeling language modeling

UML
UML UML

18

UML
UML
UML UML [Booch UML user]
[RumbaughUML Reference]
UML
UML

OO Craig Larman [Larman]


UML UML UML
UML UML

UML
Model Driven ArchitectureMDA
UML UML MDA

19

UML

MDA UML
MDA
MDA MDA Explained: The Model Driven Architecture: Practice
and Promise OMG MDA
UML OO
CRC UML

UML
UML
Java C#
Smalltalk
UML

UML

20

UML OO
UML OO OO

UML

UML
UML

OO
UML
UML Class DiagramSequence
Diagram
UML UML UML

Sequence Diagram
UML

object diagram

package diagramdeployment diagram

21

UML

deployment diagram
OO
use case
state Diagramstate machine diagram
activity diagram

UML 2 UML 2

interaction frame UML 2

UML 2

UML UML

22

UML UML
2003 UML
2 UML 2
UML 2
http://martinfowler.com

Carter Shanklin
Kendall ScottCarter Addison-Wesley Kendall Scott

Addison-Wesley
UML
Jim Odell

UML

UML

Conrad BockSeve CookCris KobrynJim OdellGuus Ramackers Jim Rumbaugh

23

UML

Grady BoochIvae Jacobson Jim Rumbaugh OO

Carter
Simmi Kochhar BhargavaGrady BoochEric
EvansTom HadfieldIvar JacobsonRonald E. JeffriesJoshua KerievskyHelen Klein
Jim OdellJim Rumbaugh Vivek Salgar

Conrad Bock

Craig Larman

Andy Carmichael

Steve Mellor

Alistair Cockburn

Jim Odell

Steve Cook

Alan OCallaghan

Luke Hohmann

Guus Ramackers

Pavel Hruby

Jim Rumbaugh

Jon Kern

Tim Seltzer

Cris Kobryn

martinfowler.com
UML Don BaisleyMorgan BjrkanderConrad
BockSteve CookPhilippe DesfrayNathan DykmanAnders EkDavid Frankel
Eran Geryystein HaugenSridhar IyengarCris KobrynBirger Mller-Pedersen
James OdellGunnar vergaardKarin PalmkvistGuus RamackersJim Rumbaugh

24

Bran SelicThomas Weigert Larry Williams

Pavel Hruby Visio UML


http://phruby.com

Massachusetts Burlington SoftPro


UML
UML
Mike Hendrickson Kim Arney Mulcathy
Addison-Wesley John Fuller Evelyn
Pyle Rebecca Rider
Cindy

Martin Fowler
Massachusetts Melrose
http://martinfowler.com

25

UML

Chapter 1

UML
Unified Modeling LanguageUML
notationmeta model
object-orientedOO
UML

UML

graphical modeling language

UML
UML Object Management GroupOMG
OMG
26

interoperability
Common Object Request
OMG
Broker ArchitectureCORBA
UML 1980 1990 1997

UML
UML

UML
UML UML

UML UML
Steve Mellor UML
UML
UML
UML UML
forward-engineering
reversee engineering

27

UML

UML UML

(1) UML (2) CASE


(3)(4) CASE
UML CASE

UML

2 iteration

UML

UML
UML

UML

28

3
UML

refactoring

CASE
CASE

29

UML

round-trip tool

tripless tool

UML
CASE

UML UML
UML
UML
UML

UML
UML Model Driven Architecture
MDA[Kleppe et al.]MDA UML

30

UML OMG MDA


MDA
MDA UML MDA UML
UML MDA
MDA
Platform Independent ModelPIMPIM UML
PIM Platform Specific ModelPSMPSM

PSM PSM UML UML


MDA
PIM J2EE .NET
PSM

PIM PSM PSM


UML
UML
Steve Mellor UML
Executable UML[Mellor and Balcer] UML MDA
MDA
PIM UML
PSM
archetype
UML
31

UML

J2EE .NET
UML
5
UML UML UML
UML UML

UML
UML

Smalltalk
Smalltalk Smalltalk
Smalltalk
UML
UML UML 2
interaction diagramstate
diagramactivity diagram
UML
UML
UML software
32

perspectiveUML
UML

conceptual perspective UML

UML UML

UML asset pool

6
specification perspective

interface perspectiveimplementation perspective

UML UML
UML
UML

UML UML
UML UML UML
33

UML

UML
UML

UML
UML

UML UML

UML

UML

UML
UML

34

UML

UML
UML

1980 Smalltalk
C++

1988 1992
Grady Booch[BoochOOAD]Peter Coad[CoadOOA][CoadOOD]Ivar
Jacobson(Objectory)[Jacobson

OOSE]

Jim

Odell[Odell]

Jim

Rumbaugh(OMT)[Rumbaughinsights][RumbaughOMT]Sally Shlaer Steve


Mellor[Shlaer

and

Mellor data] [Shlaer

and

Mellor states] Rebecca

Wirfs-Brock(Responsibility Driven Design)[Wirfs-Brock]

OMG

35

UML

UML Jim Rumbaugh Grady Booch


Rational IBM
Booch/Rumbaugh
Grady Jim

Booch
8
95 OOPSLA Grady Jim 0.8
Unified Method Rational Objectory
Ivar Jacobson Rational
0.8 Jim Rumbaugh 0.8

OMG
Rational Ivar
OMG
OMG
OMG
OMG
Rational Ratioanl
OMG CASE
OMG
UML CASE
Mary Loomis Jim Odell Odell
Rational

36

1997
Rational UML 1.0

OMG
1.1 OMG 1.2
1.3 1.4
component

profile
1.5
action
semantic
9
UML Grady BoochIvar Jacobson Jim Rumbaugh
UML
UML
UML
Booch/Rumbaugh
OMG Jim Rumbaugh
UML UML

UML
modeling languageclass
diagramsclassassociationmultiplicity

37

UML

predicate calculus

1-1 UML featurerelationship

UML

UML

38


Feature

Structural Feature

Behavioral Feature

0.1

{ordered} *

Parameter
1-1 UML

10
UML UML

UML
UML
UML

11

39

UML

UML
UML 2 13 1.1 1.2
UML
UML UML

UML

1.1 UML

activity

11

UML 1

UML 1

diagram
class diagram

35

communication

12

UML 1

link

diagram

collaboration
diagram

component

14

structure

UML 1

connection

diagram
composite

13

40

UML 2

deployment

UML 1

node

diagram
interaction

16

UML 2

UML 1

overview diagram
object diagram

package

diagram
sequence

10

UML 1

diagram

timing diagram

UML 1

diagram
state machine

UML 1

17

UML 2

use case
diagram

41

UML 1

UML

1.2 UML
13

42

UML
UML

UML

UML
UML

Acadmie Franaise Acadmie


FranaiseUML
UML UML

UML
UML UML

43

UML

UML UML

UML UML UML


UML 2
UML 1
UML UML

UML UML

14
UML UML

UML 1

property

44


UML

UML UML

UML
UML
UML UML UML
UML
UML

UML
UML

UML
UML
15

45

UML

1.3 screen flow diagram

UML

1.2

1.2

1.3 wikihttp://c2.com/cgi/wiki

46

1.2

$150

$100

$70

$50

$80

$60

z
16

UML

UML
UML UML
UML
UML
UML

47

UML

UML

UML
UML
2003 UML 2.0

UML 2
17
[Larman]

UML

[RumbaughUML Reference]
[Martin]

48

49

UML

Chapter 2

19
UML OOAD
graphical
modeling language
UML

UML
UML

UML

50

UML

UML Rational
Rational Unified ProcessRUPRUP
process framework RUP UML
Rational UML
UML
RUP
Process Patterns:
Building Large-Scale Systems Using Object TechnologyScott W. Ambler1998

process pattern(1)task process pattern
(2)stage process pattern
(3)phase
process pattern

RUP RUP
inceptionelaboration
constructiontransition
discipline
business modeling

51

UML

RUP

waterfalliterative

20

2 4 3
3

3 iteration 1/4
1/4
1/4
6 1/2
52

release
21
jacuzzi
spring to mind
/

53

UML

[McConnel]
staged delivery life cycle
4
4 2

OO
UML

...

54

time boxing

build
22

automated regression tests


xUnit testing
frameworkunit test JUnit

55

UML

http://junit.org
http://www.xprogramming.com/software.htm

refactoring[Fowler,
refactoring]

http://www.refactoring.com

continuous integration
[Fowler and Foemmel]build
process

Extreme ProgrammingXP[Beck]
XP agile procss

23

56

preditive planning

requirement churn

57

UML

Health Information SystemHIS

Writing Effective Use Cases 16


12

adaptive planning

24
/

/
58

agile software process


agile
http://agileManifesto.org

Extreme ProgrammingXPScrum Feature Driven
Crystal
Dynamic Systems
DevelopmentFDD
Development MethodDSDM

59

UML

25

UML UML UML

Ratioanl
Rational RUP UML

RUP
RUP
development case

60

RUP
RUP

RUP
RUP
RUP
RUP
1.

inception

2.

elaboration

26

3.

construction

4.

transition

61

UML

RUP Unified ProcessUP


RUP Ratioanl
RUP Rational UP
RUP UP

62

27

UML patterns

process

remote procedure
call
proxy
interface

real object

63

UML

[Ganf of Four]
23

28

[Gang of Four][POSA1][POSA2][Core J2EE Patterns][Pont]

64

[Fowler, AP][Fowler, P of EAA]


http://www.hillside.net/patterns

iteration retrospective

1.

2.

3.


project retrospective
http://www.retrospectives.com/[Kerth]

29
65

UML

UML

19701980

UML CASE
UML

UML
z

use case

class diagram

66

activity diagram

state diagram

UML

30
UML
UML

67

UML

sequence diagram
CRC CRC card

package diagram

deployment diagram

UML
UML
UML

analysis diagram

UML

31

68

UML

UML

UML
UML
UML
Ward Cunningham[Cunningham]

69

UML

384
JavaDoc

UML

Amazon UML

UML 2

UML 2
UML 2 UML 2
UML
UML 2 MDA
MDA UML
UML 2
UML

32

70


dependency
8

state machine diagram


10

11

71

UML

UML

UML

UML
UML

UML

33

72

OO

[McConnell]

[Cockburn, agile][Highsmith]
UML [Ambler]

XP
http://xprogramming.comhttp://www.extremeprogramming.org
XP XP
XP [Beck]

73

UML

[Beck and Fowler] XP


XP

Rational [Kruchten]

74

Chapter 3

35
UML
class diagrams UML

5
types

propertyoperation
UML
constraint

feature

75

UML

property attribute UML


property property
feature
feature of class
3.1

3.1 associations

generalization

structural feature
field

36

76

3.1
UML 2
behavioral feature

attributes

: = {-}
visibility name: type multiplicity = default {property-string}
77

UML

37

- name: String [1] = Untitled {readOnly}

visibilitypublic+
private- 5

type

multiplicity

default value

{-}
{readOnly}

{unrestricted}

78

3.2 3.3

3.2

3.3
38

value type
79

UML

0..1

2..4
*
1 1..1 0..*
*
39

optional 0

80

mandatory 1

single-valued 1

multivalued 1 *

set

{ordered}association
end{nonunique}
{unordered}{unique}

collection-oriented{bag}

81

UML

UML
C++Standard Template
LibrarySTL Java Collections Framework
_C_container class_C_

STL

Collections
Framework

vector

ArrayList
Vector

list

LinkedList

stack

Stack

LIFO
FIFO

queue
map

TreeMap

<key, value>

set

TreeSet

map

82

UML 1 2, 4 2 4
UML 2
[1] UML
[1]

[1]

UML
3.1 Order
Line Java
public class
private
private
private
private

OrderLine
int quantity;
Money price;
Order order;
Product product;

40
C#
public class OrderLine
public int Quantity;
public Money Price;
public Order Order;
public Product Product;

accessor methodgetting method

83

UML

setting method
setting action

Order Line
public class OrderLine
private int quantity;
private Product product;
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public Money getPrice() {
return product.getPrice().multiply(quantity);
}

Order Line

property property

Order
Order Line
Java List
.NET IList
set
84

array
UML
Java
41
class Order {
private Set lineItems = new HashSet();
public Set getLineItems() {
return Collections.unmodifiableSet(lineItems);
}
public void addLineItem(OrderItem arg) {
lineItems.add(arg);
}
public void removeLineItem(OrderItem arg) {
lineItems.remove(arg);
}

add remove Line Items

proxy
iterator

85

UML

UML 16 GRASP
GRASP
UML

unidirectional association

bidirectional association 3.4


42

3.4
3.4 Car
owner:Person[1] Person cars:Car[*]
cars

86


MG Midget
Midget

3.5

3.4 navigability arrow


3.5 UML
3.4

3.5

C#
43
87

UML
class Car
public Person Owner {
get {return _owner;}
set {
if (_owner != null) _owner.friendCars().Remove(this);
_owner = value;
if (_owner != null) _owner,friendCars().Add(this);
}
}
private Person _owner;

class Person
public IList Cars {
get {return ArrayList.ReadOnly(_cars);}
}
public void AddCar(Car arg) {
arg.Woner = this;
}
private IList _cars = new ArrayList();
internal IList friendCars() {
// Car.Owner
return _cars;
}


Person
friendCars

friend
C++setterfriend

navigability

88



method

44
UML
() : {-}
visibility name (parameter-list) : return-type {property-string}

+-
5

return types

-
{query}

: =
direction name: type = default value

directionin
outinout
in
89

UML

+ balanceOn (date: Date): Money

CRC 5

UML query
{query}

modifiers
query
constructor
desctructormodifier

query modifiers [Meyer]

query
modifiers

45
getting methodsetting method

90


procedure body

procedure declaration
polymorphismsupertype
getPrice
subtype

Customer

supertype Personal Customer Corporate Customer


subtype
Corporate
CustomerInstance Customer
Corporate Customer Customer Corporate
Customer Customer Customer
Corporate Customer
inheritanceCorporate
Customer Customer subclass OO
superclass

91

UML

46
substitutability
Customer Corporate Customer
Customer
Customer Corporate Customer
Customer

[Martin] Liskov

Liskov Substitution PrincipleLSP

Java Vector
Vector
Vector


subtyping interface inheritance
subclassingimplementation inheritance

5 design pattern[Gang of Four]

92


notecomment
3.6

UML 1.x Note UML 2 Comment


Note Symbol UML 1.x Note
Comment Note Symbol

--

3.6
47

supplier
clientdependency

93

UML

aspect-oriented programmingAOP

model driven architectureMDA

UML

3.7 Benefits Windows


presentation class Employee
Employee domain object
business rule
Employee Benefits Windows

Benefits Windows Employee

94

3.7
48
Benefits Windows data
gateway Employee
Employee

UML
basic dependency

3.1
XX OO
Jim Grady Grady Ivar
Jim Ivar substitute

3.7

95

UML

UML 3.1 Order Customer


Order Customer

3.1

<<call>>

<<create>>

<<derive>>

<<instantiate>>

class
metaclass

<<permit>>

friend

C++

<<realize>>

<<refine>>

<<substitute>>

<<trace>>

96

<<use>>

49

package diagram

<<parameter>><<local>><<global>> UML 1

UML 2

UML

97

UML

constraints 3-1 Order


Customer Line Item
40 40 40
40 Corporate Customers
Personal Customers

UML {}
UML Object Constraint
Language OCL[Warmer Kleppe]OCL

OCL

50

{: }

98


Design by Contract Bertrand Meyer[Meyer]
Eiffel Eiffel

assertionsboolean

post-conditions
pre-conditionsinvariants

input=result*result
result input

input>=0

99

UML

discipline-oriented
comminucation-oriented

collective
code ownership
51

exception

invariants
balance == sum(entries.amount())

100

subclassing
subclassessuperclasses

dynamic binding
the principle of substitutability

101

UML

UML
5
52

102


1 UML
[Martin]

103

UML

Chapter 4

53
interaction diagrams
UML sequence
diagram
scenario
use case

4.1
participantlifeline

104


getQuantity getProduct
getDiscountInfo

getQuantitygetProductgetPricingDetails calculateBasePrice
calculateDiscounts

UML 1
UML 2

UML UML 1
UML 2

54

105

UML

4.1
anOrder
: name: Class
4.4

activation bar

UML

55

getProduct aProduct getProcingDetails


106

aProduct
return

found message
UML 2 lost message

4.2
Order Order Line
Order Line Product
ProductOrder Customer
Customer Order
Order getBaseValue

107

UML

4.2
56

4.1 centralized control


4.2
distributed control

108

polymorphism

OO

OO

test driven development


TDDtest case

109

UML

4.3

new

UML 2

X
X
57

110

4.3
JVM
X
X
duration constraint

time constraintCode
duration observation d User ACSystem
d{d..3*d} Code OK
3*d CardOut
Code 13 User CardOut
OK User 3 Usertime observation
now OK User

111

UML

UML 2.0 Superstructure Final Adopted Specification

activity
diagram

58

interaction frame
pseudocode 4.4
prodcedure dispatch
foreach (lineitem)
112

if (product.value > $10K)


careful.dispatch
else
regular.dispatch
end if
end for
if (needsConfirmation) messager.confirm
end procedure

4.4
59
fragment

guard
4.1 loop

alt
opt

113

UML

1UML 2
4.1 sd interaction
ref interaction occurrence
sd ref
combined fragment sd
sd 4.4 sd

2fragment fragment
interaction fragmentfragment interaction
operand

UML 2.0 Superstructure Final Adopted Specification

114

UML 2.0 Superstructure Final Adopted Specification


UML 2 UML 2
4.5

UML 1 iteration markerguard


*

UML 2

115

UML

4.5

4.1

alt

4.4
alt ifthenelseendif switch case

opt

trace
alt 4.4
1 UML 2 trace
sequence of eventoccurrences
trace
2opt ifendif

par

1 par
par
seq strictseq

weak sequencing par


116


strict strict
sequencing seq

parseq strict
loop

1 UML 2 loop
loop(minint, maxint)
maxint minint maxint *
minint maxint minint
0 maxint *
2 loop break

UML 2 for Dummies


critical thread
neg

117

UML

neg assert

ignore
consider

ignore {}
consider{}
M t r
qv w v
q state
invariantpre-condition Y
mystate

post-condition

state
icon
{Y::mystate}

118

UML 2.0 Superstructure Final Adopted Specification


ref

ref
():
interactionname (arguments): return value

UML Bible
sd

119

UML

sd

(sending)EventOccurrence
(receiving)EventOccurrence
gate

UML 2.0 Superstructure Final Adopted Specification


60

120

4.5
pseudomessage
4.5

alternative marker
4.5 dispatch

4.5

61
UML

data tadpole UML

UML 1 UML 2 UML 2


121

UML

synchronous message

asynchronous message

UML 1.4 4.5

UML 2

62

122

state diagram

10
11
CRC CRC card

CRC

communication diagram
timing diagram

CRC
OO
1980 Ward
Cunninghan CRC-- 4.6
UML

CRC

123

UML

Order

Order Line

Customer

4-6 CRC
63
CRC responsibility

C collaborator

CRC

CRC

124

Ward
CRC Kent Beck
CRC [Beck and Cunningham] CRC
[Wirfs-Brock]

125

UML

Appendix

UML

151
UML 1.0 UML
OMG
UML 1.0
UML
UML
UML

UML
UML Unified Method 0.8 OOPSLA
1995 Booch Rumbaugh Jacobson

126

Rational 1996 Rational 0.9 0.91


Jacobson UML
1997 Rational 1.0 UML OMG
1997 Rational 1.0 UML
1.1 UML OMG 1997 OMG
OMG 1.0 UML
OMG 1.0 Rational 1.1 OMG 1.0 Rational 1.0
OMG 1.0 1.1
Rational
152
UML UML 1.2 1998 1.3 1999 1.4
2001 1.5 2002 1.x
UML 1.3 use caseactivity
diagram
UML 1.x UML UML
UML 2 RPF 2000 2003
UML 2
UML UML http://uml-forum.com
http://martinfowler.com UML

127

UML

UML
UML UML UML Distilled

UML
UML 1 5 UML 1.0
6 UML 1.1
7 10 UML 1.2 11 UML 1.3
UML
1 6 UML 1.3 7 UML 1.4

UML 2 A.1
UML 1.0 1.11.2 1.3 1.x 2.0
UML
UML UML
UML
UML

153

128

A.1 UML UML


UML

UML

UML 1.0-1.3

UML 1.3-1.4

UML 2

UML 1.0 1.1

class diagramsUML
specializedtypeimplementation class

class
CORAB typesclass
abstraction
stereotype

129

UML

realization
interface Java COM interface
operationattribute
classification
OO

154

{complete} constraints
generalizationsupertypeinstance

subtypeUML 1.1 {complete}

{mandatory}

UML 1.0 single-valuedcomponent


composition

association

immutabilityfrozen

130


UML {frozen}association role
frozen
immutability

UML 1.0 sequence diagramsreturn

UML 1.1
Analysis Patterns[Fowler, AP]
enoughStock=check()

155

UML 1.0 roledirection


UML 1.1

collaboration roleUML 1.1

131

UML

UML 1.2 1.1 1.3


1.5

UML 1.1
<<uses>><<entends>>generalizationUML 1.3

<<include>>dependencies

ATM
<<includes>><<uses>>

specializing

specialized use casesbase use cases

<<extend>>
extending use cases
extension point

132

156
1.3
<<include>><<uses>><<include>>
<<uses>> 1.3 <<extend>> 1.1
<<extends>> 1.1 <<extends>> 1.3 <<extend>>

UML 1.2 activity diagram


1.3
conditionalbranche

merge

synchronization barfork

joinarbitrary
condition

thread

133

UML

incoming thread

multiple trigger
concurrent*
outgoing transition
synchronization condition
state machine
RTF UML
UML 2

157

UML 1.3 1.4


UML 1.4 profile
UML
UML
1.3

134

UML artifactcomponent
Xerces Xerces.jar
Xerces
UML 1.3 1.3 meta-model Java

package visiability~
UML 1.4

135

UML

UML 1.4 1.5


UML action semantic UML
UML 2 UML

UML 1.x 2.0


UML 2 UML

UML 2

UML 2
object diagrampackage diagram
UML 2 collaboration diagram

communication diagramUML 2
interaction overview diagramtiming diagram

composite structure diagram


158
state machine extension
gatewaypower type

136

1 Truck Car
Vehicle sublcass Vehicle Type Vehicle
Truck Car Person Type

UML 2.0 Superstructure Final Adopted Specification


2generalizable
specialised state machinegeneral state
machine

3
property
multiplicity[2, 4]frozen

137

UML

UML 2
<<parameter>><<local>>

4
interaction frame
algorithm

*lifeline
instanceparticipantUML 1
UML 2

instance specification
multiple classificationgeneralization
setactive object

159

10
UML 1 UML 2
do-activity

138

11
UML 1 UML 2
UML 2
token flow
UML 2 time signal

accept signaljoin specificationpin


flow transformationexpansion region
flow final
UML 1
merge UML 2

swim linepartition

139

UML

[Ambler]
Scott Ambler, Agile Modeling, Wiley, 2002.
[Beck]
Kent Beck, Extreme Programming Explained: Embrace Change, AddisonWesley, 2000.
( 91) :
[Beck and Fowler]
Kent Beck and Martin Fowler, Planning Extreme Programming, AddisonWesley, 2000.
( 91) :
[Beck and Cunningham]
Kent Beck and Ward Cunningham, "A Laboratory for Teaching Object-Oriented
Thinking,"

Proceedings

of

OOPSLA

89,

24

(10):

1-6.

http://c2.com/doc/oopsla89/paper.html
[Booch, OOAD]
Grady Booch, Object-Oriented Analysis and Design with Applications, Second Edition.
Addison-Wesley, 1994.
[Booch, UML user]
140

Grady Booch, Jim Rumbaugh, and Ivar Jacobson, UML User Guide, Addison-Wesley,
1999.
( 90)UML :
[Coad, OOA]
Peter Coad and Edward Yourdon, Object-Oriented Analysis, Yourdon Press, 1991.
[Coad, OOD]
Peter Coad and Edward Yourdon, Object-Oriented Design, Yourdon Press, 1991.
[Cockburn, agile]
Alistair Cockburn, Agile Software Development, Addison-Wesley, 2001.
[Cockburn, use cases]
Alistair Cockburn, Writing Effective Use Cases, Addison-Wesley, 2001.
( 92) - :

[Constantine and Lockwood]


Larry Constantine and Lucy Lockwood, Software for Use, Addison-Wesley, 2000.
[Cook and Daniels]
Steve Cook and John Daniels, Designing Object Systems: Object-Oriented
Modeling with Syntropy, Prentice-Hall, 1994.
[Core J2EE Patterns]
Deepak Alur, John Crupi, and Dan Malks, Core J2EE Patterns, Prentice-Hall, 2001.
( 91)J2EE :

[Cunningham]
Ward Cunningham, "EPISODES: A Pattern Language of Competitive Development." In
Pattern Languages of Program Design 2, Vlissides, Coplien, and Kerth, Addison-Wesley,
1996, pp. 371-388.

141

UML

[Douglass]
Bruce Powel Douglass, Real-Time UML, Addison-Wesley, 1999.
[Fowler, AP]
Martin Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, 1997.
[Fowler, new methodology]
Martin

Fowler,

"The

New

Methodology,"

http://martinfowler.com/articles/newMethodology.html
[Fowler and Foemmel]
Martin Fowler and Matthew Foemmel, "Continuous Integration," http://
martinfowler.com/articles/continuousIntegration.html
[Fowler, P of EAA]
Martin Fowler, Patterns of Enterprise Application Architecture, AddisonWesley, 2003.
[Fowler, refactoring]
Martin Fowler, Refactoring: Improving the Design of Existing Programs,
Addison-Wesley, 1999.
( 92) :
[Gang of Four]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns:
Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
( 91) :
[Highsmith]
Jim Highsmith, Agile Software Development Ecosystems, Addison-Wesley, 2002.
[Hohmann]
Luke Hohmann, Beyond Software Architecture, Addison-Wesley, 2003.

142

[Jacobson, OOSE]
Ivar

Jacobson,

Magnus

Christerson,

Patrik

Jonsson,

and

Gunnar

Overgaard,

Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley,


1992.
[Jacobson, UP]
Ivar Jacobson, Maria Ericsson, and Agneta Jacobson, The Object Advantage: Business
Process Reengineering with Object Technology, Addison-Wesley, 1995.
[Kerth]
Norm Kerth, Project Retrospectives, Dorset House, 2001
[Kleppe et al.]
Anneke Kleppe, Jos Warmer, and Wim Bast, MDA Explained, Addison-Wesley, 2003.
[Kruchten]
Philippe Kruchten, The Rational Unified Process: An Introduction, Addison-Wesley, 1999.
( 91)Rational :
[Larman]
Craig Larman, Applying UML and Patterns, 2d ed., Prentice-Hall, 2001.
( 91)UML :
[Martin]
Robert Cecil Martin, The Principles, Patterns, and Practices of Agile Software
Development, Prentice-Hall, 2003.
[McConnell]
Steve McConnell, Rapid Development: Taming Wild Software Schedules,
Microsoft Press, 1996.
[Mellor and Balcer]
Steve Mellor and Marc Balcer, Executable UML, Addison-Wesley, 2002.

143

UML

B-power ( 92)Executable UML :

[Meyer]
Bertrand Meyer, Object-Oriented Software Construction. Prentice-Hall, 2000.
[Odell]
James Martin and James J. Odell, Object-Oriented Methods: A Foundation (UML Edition),
Prentice Hall, 1998.
[Pont]
Michael Pont, Patterns for Time-Triggered Embedded Systems, Addison-Wesley, 2001.
[POSA1]
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal,
Pattern-Oriented Software Architecture: A System of Patterns, Wiley, 1996.
[POSA2]
Douglas Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann, Pattern-Oriented
Software Archtecture Volume 2: Patterns for Concurrent and Networked Objects, Wiley,
2000.
[Rumbaugh, insights]
James Rumbaugh, OMT Insights, SIGS Books, 1996.
[Rumbaugh, OMT]
James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and
William Lorenzen, Object-Oriented Modeling and Design, Prentice-Hall, 1991.
[Rumbaugh, UML Reference]
James Rumbaugh, Ivar Jacobson, and Grady Booch, The Unified Modeling
Language Reference Manual, Addison-Wesley, 1999.
144

[Shlaer and Mellor, data]


Sally Shlaer and Stephen J. Mellor, Object-Oriented Systems Analysis: Modeling the
World in Data, Yourdon Press, 1989.
[Shlaer and Mellor, states]
Sally Shlaer and Stephen J. Mellor, Object Lifecycles: Modeling the World in States.
Yourdon Press, 1991.
[Warmer and Kleppe]
Jos Warmer and Anneke Kleppe, The Object Constraint Language: Precise Modeling with
UML, Addison-Wesley, 1998.
[Wirfs-Brock]
Rebecca Wirfs-Brock and Alan McKean, Object Design: Roles Responsibilities and
Collaborations. Prentice-Hall, 2003.

145

UML

A
Abstract classes, relationship of classes
to interfaces, 69-72
Actions
expansion regions, 126-127
UML version changes, 157
Active classes, 83
Activities, exit, 109
Activity diagrams, 11-12
actions, expansion regions, 126-127
basics, 117-119
decomposing actions, 119-121
edges, 124-125
flow final, 127-128
flows, 124-125
Petri Nets, 130
joins, 118-119
specifications, 128-129
146

partitions, 120-121, 122


pins, 125
requirement analysis, 29
resources, 130
signals, 121-123
times to use, 129-130
tokens, 124
transformations, 125-126
UML version changes, 156-157, 159
Activity state, 109-110
Actors, 99-100, 143-144
Acyclic Dependency Principle, 91
Aggregation, 67-68
Agile development processes, 24-25
resources, 33
Aliasing, 74
Analysis Patterns, 154
Archetypes, 4
Artifacts, 97-98
UML version changes, 157
Assertions, 50
subclassing, 51
Association classes, 78-80
Associations, class properties, 37-38

147

UML

bidirectional, 41-43
immutability versus frozen, 154
qualified, 75-76
unidirectional, 41
Associative arrays. See Qualified associations
Asynchronous messages, 61
Attributes
class properties, 36-37, 39
classes, 66-67
mandatory, 39
Automated regression tests, 22

B
Ball and socket notation, 71
Beck, Kent, CRC cards, 63
Bidirectional associations, 41-43
Blueprints, UML as
forward engineering, 2-3, 6
reverse engineering, 3, 6
Booch, Grady, UML history, 7-9
Bound elements, 81-82
Branches, 119
Business use cases, 103

148

C
CASE (computer-aided software engineering) tools, 3
UML history, 8
Centralized control of sequence diagramming, 55-57
Ceremony, agile processes, 25
Class diagrams, 9, 11-12
abstract classes, 69-72
active classes, 83
aggregation and composition, 67-68
association classes, 78-80
classifications, 75-76
dynamic and multiple, 76-77
comments, 46
constraint rules, 49-50
dependencies, 47-49
design, 30
documentation, 32
generalizations, 45-46, 75-76
keywords, 65-66
messages, 84-85
notes, 46
operations, 43-46
properties (See Class properties)
reference objects, 73-74
requirement analysis, 29
resources, 52

149

UML

responsibilities, 66
starting with UML, 16
static operations and attributes, 66-67
template (parameterized) classes, 81-82
times to use, 51-52
UML version changes, 158
value objects, 74
versus object diagrams, 88
visibility, 83-84
Class properties. See also Classes
associations, 37-38
associations, bidirectional
associations, 41-43
associations, immutability versus
frozen, 154
associations, qualified, 75-76
attributes, 36-37
basics, 35-38
derived, 68
frozen, 72
generalizations, 45-46
multiplicity, 38-39
program interpretations, 39-41
read-only, 72
Class-Responsibility-Collaboration (CRC) cards , 62-63
Classes. See Class properties
abstract, 69-72
association, 78-80
150

attributes, 66-67
Class-Responsibility-Collaboration (CRC) cards, 62-63
derivation, 81-82
dynamic data types, 153-154
generalizations, 35, 36
implementation, 153-154
presentation, 47
static data types, 153-154
static versus dynamic classifications, 77-78
subclassing, 51
template (parameterized), 81-82
Classifications
data types, 153-154
dynamic and multiple, 76-77
implementation classes, 153-154
versus generalizations, 75-76
Clients/suppliers, 47
Coad, Peter, UML history, 7
Cockburn, Alistair, use cases, 105
Collaboration diagram. See Communication diagrams
Collaborations
roles, 143-144
sequence diagrams, 144
times to use, 146
Comments in class diagrams, 46
Common Closure and Reuse Principles, 91

151

UML

Common Object Request Broker Architecture (CORBA) standards


, 1
Communication diagrams, 11-12
basics, 131-133
times to use, 133
Component diagrams, 11-12
basics, 139-141
times to use, 141
Composite structure diagrams, 11-12
basics, 135-136
times to use, 137
Composition, 67-68
changes between UML versions, 154
Computer-aided software engineering (CASE) tools, 3
UML history, 8
Conceptual perspectives of UMLUML , 5-6
Concurrent states, 111
Conditionals, 57-61
decisions and merges, 119
Constraints
complete/incomplete, 154
rules, 49-50
Construction, RUP projects, 26

152

Continuous integration, 22
Conventional use, 13-14
CORBA (Common Object Request Broker Architecture), 1
CRC (Class-Responsibility-Collaboration) cards, 62-63
Crystal, agile development process, 24-25
Cunningham, Ward, CRC cards, 62-63
D
Data tadpoles, 61
Data types, 74
dynamic and multiple classifications, 153-154
implementation classes, 153-154
Decisions, 119
Dependencies, 47-49
keywords, 48-49
packages, 91-93
resources, 52
UML version changes, 155
Deployment diagrams, 11-12
artifacts, 97-98
design, 30
devices, 97-98
execution environments, 97-98
nodes, 97-98
times to use, 98

153

UML

Derivation of classes, 81-82


Derived properties, class diagrams, 68
Descriptive rules, UML, 13-14
Design, 30-31
Development cases, 25
Development processes
agile, 24-25
DSDM (Dynamic Systems Development Method), 24-25
Extreme Programming (XP), 22, 24-25, 33
fitting processes to projects, 26, 28-29
FOD (Feature Driven Development), 24-25
iterative, 19-22
lightweight, 25
Manifesto of Agile Software Development, 24-25
Rational Unified Process (RUP), 25
resources, 33
selecting, 33
staged delivery, 21
waterfall, 19-22
Devices, 97-98
Diagrams
activity, 11-12
actions, expansion regions, 126-127
basics, 117-119
decomposing actions, 119-121

154

edges, 124-125
flow final, 127-128
flows, 124-125
flows, Petri Nets, 130
joins, 118-119
joins, specifications, 128-129
partitions, 120-121, 122
pins, 125
requirement analysis, 29
resources, 130
signals, 121-123
times to use, 129-130
tokens, 124
transformations, 125-126
UML version changes, 156-157, 159
basics, 10-12
class, 9, 11-12
abstract classes, 69-72
active classes, 83
aggregation and composition, 67-68
association classes, 78-80
classifications, 75-76
classifications, dynamic and multiple, 76-77
comments, 46
constraint rules, 49-50
dependencies, 47-49
design, 30
documentation, 32
generalizations, 45-46, 75-76

155

UML

keywords, 48-49, 65-66


messages, 84-85
notes, 46
operations, 43-46
properties (See Class properties)
reference objects, 73-74
requirement analysis, 29
resources, 52
responsibilities, 66
starting with UML, 16
static operations and attributes, 66-67
template (parameterized) classes, 81-82
times to use, 51-52
UML version changes, 158
value objects, 74
versus object diagrams, 88
visibility, 83-84
classifications, 12
communication, 11-12, 131-133
component, 11-12, 139-141
composite structure, 11-12
basics, 135-136
times to use, 137
deployment, 11-12
artifacts, 97-98
design, 30
devices, 97-98
execution environments, 97-98

156

nodes, 97-98
times to use, 98
interaction
basics, 53-56, 147-148
CRC cards, 62-63
design, 30
loops and conditionals, 57-61
participants, 53-57
sequence diagrams, 53-56
synchronous and asynchronous
messages, 61
times to use, 147, 150
interactive overview, 11-12
object, 11-12
times to use, 87-88
package, 11-12
basics, 89-91
design, 30
documentation, 32
resources, 95
times to use, 95
UML version changes, 157
sequence, 11-12
basics, 53-56
centralized and distributed control, 55-57
collaborations, 144
CRC cards, 62-63
interaction diagrams, 53-56
loops and conditionals, 57-61

157

UML

participants, 53-57
returns, 154
starting with UML, 16
synchronous and asynchronous
messages, 61
times to use, 61-63
UML version changes, 158
shortcomings, 14-16
starting point, 16
state machine, 11-12
activity status, 109-110
basics, 107-109
concurrent states, 111
implementing, 111-114
initial pseudostate, 107
internal activities, 109
requirement analysis, 29
resources, 115
superstates, 110-111
times to use, 114-115
transitions, 107-108, 111
UML version changes, 159
timing, 11-12
basics, 149-150
types, 11
types, UML version changes, 157-158
use case

158

basics, 102-103
requirement analysis, 29
viewpoints, 6
Dictionaries. See Qualified associations
Distributed control of sequence diagramming, 55-57
Do-activities, 110
Documentation, 31-32
Domain objects, 47
DSDM (Dynamic Systems Development Method), 24-25
Dynamic classifications, 77-78
data types, 153-154
E
Edges, 124-125
Eiffel programming language, 50
Engineering, forward
UML as blueprints, 2-3, 6
UML as programming languages, 3
UML as sketches, 2
Entry activities, 109
Enumerations, 82
Event switches switch , 111
Evolutionary development process. See Iterative development process

159

UML

Executable UML UML, 4-5


Execution environments, 97-98
Exit activities, 109
Expansion regions, 126-127
Extensions, 100-102
Extreme Programming (XP)
agile development process, 24-25
resources, 33
technical practices, 22

F
Facades, 90-91
Features of use cases, 104
Fish-level use cases, 103-104
Flows, 124-125
flow final, 127-128
Petri Nets, 130
FDD (Feature Driven Development), 24-25
Forks, 117, 119
UML version changes, 156
Forward engineering

160

UML as blueprints, 2-3, 6


UML as programming languages, 3
UML as sketches, 2
Found messages, 55
Frozen property, 72, 154
Fully qualified names, 89

G
Gang of Four, 27-28
Generalizations, 35, 36
class properties, 45-46
sets, 76-77
UML version changes, 155
versus classifications, 75-76
Getting methods, 45
Graphical modeling languages, 1
Guarantees, 102
Guards, 59

H
Hashes. See Qualified associations
History pseudostate, 111-112

161

UML

Implementation classes, data types, 153-154


Include relationships, 101
Incremental development process. See Iterative development process
Initial node actions, 117, 119
Initial pseudostate, 107
Instance specifications, 87
Integration, continuous, 22
Interaction diagrams
basics, 53-56, 147-148
CRC cards, 62-63
design, 30
loops and conditionals, 57-61
participants, 53-57
sequence diagrams, 53-56
synchronous and asynchronous
messages, 61
times to use, 147, 150
Interaction frames
loops and conditionals, 58-59
operators, 59
Interactive overview diagrams, 11-12
Interfaces, 65
relationship to classes, 69-72

162

Internal activities, entry and exit, 109


Internal activities, exit activities, 109
Invariants, 51
Iteration markers, 59
Iteration retrospective, 28
Iterations, 20
timeboxing, 21-22
Iterative development process, 19-22

J
Jacobson, Ivar
UML history, 7-8
use cases, 105
Jacuzzi development process. See Iterative development process
Joins, 118-119
specifications, 128-129
UML version changes, 156
K
Keywords, class diagrams, 48-49, 65-66
Kite-level use cases, 103-104

L
Legacy code, 32
163

UML

Lightweight development processes, 25


Lollipop notation, 71-72, 73
Loomis, Mary, UML history, 8
Loops, 57-61

M
Main success scenario, 100-102
Mandatory attributes, 39
Manifesto of Agile Software Development, 24-25
Maps. See Qualified associations
Markers, iteration, 59
MDA (Model Driven Architecture), 4
Mellor, Steve
Executable UML, 4
UML history, 7
Merges, 119
Messages, 84-85
asynchronous and synchronous, 61
class diagrams, 84-85
found, 55
pseudomessages, 60
Meta-models

164

definitions, 9-10
UML version changes, 157
Methods
implementation of actions, 119
versus operations, 45
Meyer, Bertrand, Design by Contract, 50
Model compilers, 4
Modifiers, 44
Multiple classifications, 77-78
data types, 153-154
Multiplicity of properties, 38-39
Multivalued attributes, 39

N
Namespaces, 89
Navigability arrows, 42
Nodes, 97-98
Normative use, 13-14
Notation
ball and socket, 71
definitions, 9-10
Lollipop, 71-72, 73

165

UML

O
Object diagrams, 11-12
times to use, 87-88
OCL (Object Constraint Language), 49-50
Odell, Jim, UML history, 7-8
OMG (Object Management Group)
control of UML, 1
MDA (Model Driven Architecture), 4
revisions to UML versions, 151-152
UML history, 7-9
OO (object-oriented) programming, 1
paradigm shift, 56
Operations, versus methods, 45
Operators, interaction frames, 59
Optional attributes, 39

P
Package diagrams, 11-12
basics, 89-91
design, 30
documentation, 32
resources, 95
times to use, 95

166

UML version changes, 157


Packages
aspects, 93-94
Common Closure and Reuse Principles, 91
definitions, 89
dependencies, 91-93
fully qualified names, 89
implementing, 94-95
namespaces, 89
Participants, sequence diagrams, 53-57
Partitions, activity diagrams, 120-121, 122
Patterns
definition, 27-28
Separated Interface, 94
State, 111-114
using, 145
Petri Nets (flow-oriented techniques), 130
PIM (Platform Independent Model), 4
Pins, 125
Planning, adaptive versus predictive, 23-24
Platform Specific Model (PSM), 4
Post-conditions, Design by Contract, 50
Pre-conditions

167

UML

Design by Contract, 50
use cases, 102
Predictive planning, versus adaptive planning, 23-24
Prescriptive rules, UML, 13-14
Presentation classes, 47
Private elements, 83
Profiles, 66
UML version changes, 157
Programming languages UML , UML as, 3, 5
forward engineering, 3
MDA (Model Driven Architecture), 4
reverse engineering, 3
value, 5
Project retrospective, 28-29
Properties of classes
associations, 37-38
bidirectional associations, 41-43
qualified, 75-76
attributes, 36-37
basics, 35-38
derived, 68
frozen, 72
multiplicity, 38-39
program interpretations, 39-41
read-only, 72

168

Protected elements, 83
Proxy projects, 27
Pseudomessages, 60
PSM (Platform Specific Model), 4
Public elements, 83

Q
Qualified associations, 75-76
Queries, 44

R
Rational Unified Process (RUP)Rational
development cases, 25
phases, 25-26
resources, 33
Read-only property, 72
Rebecca Wirfs-Brock, UML history, 7
Refactoring, 22
Reference objects, 73-74
Relationships
abstract classes to interfaces, 69-72
include, 101-103

169

UML

temporal, 80
transitive, 48
Releases, 20
Requirement Analysis, 29-30
Requirements churn, 23
Responsibilities of classes, 66
Retrospectives
iteration, 28
project, 28-29
Reusable archetypes, 4
Reverse engineering
UML as blueprints, 3, 6
UML as programming languages, 3
UML as sketches, 2
Revisions by versions (UML)UML
from 0.8 through 2.0, general history, 151-152
from 1.0 to 1.1, 153-155
from 1.2 to 1.3, 155-157
from 1.3 to 1.4, 157
from 1.4 to 1.5, 157
from 1.x through 2.0, 157-159
Roles. See Actors
Round-trip tools, 3
Rumbaugh, Jim

170

aggregation, 67
composite structures, 137
UML history, 7-9
RUP (Rational Unified Process)Rational
development cases, 25
phases, 25-26
resources, 33
S
Scenario sets, 99
Scrum, 24-25
Sea-level use cases, 103-104
Searching state, 110
Separated Interface, 94
Sequence diagrams, 11-12
basics, 53-56
centralized and distributed control, 55-57
collaborations, 144
CRC cards, 62-63
interaction diagrams, 53-56
loops and conditionals, 57-61
participants, 53-57
returns, 154
starting with UML, 16
synchronous and asynchronous
messages, 61

171

UML

times to use, 61-63


UML version changes, 158
Setting methods, 45
Shlaer, Sally, UML history, 7
Signals, 121-123
Single classification, 76-77
implementation classes, 153-154
Single-valued attributes, 39
Sketches UML , UML as, 6
forward engineering, 2
reverse engineering, 2
Smalltalk, 5
Software development processes. See Development processes
Software perspectives, UML, 5-6
Spiral development process. See Iterative development process
Stable Abstractions Principle, 92
Stable Dependencies Principle, 91
Staged delivery development process, 21
Standard use, 13-14
State diagrams. See State machine diagrams
State machine diagrams, 11-12

172

activity status, 109-110


basics, 107-109
concurrent states, 111
implementing, 111-114
initial pseudostate, 107
internal activities, 109
requirement analysis, 29
resources, 115
superstates, 110-111
times to use, 114-115
transitions, 107-108, 111
UML version changes, 159
State tables, 111-112, 114
Static classifications
implementation classes, 153-154
versus dynamic classifications, 77-78
Static operations of classes, 66-67
Stereotypes, 66
Stories. See Features of use cases
Subactivities, 119-121
Subclassing, 46
assertions, 51
Substitutability, 45-46
Subtypes, 46
Superstates, 110-111
173

UML

Suppliers/clients, 47
Swim lanes. See Partitions
Synchronous messages, 61
System use cases, 103

T
Temporal relationships, 80
Three Amigos, 8
Time signals, 121
Timeboxing, 21-22
Timing diagrams, 11-12
basics, 149-150
Tokens, 124
Transformations, 125-126
Transitions, 26, 107-108, 111
state, 113
Transitive relationships, 48
Trigger, 102
Types. See Data types

U
UML
174

conventional use, 13-14


definition, 1
descriptive rules, 13-14
fitting into processes, 29-32
history, 7-9
meaning, 14
prescriptive rules, 13-14
resources, 16-17
software and conceptual perspectives, 5-6
standards, legal versus illegal use, 13-14
UML as blueprints
forward engineering, 2-3, 6
reverse engineering, 3, 6
UML as programming language, 3, 5
forward engineering, 3
MDA (Model Driven Architecture), 4
reverse engineering, 3
value, 5
UML as sketches, 6
forward engineering, 2
reverse engineering, 2
UML diagrams. See Diagrams and
specific diagram types
UML Distilled, book editions and
corresponding UML versions, 153-155
UML revisions by versions
from 0.8 through 2.0, general history, 151-152
from 1.0 to 1.1, 153-155
from 1.2 to 1.3, 155-157

175

UML

from 1.3 to 1.4, 157


from 1.4 to 1.5, 157
from 1.x through 2.0, 157-159
Unidirectional associations, 41
Unified Method documentation, 7-8
Unified Modeling Language. See UML
UP (Unified Process). See RUP
Use case diagrams
basics, 102-103
requirement analysis, 29
Use cases
actors, 99-100
business, 103
extensions, 100-102
features, 104
include relationships, 101-103
levels, 103-104
MSS (main success scenario), 100-102
resources, 105
scenario sets, 99
times to use, 104-105
UML version changesUML , 155-156
User Guide, 115
User stories. See Features of use cases

176

V
Value objects, 74
Visibility, 83-84

W
Warehousing systems, Platform Independent Model and Platform Specific
Model, 4
Waterfall development process, 19-22
Well formed UML UML
definition, 14
legal UML, 13-14
X
XP (Extreme Programming)
agile development process, 24-25
resources, 33
technical practices, 22

177

You might also like