Applying UML and patterns - Larman, Craig