Applying UML and patterns : an introduction to object-oriented analysis and design and the unified process - Craig Larman (Pearson Education Asia, New Delhi, 2002)