Object - oriented software engineering using UML, patterns and Java - Bruegge, Bernd & Dutoit, Allen H (Pearson Education (Singapore), New Delhi, 2004)