An object-oriented approach to program specification and verification was developed by Ole-Johan Dahl with the long-term Abel project. Essential here was the idea of reasoning about an object in terms of its observable behavior, where the specification of an object's present behavior is given by means of its past interactions with the environment. In this paper, we review some of the ideas behind this approach and show how they can be fruitfully extended for reasoning about black-box components in open object-oriented distributed systems.