Applying UML and Patterns : an Introduction to Object Oriented Analysis and Design and Iterative Development - LARMAN,Craig (Pearson Education, Inc, 2005)