Top critical review
35 people found this helpful
Too many words
on May 27, 2008
This book's reputation as one of the bibles of OOAD is probably deserved because (to someone relatively new to it) the essentials seem to be thoroughly covered. It just seems too much like wading through muck to find them.
The problem begins at the very beginning; on the first pages of the preface. In describing changes between publication of the second edition and this third edition, the author lists "robots are cruising on the surface of Mars" and "Personal hovercraft are available." Tongue-in-cheek?
Unfortunately, no, unless it's firmly planted there. As the book continues, the reader all too often wants to start skimming as paragraph after paragraph, sometimes page after page, of non-essential prattle clouds the essentials. For journeyman designers and developers, sections on the topology of old-fashioned procedural languages, on the importance of documentation, task planning, release planning (twice!) and more may be frustrating drags on learning the essentials of thinking through a good design and taking it to the doorstep of implementation.
A highly-simplified greenhouse application is used for examples throughout the first part of the book, leaving too many more-common scenarios unexplored and occasionally trapping skimmers who have not captured every concept in the design of that application along the way.
Late chapters illustrate some concepts with (finally!) other applications including an all-important (for many of us) web application as well as applications for satellite tracking, data aquisition for a weather station, artificial intelligence, and a control system for traffic management. Interesting, but again wordy and by the time you get there you're exhausted!
I did learn from this book, but I'm still looking for The Book that efficiently teaches OOAD, and I've read four or five already. So far I've learned more from a couple of implementation-level books: Martin Fowler's superb book Refactoring: Improving the Design of Existing Code, and his UML Distilled. These have been very instructive in part because Fowler's style is lean and very clear, un-clouded by distracting non-essentials. I've just ordered Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman. Fingers are crossed, maybe that will be The Book.