Program development in Java : abstraction, specification, and object-oriented design - Liskov, Barbara (Addison-Wesley, 2001)