Practical object-oriented design with uml - Priestley, Mark (Tata McGraw-Hill, 2003)