Head First has done it again!
They are trying to solve a tough problem: getting developers comfortable with best practices for specifying object oriented applications – from UML diagrams to Test Driven Development. There is a lot of good material here and the creative format will make you think about things in a different way – designed to make it easier for you to learn.
I don’t think it is the one book that will teach you everything you need to know about Object Oriented Analysis and Design, but it is very definitely worth a read by anyone who is still not 100% comfortable with the best way to specify OO applications.
Just one caveat: this is not really for complete beginners to OOP. Start by learning the basics of object oriented programming. Then progress to design patterns (the Head First book is great). Once you’re starting to get comfortable with those, you’ll be just about ready to get the most out of this book, and then from there you can get additional information on some of the areas (Like TDD) which are covered only briefly in the book.



@Jatin - So many books, so little time. As mentioned, if not that into OO yet, I'd start with their design patterns books. I have a bunch of other use case and modeling and requirements gathering books and the like. What kinds of things are you trying to get bette at? Let me know and perhaps I could recommend something (I think Amazon is one of our top 6 expenses here at SystemsForge!).
Seriously, I will read the book properly - maybe it is simpler when I have more than 10 minutes to skim it. It just seemed to assume a basic knowledge of OOP on the basis you learn how to code with objects, and THEN you learn how to architect/design.
You also want to be comfortable with Java syntax - not hard, but if you'd never written a cfc or looked at a script style (as opposed to tag based) language it'd be a shock to the system!
There are also plenty of OO books, but I don't have any with me right now. And I WILL post a proper review of the new head first book when I get a chance to read it.
I agree with you on that the Head First OOA&D is a good choice. My only disagreement with you is that I would read OOA&D (I'm reading it now) before reading Design Patterns (which I read previously).
Head First's OOA&D is more of macro - generalist view, while Design Patterns goes through specific types of Object-Oriented designs. I think it would be better to understand the general principles (e.g., design for change) at a basic level before trying to conquer the specific, detailed implementations of these general principles in the patterns (e.g., command pattern) explained in Head First Design Patterns.
Given the fact that it sounds like you've read the book through I'll defer to your experience. My only concern with OOA&D was that it seemed to assume a certain familiarity with OOP which was why I recommended Design Patterns first, but I'm sure different approaches will work better for different people.