Checking software contracts
- Univ. of Brighton (United Kingdom)
In object-oriented software, contracts between classes can be expressed in terms of preconditions, postconditions and invariants. In the programming language Eiffel, contracts can be checked at run-time. Within inheritance hierarchies, contracts can be used to control the redefinition of services. In Eiffel, the rules ensure that redefinition is safe in the presence of polymorphism and dynamic binding. This paper shows that Eiffel`s support for contracts can be extended, both to cover the polymorphic case more fully, and to cover other uses of inheritance, including its use for selectively reusing code from a parent class. The paper proposes that software designers should state what properties they claim for any uses of inheritance, in order that extra checks on consistency can be applied, and shows that some extra debugging power could be obtained easily, by changing only the run-time system for Eiffel, rather than the language itself.
- OSTI ID:
- 210042
- Report Number(s):
- CONF-950773-; TRN: 96:000709-0009
- Resource Relation:
- Conference: 17. international conference and exhibition on technology of object-oriented languages and systems, Santa Barbara, CA (United States), 31 Jul - 4 Aug 1995; Other Information: PBD: 1995; Related Information: Is Part Of Technology of object-oriented languages and systems TOOLS 17; Ege, R.; Singh, M.; Meyer, B. [eds.]; PB: 452 p.
- Country of Publication:
- United States
- Language:
- English
Similar Records
RIPE: An object-oriented Robot Independent Programming Environment
An object-oriented environment for robot system architectures