APPLYING UML AND PATTERNS: AN INTRODUCTION TO OBJECT ORIENTED ANALYSIS AND DESIGN AND ITERATIVE DEVELOPMENT - LARMAN, CRAIG (PEA NEW DELHI, 2005)