APPLYING UML AND PATTERNS - CRAIG LARMAN (NEW DELHI PEARSON, 2014)