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