In an industry rapidly being filled with books of dubious value on object modeling using the Unified Modeling Language (UML), the UML User Guide is a welcome addition. This book is written by the "3 Amigos": Grady Booch, Jim Rumbaugh and Ivar Jacobson, the originators of UML, so we know they have an intimate relationship with the language and object modeling
If you are going to use the Unified Modeling Language (UML) in your projects, this book should be on your desk if only because (a) it is based on the latest version of UML (version 1.3) and (b) it is very readable. But beyond these recommendations it has great value for newbies as well as experienced modelers.
Each chapter of the book has the same structure. "Getting Started" motivates the objectives and discussion of the chapter in non-technical terms. Then "Terms and Concepts" introduces the notation and terminology covered in the chapter. "Common Modeling Techniques" allow the authors to show how the concepts and notation are applied to specific modeling areas. Finally, each chapter ends with "Hints and Tips" such as the characteristics of a well-structured statechart, or how to use stereotyping to visually convey the intent of a relationship.
The layout of the notation examples is excellent if you want to use this book as a way of learning UML, although it is not strictly a tutorial on UML. Annotations on the notation examples are printed in blue color, which makes the notation diagrams very easy to understand. References to other sections of the book are also in blue in the margins of the pages, and the color separation keeps the pages from feeling cluttered.
Topically, the book progresses from basic and advanced structural modeling (primarily class and object diagrams), to basic and advanced behavioral modeling (i.e., interaction diagrams, statechart diagrams, use cases and use case diagrams, and activity diagrams). A lengthy section on Architectural modeling introduces component and deployment diagrams, and how to represent patterns and frameworks.
What you will not find here is the detailed and obtuse discussion of the UML 1.1 Semantics document (www.omg.org). While that one was written for tool vendors, the discussion of what each element of UML means is very accessible in this UML User Guide. My major wish for this book is that the authors had included a "cheat sheet" of the changes introduced from version 1.1 for those readers who have been working with UML for a while. For example, the notation examples show that the '^' to denote a send-clause on a statechart action has been dropped, and the <<include>> stereotype has replaced the <<uses>> stereotype on use cases. Additionally, a generalization relationship has been added between use cases, and the semantics of the <<extend>> stereotype has changed subtly.
Although I do object modeling for a living--and that means I have to read the obtuse UML documents anyway--I am grateful for the accessibility of this book so more people can learn to use this modeling language in their projects. I don't agree with everything in UML, but at least this book will get more people involved in the "spirited discussions." Thanks, Amigos!