Reuse contracts
- 1 October 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 31 (10) , 268-285
- https://doi.org/10.1145/236338.236363
Abstract
A critical concern in the reuse of software is the propagation of changes made to reusable artifacts. Without techniques to manage these changes, multiple versions of these artifacts will propagate through different systems and reusers will not be able to benefit from improvements to the original artifact. We propose to codify the management of change in a software system by means of reuse contracts that record the protocol between managers and users of a reusable asset. Just as real world contracts can be extended, amended and customised, reuse contracts are subject to parallel changes encoded by formal reuse operators: extension, refinement and concretisation. Reuse contracts and their operators serve as structured documentation and facilitate the propagation of changes to reusable assets by indicating how much work is needed to update previously built applications, where and how to test and how to adjust these applications.Keywords
This publication has 7 references indexed in Scilit:
- Modular reasoning in the presence of subclassingPublished by Association for Computing Machinery (ACM) ,1995
- Subject-oriented composition rulesPublished by Association for Computing Machinery (ACM) ,1995
- The promise and the cost of object technologyCommunications of the ACM, 1995
- Typing the specialization interfacePublished by Association for Computing Machinery (ACM) ,1993
- Issues in the design and specification of class librariesPublished by Association for Computing Machinery (ACM) ,1992
- Combination of inheritance hierarchiesPublished by Association for Computing Machinery (ACM) ,1992
- Contracts: specifying behavioral compositions in object-oriented systemsPublished by Association for Computing Machinery (ACM) ,1990