Larkware

We get up early so that you don't have to.

Book Review: UML 2.0 In a Nutshell

UML 2.0 In a Nutshell, $34.95
by Dan Pilone with Neil Pitman
O'Reilly, 2005
216 pages
Examples in UML
ISBN 0-596-00795-7
http://www.amazon.com/exec/obidos/ASIN/0596007957/larkware-20

Unless you've been doing all of your programming from under a rock, you're no doubt aware that the Unified Modeling Language folks put out the 2.0 version of the UML standard a while ago. The full UML 2.0 standard is a fearsome beast hundreds of pages long, with all the approachability of most computer language specifications. Fortunately, if you really need to learn to read and construct UML 2.0 diagrams, O'Reilly is now out with this quick reference. At a mere 216 pages, it obviously leaves out some of the finer nitpicks of the full standard, but it seems (to this non-UML practitioner) to include plenty of guidance for the UML beginner. I suspect it has all the UML that most of us will ever need, and can serve as a good foundation for those who really want to go on to master the nitpicks.

The authors start with an extremely brief overview of what UML is used for and a catalog of the various UML diagrams. Then they dive right into class fiagrams, showing how these are used in UML and giving the various conventions used in class diagrams. There is not a lot of motivational material; you won't get taught "UML does X because they think it's superior to Y". Instead, this is a book of nuts and bolts, one you can turn to when you need to find out what the little boxes and circles and arrows mean, which ones are allowed to connect where, and how to interpret the results. There are plenty of examples along the way, which mix the computer domain (a Window class) with other domains ( a Car class) to avoid too much deadly dullness.

From class diagrams, the book quickly proceeds to package diagrams, composite structures (new in UML 2.0), component diagrams, and deployment diagrams. That covers the static modeling chunk of UML 2.0 nicely. The next section digs into behavioral modeling, with chapters on use case diagrams, statechart diagrams, activity diagrams, and the old and new types of interaction diagrams. A wrapup chapter looks at UML 2.0's extensibility in the form of tagged values, stereotypes, and profiles; if you make it this far, you should be able to read most UML 2.0 diagrams with a reasonable degree of confidence.

I'm not really a UML 2.0 fan myself. In my own work (which tends to be on small projects, non-collaborative ones, or idiosyncratic ones), I find it to add more overhead than it's worth, and I tend towards ad-hoc modeling rather than the formal language of UML 2.0. For me, the most interesting material was right at the end of the book, and didn't deal directly with UML 2.0. First, there's a chapter on effective diagramming, which urges using some thought in choosing what to show and how to pick a level of detail, rather than just barfing out a giant class diagram that does no one any good. Second, there's an appendix on the whole Model-Driven Architecture idea, which tries to sort out the meat from the buzzword.

Overall, I like this better than the other UML 2.0 books I've seen. It sticks to teaching me UML 2.0, rather than trying to teach me OO at the same time (or assuming that I don't know anything about programming), and steers clear of the more grandiose claims of UML 2.0 proponents. It's a book I can pick up when I need to read a UML 2.0 diagram that uses something beyond the vocabulary I've already mastered, which is precisely what I need with my own attitude towards the language. If that matches your own attitude, it's a decent investment.

Mike Gunderloy is the lead developer for Larkware and author of numerous books and articles on programming topics.