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