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

Requirements Analysis

Design

Documentation

Understanding Legacy Code

Choosing a Development Process

Where to Find Out More

Chapter 3: 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

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

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