Author: Grady Booch et al
Publisher: Addison Wesley, 2007
Aimed at: Experienced developers looking to move into analysis and design
Pros: Thorough and definitive
Cons: Not the easiest read; examples feel dated
Reviewed by: Dave Wheeler
I like this book. It tackles complex subjects, OOA and OOD, and it does it in a logical order and with clarity. Beginning with an examination of the core concepts in OO, it moves on to discuss methods for performing analysis and design, using UML of course given the authors, followed by a look at the processes involved. The book concludes by presenting some practical examples of analysis and design, hence the “with Applications” in the title.
The book feels rigorous. It might be tempting to skip the concepts section, given that many developers will feel that they already know them, but that would be a shame. I enjoyed the revision and the precision with which terms are defined. The middle sections felt somewhat turgid at points, but this is partly because any discussion involving UML, analysis and design is never likely to be a laugh a minute. The cat cartoons add levity, though. For many, the final section that discusses various sample applications will be where they gain the most. These applications are deliberately varied, with code and technology being a very deliberate by-product rather than the focus; this is as you’d hope and expect in a book on analysis and design. This does have the side-effect of making the book appear somewhat dated and academic in nature, and perhaps not relevant to the modern .NET/Java developer. Don’t be fooled, though: there is value a-plenty to be had, especially for the budding analyst/designer.
If you’re looking for a magic recipe or silver bullet on how to perform analysis and design for your next great project, then be prepared to be disappointed: this book doesn’t contain ready-made answers. It’s also not the best book on using UML. The real value of this book is derived from how it makes you think, which means that you will need to give this book time and effort to get the best out of it.