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