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