| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
Requirements Analysis | |
| |
| |
Design | |
| |
| |
Documentation | |
| |
| |
Understanding Legacy Code | |
| |
| |
Choosing a Development Process | |
| |
| |
Where to Find Out More | |
| |
| |
| |
Class Diagrams: The Essentials | |
| |
| |
Properties | |
| |
| |
Attributes | |
| |
| |
Associations | |
| |
| |
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 | |
| |
| |
| |
Sequence Diagrams | |
| |
| |
Creating and Deleting Participants | |
| |
| |
Loops, Conditionals, and the Like | |
| |
| |
Synchronous and Asynchronous Calls | |
| |
| |
When to Use Sequence Diagrams | |
| |
| |
| |
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 | |
| |
| |
| |
Object Diagrams | |
| |
| |
When to Use Object Diagrams | |
| |
| |
| |
Package Diagrams | |
| |
| |
Packages and Dependencies | |
| |
| |
Package Aspects | |
| |
| |
Implementing Packages | |
| |
| |
When to Use Package Diagrams | |
| |
| |
Where to Find Out More | |
| |
| |
| |
Deployment Diagrams | |
| |
| |
When to Use Deployment Diagrams | |
| |
| |
| |
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 | |
| |
| |
| |
State Machine Diagrams | |
| |
| |
Internal Activities | |
| |
| |
Activity States | |
| |
| |
Superstates | |
| |
| |
Concurrent States | |
| |
| |
Implementing State Diagrams | |
| |
| |
When to Use State Diagrams | |
| |
| |
Where to Find Out More | |
| |
| |
| |
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 | |
| |
| |
| |
Communication Diagrams | |
| |
| |
When to Use Communication Diagrams | |
| |
| |
| |
Composite Structures | |
| |
| |
When to Use Composite Structures | |
| |
| |
| |
Component Diagrams | |
| |
| |
When to Use Component Diagrams | |
| |
| |
| |
Collaborations | |
| |
| |
When to Use Collaborations | |
| |
| |
| |
Interaction Overview Diagrams | |
| |
| |
When to Use Interaction Overview Diagrams | |
| |
| |
| |
Timing Diagrams | |
| |
| |
When to Use Timing Diagrams | |
| |
| |
| |
Changes between UML Versions | |
| |
| |
Revisions to the UML | |
| |
| |
Changes in UML Distilled | |
| |
| |
Changes from UML 1.0 to 1.1 | |
| |
| |
Type and Implementation Class | |
| |
| |
Complete and Incomplete Discriminator Constraints | |
| |
| |
Composition | |
| |
| |
Immutability and Frozen | |
| |
| |
Returns on Sequence Diagrams | |
| |
| |
Use of the Term "Role" | |
| |
| |
Changes from UML 1.2 (and 1.1) to 1.3 (and 1.5) | |
| |
| |
Use Cases | |
| |
| |
Activity Diagrams | |
| |
| |
Changes from UML 1.3 to 1.4 | |
| |
| |
Changes from UML 1.4. to 1.5 | |
| |
| |
From UML 1.x to UML 2.0 | |
| |
| |
Class Diagrams: The Essentials (Chapter 3) | |
| |
| |
Sequence Diagrams (Chapter 4) | |
| |
| |
Class Diagrams: Concepts (Chapter 5) | |
| |
| |
State Machine Diagrams (Chapter 10) | |
| |
| |
Activity Diagrams (Chapter 11) | |
| |
| |
Bibliography | |
| |
| |
Index | |