Contents
Cover Page
About This E-Book
Title Page
Copyright Page
Dedication Page
Contents
List of Figures
Foreword to the Third Edition
Foreword to the First Edition
Preface
Why Bother with the UML?
Structure of the Book
Changes for the Third Edition
Acknowledgments
Chapter 1: Introduction
What Is the UML?
Ways of Using the UML
How We Got to the UML
Notations and Meta-Models
UML Diagrams
What Is Legal UML?
The Meaning of UML
UML Is Not Enough
Where to Start with the UML
Where to Find Out More
Chapter 2: Development Process
Iterative and Waterfall Processes
Predictive and Adaptive Planning
Agile Processes
Rational Unified Process
Fitting a Process to a Project
Fitting the UML into a Process
Choosing a Development Process
Where to Find Out More
Chapter 3: Class Diagrams: The Essentials
Properties
Multiplicity
Programming Interpretation of Properties
Bidirectional Associations
Operations
Generalization
Notes and Comments
Dependency
Constraint Rules
When to Use Class Diagrams
Where to Find Out More
Chapter 4: Sequence Diagrams
Creating and Deleting Participants
Loops, Conditionals, and the Like
Synchronous and Asynchronous Calls
When to Use Sequence Diagrams
Chapter 5: Class Diagrams: Advanced Concepts
Keywords
Responsibilities
Static Operations and Attributes
Aggregation and Composition
Derived Properties
Interfaces and Abstract Classes
Read-Only and Frozen
Reference Objects and Value Objects
Qualified Associations
Classification and Generalization
Multiple and Dynamic Classification
Association Class
Template (Parameterized) Class
Enumerations
Active Class
Visibility
Messages
Chapter 6: Object Diagrams
When to Use Object Diagrams
Chapter 7: Package Diagrams
Packages and Dependencies
Package Aspects
Implementing Packages
When to Use Package Diagrams
Where to Find Out More
Chapter 8: Deployment Diagrams
When to Use Deployment Diagrams
Chapter 9: Use Cases
Content of a Use Case
Use Case Diagrams
Levels of Use Cases
Use Cases and Features (or Stories)
When to Use Use Cases
Where to Find Out More
Chapter 10: State Machine Diagrams
Internal Activities
Activity States
Superstates
Concurrent States
Implementing State Diagrams
When to Use State Diagrams
Where to Find Out More
Chapter 11: Activity Diagrams
Decomposing an Action
Partitions
Signals
Tokens
Flows and Edges
Pins and Transformations
Expansion Regions
Flow Final
Join Specifications
And There’s More
When to Use Activity Diagrams
Where to Find Out More
Chapter 12: Communication Diagrams
When to Use Communication Diagrams
Chapter 13: Composite Structures
When to Use Composite Structures
Chapter 14: Component Diagrams
When to Use Component Diagrams
Chapter 15: Collaborations
When to Use Collaborations
Chapter 16: Interaction Overview Diagrams
When to Use Interaction Overview Diagrams
Chapter 17: Timing Diagrams
When to Use Timing Diagrams
Appendix: Changes between UML Versions
Revisions to the UML
Changes in
UML Distilled
Changes from UML 1.0 to 1.1
Changes from UML 1.2 (and 1.1) to 1.3 (and 1.5)
Changes from UML 1.3 to 1.4
Changes from UML 1.4. to 1.5
From UML 1.x to UML 2.0
Bibliography
Index
Code Snippets
i
iii
iv
vi
vii
viii
ix
xi
xii
xiii
xiv
xv
xvii
xviii
xix
xxi
xxii
xxiii
xxiv
xxv
xxvi
xxvii
xxviii
xxix
xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
87
88
89
90
91
92
93
94
95
97
98
99
100
101
102
103
104
105
107
108
109
110
111
112
113
114
115
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
135
136
137
139
140
141
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
161
162
163
164
165
167
168
169
170
171
172
173
174
175
176
177
178