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