The essence of object oriented programming with Java and UML - Wampler, Bruce E. (Addison-Wesley, 2002)