Professional Documents
Culture Documents
Martin Fowler
UML
UML 2.0
4
UML
UML
UML 2.0
1
UML
Fowler
UML
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
market share
2004/4/16
10
11
UML
UML
UML
12
UNIX Smalltalk
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
14
UML
Cris Kobryn
UML 2.0 U2 Partners
Telelogic
15
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
modeling
programming
programming language
UML
UML UML
18
UML
UML
UML UML [Booch UML user]
[RumbaughUML Reference]
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
21
UML
deployment diagram
OO
use case
state Diagramstate machine diagram
activity diagram
UML 2 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
23
UML
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
Martin Fowler
Massachusetts Melrose
http://martinfowler.com
25
UML
Chapter 1
UML
Unified Modeling LanguageUML
notationmeta model
object-orientedOO
UML
UML
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
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
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
UML UML
6
specification 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
and
and
OMG
35
UML
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
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
UML
UML UML
43
UML
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
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
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
adaptive planning
24
/
/
58
59
UML
25
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
62
27
UML patterns
process
remote procedure
call
proxy
interface
real object
63
UML
[Ganf of Four]
23
28
64
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
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
Rational [Kruchten]
74
Chapter 3
35
UML
class diagrams UML
5
types
propertyoperation
UML
constraint
feature
75
UML
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
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;
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);
}
proxy
iterator
85
UML
UML 16 GRASP
GRASP
UML
unidirectional association
3.4
3.4 Car
owner:Person[1] Person cars:Car[*]
cars
86
MG Midget
Midget
3.5
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
CRC 5
UML query
{query}
modifiers
query
constructor
desctructormodifier
query
modifiers
45
getting methodsetting method
90
procedure body
procedure declaration
polymorphismsupertype
getPrice
subtype
Customer
91
UML
46
substitutability
Customer Corporate Customer
Customer
Customer Corporate Customer
Customer
[Martin] Liskov
Java Vector
Vector
Vector
subtyping interface inheritance
subclassingimplementation inheritance
92
notecomment
3.6
--
3.6
47
supplier
clientdependency
93
UML
aspect-oriented programmingAOP
UML
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
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
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
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
108
polymorphism
OO
OO
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
activity
diagram
58
interaction frame
pseudocode 4.4
prodcedure dispatch
foreach (lineitem)
112
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
114
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
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
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
ref
():
interactionname (arguments): return value
UML Bible
sd
119
UML
sd
(sending)EventOccurrence
(receiving)EventOccurrence
gate
120
4.5
pseudomessage
4.5
alternative marker
4.5 dispatch
4.5
61
UML
UML
synchronous message
asynchronous message
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
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
UML
UML 1.0-1.3
UML 1.3-1.4
UML 2
class diagramsUML
specializedtypeimplementation class
class
CORAB typesclass
abstraction
stereotype
129
UML
realization
interface Java COM interface
operationattribute
classification
OO
154
{complete} constraints
generalizationsupertypeinstance
{mandatory}
association
immutabilityfrozen
130
UML {frozen}association role
frozen
immutability
UML 1.1
Analysis Patterns[Fowler, AP]
enoughStock=check()
155
131
UML
UML 1.1
<<uses>><<entends>>generalizationUML 1.3
<<include>>dependencies
ATM
<<includes>><<uses>>
specializing
<<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>>
merge
synchronization barfork
joinarbitrary
condition
thread
133
UML
incoming thread
multiple trigger
concurrent*
outgoing transition
synchronization condition
state machine
RTF UML
UML 2
157
134
UML artifactcomponent
Xerces Xerces.jar
Xerces
UML 1.3 1.3 meta-model Java
package visiability~
UML 1.4
135
UML
UML 2
UML 2
object diagrampackage diagram
UML 2 collaboration diagram
communication diagramUML 2
interaction overview diagramtiming diagram
136
1 Truck Car
Vehicle sublcass Vehicle Type Vehicle
Truck Car Person Type
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
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) - :
[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,
143
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
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
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
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
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
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
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
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
162
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
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
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
172
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
175
UML
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