UML in a Nutshell: A Desktop Quick Reference is not misnamed. It is indeed a reference tool, just as a dictionary is a reference tool. If you're just learning UML, I wouldn’t grab this book off the shelf as my first pick. But when you get down to the business of modeling your application using UML, UML in a Nutshell is the book you’ll want to reach for—time and again. Let's take a brief look at UML basics before we see what the book has to offer.
UML in a Nutshell: A Desktop Quick Reference
The Unified Modeling Language (UML) is a visual modeling language. It standardizes notation and diagramming for object-oriented design and is made up of the UML definition, semantics document, a notation guide, extension documents, and the object constraint language (OCL). The UML was originally conceived by Grady Booch, James Rumbaugh, and Ivar Jacobson, all of Rational Software Corporation. Modeling is a common practice in software development projects and defines an application's functions. The UML was created to provide a useful standard language that simplifies the modeling process for your Java, C++, C#, and other object-oriented applications.
A book in three parts
UML in a Nutshellis divided into three sections. The first is an introductory section that includes a brief history of the evolution of UML, a contextual overview of the language, and a long chapter on the object-oriented paradigm. The second section contains a tutorial and a description of how UML works, as well as a look at how the UML can be used to problem-solve.
The third section, "Unified Modeling Language Quick Reference," takes up half the book. These eight chapters offer valuable reference information, including an overview of diagramming and model organization and chapters on diagram types, such as class and object, use case, sequence, collaboration, statechart, activity, and component. Bulleted lists provide a description of each type and specify what each diagram can and can't do. Within these bulleted lists, you have the full parameters for building your models.
If you are just starting to learn UML, these books will help you get up to speed:
- The Unified Modeling Language User Guide by Grady Booch, Jim Rumbaugh, and Ivar Jacobson (the creators of UML)
- Applying UML and Patterns: An introduction to Object-Oriented Analysis and Design and the Unified Process by Craig Larman
- UML Distilled: A Brief Guide to the Standard Object Modeling Language by Martin Fowler and Kendall Scott
Sometimes, the format and language of the book get in the way of the important content it presents. Bountiful bulleted lists are used to explain UML concepts, which can be handy for quick reference. But it would be nice to have information more thoroughly fleshed out in places. This book uses so many bullet points, it seems like it could have been a huge presentation in a previous life.
Another minor irritant is that throughout the book, sections of text read as if the author couldn’t choose between particular words so he used both available choices. The result is the occasional clunky paragraph that looks as though it's trying to convey more meaning than it can pull off. Here’s one example: “To deliver valued solutions (maximum quality and minimum cost within the minimum time), organizations must capture (acquire), communicate (share), and leverage (utilize) knowledge.” The only English professor who would have let me get away with a sentence like that taught experimental fiction.
Despite those small flaws, UML in a Nutshell is worth its salt when you need to look up diagrams or symbols. It’s one of several O’Reilly Nutshell handbooks that I frequently pull from my techie bookcase.
What UML resources do you use?
What do you recommend for someone seeking more information on UML? Let us know by sending us an e-mail with your recommendations or by posting a comment below.