Object Oriented Software Engineering Using UML Patterns, And Java - Bruegge B; Bruegge B & Dutoit A. (Prentice Hall Of India, 2006)