Text this: Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development