Applying UML and patterns: an introduction to object - oriented analysis and design and the unified process. - 2nd ed. - Larman, Craig (Pearson Education, 2002)