Object-oriented software engineering : using UML, patterns, and Java by Bernd Bruegge, & Allen H. Dutoit. - Bruegge, Bernd (Pearson Education Limited, 2014)