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