Applying UML and patterns : - Larman, Craig (Prentice Hall PTR, 2005)