Practical object-oriented design with UML - Priestley, Mark (McGraw-Hill Companies, 2000)