I have recently taken an interest in firming up some fundamental skills in development. I have been so focused on the my current brownfield project, I have been neglecting to sharpen the saw. I picked up a copy of Head First Object-Oriented Analysis & Design at my local B&N. I had read Head First Design Patterns a couple years back and was really impressed with the style the book uses to keep the topic interesting.
The book handles the analysis and design process from a simple to understand 3 step solution:
- Make sure your software does what the customer wants it to do.
- Apply basic Object Oriented principles to add flexibility.
- Strive for a maintainable, reusable design.
This simple recipe for great software is then examined in great detail. Topics covered include gathering requirements, effective use case diagramming, textural and domain analysis and various other tools to help the developer understand the problem space. The book starts out very simplistic and works it's way to more and more complex topics. By the time the book was discussing design principals like Open Closed Principal, Don't Repeat Yourself Principal, Single Responsibility Principal and the Liskov Substitution Principal was really into the book and devouring the content.
If you are looking to bone up on some fundamentals or to take that first step from programmer to architect, this is a great starting point.