Learning UML 2.0....1
Table of Contents....3
Copyright....7
Preface....9
Chapter 1. Introduction....14
Section 1.1. What's in a Modeling Language?....15
Section 1.2. Why UML 2.0?....24
Section 1.3. Models and Diagrams....27
Section 1.4. ....28
Section 1.5. UML and the Software Development Process....29
Section 1.6. Views of Your Model....30
Section 1.7. A First Taste of UML....32
Section 1.8. Want More Information?....36
Chapter 2. Modeling Requirements: Use Cases....37
Section 2.1. Capturing a System Requirement....39
Section 2.2. Use Case Relationships....49
Section 2.3. Use Case Overview Diagrams....60
Section 2.4. What's Next?....61
Chapter 3. Modeling System Workflows: Activity Diagrams....62
Section 3.1. Activity Diagram Essentials....63
Section 3.2. Activities and Actions....67
Section 3.3. Decisions and Merges....69
Section 3.4. Doing Multiple Tasks at the Same Time....72
Section 3.5. Time Events....75
Section 3.6. Calling Other Activities....76
Section 3.7. Objects....78
Section 3.8. Sending and Receiving Signals....81
Section 3.9. Starting an Activity....83
Section 3.10. Ending Activities and Flows....84
Section 3.11. Partitions (or Swimlanes)....87
Section 3.12. Managing Complex Activity Diagrams....90
Section 3.13. What's Next?....92
Chapter 4. Modeling a System's Logical Structure: Introducing Classes and Class Diagrams....93
Section 4.1. What Is a Class?....94
Section 4.2. Getting Started with Classes in UML....99
Section 4.3. Visibility....100
Section 4.4. Class State: Attributes....106
Section 4.5. Class Behavior: Operations....112
Section 4.6. Static Parts of Your Classes....115
Section 4.7. What's Next....120
Chapter 5. Modeling a System's Logical Structure: Advanced Class Diagrams....121
Section 5.1. Class Relationships....122
Section 5.2. Constraints....131
Section 5.3. Abstract Classes....133
Section 5.4. Interfaces....137
Section 5.5. Templates....141
Section 5.6. What's Next....143
Chapter 6. Bringing Your Classes to Life: Object Diagrams....144
Section 6.1. Object Instances....145
Section 6.2. Links....147
Section 6.3. Binding Class Templates....151
Section 6.4. What's Next?....154
Chapter 7. Modeling Ordered Interactions: Sequence Diagrams....155
Section 7.1. Participants in a Sequence Diagram....157
Section 7.2. Time....159
Section 7.3. Events, Signals, and Messages....160
Section 7.4. Activation Bars....163
Section 7.5. Nested Messages....164
Section 7.6. Message Arrows....165
Section 7.7. Bringing a Use Case to Life with a Sequence Diagram....172
Section 7.8. Managing Complex Interactions with Sequence Fragments....179
Section 7.9. What's Next?....184
Chapter 8. Focusing on Interaction Links: Communication Diagrams....185
Section 8.1. Participants, Links, and Messages....186
Section 8.2. Fleshing out an Interaction with a Communication Diagram....191
Section 8.3. Communication Diagrams Versus Sequence Diagrams....197
Section 8.4. What's Next?....201
Chapter 9. Focusing on Interaction Timing: Timing Diagrams....202
Section 9.1. What Do Timing Diagrams Look Like?....203
Section 9.2. Building a Timing Diagram from a Sequence Diagram....205
Section 9.3. Applying Participants to a Timing Diagram....207
Section 9.4. States....209
Section 9.5. Time....211
Section 9.6. A Participant's State-Line....214
Section 9.7. Events and Messages....217
Section 9.8. Timing Constraints....218
Section 9.9. Organizing Participants on a Timing Diagram....223
Section 9.10. An Alternate Notation....226
Section 9.11. What's Next?....230
Chapter 10. Completing the Interaction Picture: Interaction Overview Diagrams....231
Section 10.1. The Parts of an Interaction Overview Diagram....232
Section 10.2. Modeling a Use Case Using an Interaction Overview....235
Section 10.3. What's Next?....243
Chapter 11. Modeling a Class's Internal Structure: Composite Structures....246
Section 11.1. Internal Structure....247
Section 11.2. Showing How a Class Is Used....256
Section 11.3. Showing Patterns with Collaborations....258
Section 11.4. What's Next?....262
Chapter 12. Managing and Reusing Your System's Parts: Component Diagrams....263
Section 12.1. What Is a Component?....264
Section 12.2. A Basic Component in UML....265
Section 12.3. Provided and Required Interfaces of a Component....266
Section 12.4. Showing Components Working Together....269
Section 12.5. Classes That Realize a Component....272
Section 12.6. Ports and Internal Structure....274
Section 12.7. Black-Box and White-Box Component Views....278
Section 12.8. What's Next?....279
Chapter 13. Organizing Your Model: Packages....280
Section 13.1. Packages....282
Section 13.2. Namespaces and Classes Referring to Each Other....286
Section 13.3. Element Visibility....288
Section 13.4. Package Dependency....289
Section 13.5. Importing and Accessing Packages....291
Section 13.6. Managing Package Dependencies....295
Section 13.7. Using Packages to Organize Use Cases....297
Section 13.8. What's Next?....299
Chapter 14. Modeling an Object's State: State Machine Diagrams....300
Section 14.1. Essentials....302
Section 14.2. States....304
Section 14.3. Transitions....305
Section 14.4. States in Software....309
Section 14.5. Advanced State Behavior....311
Section 14.6. Composite States....313
Section 14.7. Advanced Pseudostates....315
Section 14.8. Signals....317
Section 14.9. Protocol State Machines....318
Section 14.10. What's Next?....319
Chapter 15. Modeling Your Deployed System: Deployment Diagrams....320
Section 15.1. Deploying a Simple System....321
Section 15.2. Deployed Software: Artifacts....323
Section 15.3. What Is a Node?....327
Section 15.4. Hardware and Execution Environment Nodes....328
Section 15.5. Communication Between Nodes....331
Section 15.6. Deployment Specifications....333
Section 15.7. When to Use a Deployment Diagram....335
Section 15.8. What's Next?....337
Appendix A. Object Constraint Language....338
Section A.1. Building OCL Expressions....340
Section A.2. Types....342
Section A.3. Operators....343
Section A.4. Pulling It Together....344
Section A.5. Context....346
Section A.6. Types of Constraints....348
Section A.7. OCL Automation....350
Appendix B. Adapting UML: Profiles....351
Section B.1. What Is a Profile?....352
Section B.2. Stereotypes....353
Section B.3. Tagged Values....355
Section B.4. Constraints....357
Section B.5. Creating a Profile....358
Section B.6. Working with the Meta-Model....360
Section B.7. Using a Profile....361
Section B.8. Why Bother with Profiles?....363
Appendix C. A History of UML....364
Section C.1. Take One Part OOAD.......365
Section C.2. ...with a Sprinkling of OOSE.......366
Section C.3. ...Add a Dash of OMT.......368
Section C.4. ...and Bake for 10 to 15 Years....369
About the Authors....372
Colophon....373
Index....374
SYMBOL....375
A....376
B....379
C....380
D....383
E....386
F....387
G....388
H....389
I....390
J....391
K....392
L....393
M....394
N....395
O....396
P....397
R....400
S....401
T....404
U....406
V....408
W....409
If you're like most software developers, you're building systems that are increasingly complex. Whether you're creating a desktop application or an enterprise system, complexity is the big hairy monster you must manage.
The Unified Modeling Language (UML) helps you manage this complexity. Whether you're looking to use UML as a blueprint language, a sketch tool, or as a programming language, this book will give you the need-to-know information on how to apply UML to your project. While there are plenty of books available that describe UML, Learning UML 2.0 will show you how to use it. Topics covered include:
Engaging and accessible, this book shows you how to use UML to craft and communicate your project's design. Russ Miles and Kim Hamilton have written a pragmatic introduction to UML based on hard-earned practice, not theory. Regardless of the software process or methodology you use, this book is the one source you need to get up and running with UML 2.0.