OBJECT ORIENTED SOFTWARE ENGINEERING USING UML PATTERNS AND JAVA - BRUEGGE BERND (CHENNAI PEARSON, 2014)