Applying UML and patterns An introduction to object - oriented analysis and design and iterative development - Larman, Craig (Addison-Wesley, 2005)
Developers and students will learn object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies. These case studies incrementally introduce key skills, essential OO principles and patterns, UML notation, and best practices. You won't just learn UML diagrams-you'll learn how to apply UML in the context of OO software development.