More than 300,000 developers have benefited from past editions of UML Distilled . This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML.
Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common parts of the UML. The author delivers on both of these promises in a short, concise, and focused presentation.
This book describes all the major UML diagram types, what they're used for, and the basic notation involved in creating and deciphering them. These diagrams include class, sequence, object, package, deployment, use case, state machine, activity, communication, composite structure, component, interaction overview, and timing diagrams. The examples are clear and the explanations cut to the fundamental design logic. Includes a quick reference to the most useful parts of the UML notation and a useful summary of diagram types that were added to the UML 2.0.
If you are like most developers, you don't have time to keep up with all the new innovations in software engineering. This new edition of Fowler's classic work gets you acquainted with some of the best thinking about efficient object-oriented software design using the UML--in a convenient format that will be essential to anyone who designs software professionally.
Why bother with the UML?
Structure of the book.
Changes for the Third Edition.
Acknowledgements. 1. Introduction.
What Is the UML?
Ways of Using the UML.
How We Got to the UML.
Notations and Meta-Models.
What is Legal UML?
The Meaning of UML.
UML is not enough.
Where to Start with the UML.
Looking for More Information. 2. Development Process.
Iterative and Waterfall Processes.
Predictive and Adaptive Planning.
Rational Unified Process.
Fitting a Process to a Project.
Fitting the UML into a process.
Understanding Legacy Code.
Choosing a Development Process.
Where to Find Out More. 3. Class Diagrams: The Essentials.
Programming Interpretation of Properties.
Notes and Comments.
When to Use Class Diagrams.
Where to Find Out More. 4. Sequence Diagrams.
Creating and deleting participants.
Loops, conditionals and the like.
Synchronous and Asynchronous Calls.
When to use Sequence Diagrams. 5. Class Diagrams: Advanced Concepts.
Static Operations and Attributes.
Aggregation and Composition.
Interfaces and Abstract Classes.
Read Only and Frozen.
Reference Objects and Value Objects.
Classification and Generalization.
Multiple and Dynamic Classification.
Template (Parameterized) Class.
Messages. 6. Object Diagrams.
When to use Object Diagrams. 7. Package Diagrams.
Packages and Dependencies.
Where to Find Out More.
When to Use Package Diagrams. 8. Deployment Diagrams.
When to use deployment diagrams. 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. 10. State Machine Diagrams.
Implementing State Diagrams.
When to Use State Diagrams.
Where to Find Out More. 11. Activity Diagrams.
Decomposing an action.
Flows and Edges.
Pins and Transformations.
And there's more.
When to Use Activity Diagrams.
Where to Find Out More. 12. Communication Diagrams.
When to use Communication Diagrams. 13. Composite Structures.
When to Use Composite Structures. 14. Component Diagrams.
When to use Component Diagrams.
When to Use Collaborations. 16. Interaction Overview Diagrams.
When to use Interaction Overview Diagrams. 17. Timing Diagrams.
When to use Timing Diagrams. Appendix A 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.
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).
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 (Basic).
Class Diagrams (Advanced).
Activity Diagrams. Bibliography. Index.