Synopses & Reviews
Now widely adopted as the de facto industry standard and sanctioned by the Object Management Group, the Unified Modeling Language (UML) is a notation all software developers need to know and understand. However, the UML is a big language, and not all of it is equally important. The award-winning first edition of UML Distilled was widely praised for being a concise guide to the core parts of the UML and has proved extremely successful in helping developers get up and running quickly. UML Distilled, Second Edition, maintains the concise format with significantly updated coverage of use cases and activity diagrams, and expanded coverage of collaborations. It also includes a new appendix detailing the changes between UML versions.
Written for those with a basic understanding of object-oriented analysis and design, this book begins with a summary of UML's history, development, and rationale and then moves into a discussion of how the UML can be integrated into the object-oriented development process. The primary author profiles the various modeling techniques in the UML--such as use cases, class diagrams, and interaction diagrams--and describes the notation and semantics clearly and succinctly. He also outlines useful non-UML techniques such as CRC cards and patterns. These descriptions are made even more relevant with a collection of best practices based on the primary author's experience and a brief Java programming example demonstrating the implementation of a UML-based design. With this tour of the key parts of the UML, readers will be left with a firm foundation upon which to build models and develop further knowledge of the Unified Modeling Language.
Praise for the First Edition
"UML Distilled is a recipient of the prestigious 1997 Software Development Magazine Productivity Award in the Books category. Addison-Wesley congratulates authors Martin Fowler and Kendall Scott for their outstanding work."
"This book is a godsend. It is packed with solid advice presented in a concise and highly readable way. The essence of the notations is explained very well indeed but the author goes beyond this to give very clear insights into the application of UML techniques."
-- Jennifer Stapleton, Vice President Technical, British Computer Society
"UML Distilled is well written, knowledgeable about both systems development and UML, and disarmingly honest."
-- Robert L. Glass, The Software Practitioner (March 1998)
"UML Distilled proves that you can say a lot of useful things about computing in a small book."
-- Gregory V. Wilson, Dr. Dobb's Journal
Synopsis
- Would you like to understand the most important elements of Class diagrams? (See page 35.)
- Do you want to see the new UML 2.0 interaction frame notation for adding control flow to sequence diagrams (see page 58) and the unofficial notation that many prefer? (See page 60.)
- Do you want to know what changes have been made to all versions of the UML? (See page 151.)
- Do you want a quick reference to the most useful parts of the UML notation? (See the inside covers.)
- Do you want to find out what diagram types were added to the UML 2.0 without wading through the spec? (See page 11.)
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.
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.
About the Author
Martin Fowler is an independent consultant who has applied objects to pressing business problems for more than a decade. He has consulted on systems in fields such as health care, financial trading, and corporate finance. His clients include Chrysler, Citibank, UK National Health Service, Andersen Consulting, and Netscape Communications. In addition, Fowler is a regular speaker on objects, the Unified Modeling Language, and patterns.
Table of Contents
Preface.
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.
UML Diagrams.
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.
Agile Processes.
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.
Properties.
Attributes.
Associations.
Multiplicity.
Programming Interpretation of Properties.
Bi-directional Associations.
Operations.
Generalization.
Notes and Comments.
Dependency.
Constraint Rules.
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.
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.
6. Object Diagrams.
When to use Object Diagrams.
7. Package Diagrams.
Packages and Dependencies.
Package Aspects.
Implementing Packages.
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.
Internal Activities.
Activity States.
Superstates.
Concurrent States.
Implementing State Diagrams.
When to Use State Diagrams.
Where to Find Out More.
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.
12. Communication Diagrams.
When to use Communication Diagrams.
13. Composite Structures.
When to Use Composite Structures.
14. Component Diagrams.
When to use Component Diagrams.
15. Collaborations.
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.
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 (Basic).
Interaction Diagrams.
Class Diagrams (Advanced).
State Diagrams.
Activity Diagrams.
Bibliography.
Index.