Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, a book by Craig Larman
You need to enable JavaScript to run this app.