||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Object-oriented, programming, Java, UML, design patterns
Title: Head First Object-Oriented Analysis and Design
Author: Brett McLaughlin, Garry Police and David West
Level: Introductory, but some Java knowledge assumed
Verdict: Not recommended.
Here at TechBookReport we've long been fans of the O'Reilly Head First series, starting with the Java book that kicked the series off and right on through to the books on Design Patterns and Ajax. On the whole the Head First style has been pretty appealing - the combinations of graphics, puzzles, humour and good technical content combining to deliver an effective teaching mechanism. So having tackled Java, Ajax and so on, can the same series really deliver a book that can take on Object Oriented Analysis and Design and win?
The first thing to note is that this is a book that uses Java as the example programming language. That's great if you've got some Java experience, but less than ideal if you're using C#, Ruby or some other object oriented language. This isn't a criticism of the book as such, it needs to use some language for the samples, it's just some that readers need to be aware of. Note also that there's some familiarity assumed with basic object oriented principles, at least enough that the basics of classes and objects are understood.
The aim of the book is to provide the reader with an understanding of the core principles of object oriented analysis and design. This is the hard stuff beyond the syntax of Java (or other object oriented programming language). It provides the answers to those questions such as how do I structure my classes? Should I make this class a sub-class of that or a completely new class? How can I make this class act like that class and so on. It also covers things like basic UML, use cases, software methodologies and the like.
As with the other books in the series there are various scenarios played out across the different chapters, with problems presented to developers who have to design software that's flexible, reusable, extendible etc. There are puzzles and quizzes and crosswords and cartoons and all manner of non-textbooky material. And, throughout, there's a constant emphasis on what the point of the exercise is: object oriented analysis and design is about producing software that does what the user wants it to.
However, where the Head First approach works really well in the other books in the series, this fun approach doesn't seem to work here. It's not because the authors don't know their stuff, they obviously do. Perhaps it's because the subject matter doesn't naturally lend itself to this type of approach. Whatever the reason, the book fails to take off. At times it feels a little too messy. Those readers who really are beginners and don't have any grasp of the subject might find this book more useful than those who've made some progress. Those who've already got some idea might also find the degree of repetition a little on the annoying side.
Overall this is a less than convincing introduction to the subject, and as such it's not one that we recommend. For us David West's 'Object Thinking' or 'Objects First With Java' by David Barnes and Michael Kölling are much better at getting the subject across.