Maintaining the consistency of class libraries during their evolution
- 9 October 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 32 (10) , 1-21
- https://doi.org/10.1145/263700.263701
Abstract
Two important problems of object-oriented reuse are the propagation of design and implementation specifics of the base software to the inheritors, and the protection of the inheritors against changes in the base software. In this paper, we argue that the simple inheritance rules of existing object-oriented languages are not sufficient for properly dealing with these problems. In the proposal presented in this paper, programmers are enabled to make metalevel declarations of the internal protocols and dependencies of their classes. Additionally, changes of the base module are automatically monitored to filter out information about the alterations that may invalidate already existing inheritors. Based on these informations, the subclassing semantics is adjusted such that the maintenance of the base module properties and the protection of the inheritor is ensured during their integration, In this way, language support is provided for keeping the behavior of reusable software consistent during its evolution.This publication has 13 references indexed in Scilit:
- Formal design constraintsACM SIGPLAN Notices, 1996
- Reuse contractsACM SIGPLAN Notices, 1996
- Evolution of object behavior using context relationsACM SIGSOFT Software Engineering Notes, 1996
- A metaobject protocol for C++ACM SIGPLAN Notices, 1995
- Modular reasoning in the presence of subclassingACM SIGPLAN Notices, 1995
- Reflections on metaclass programming in SOMACM SIGPLAN Notices, 1994
- Typing the specialization interfacePublished by Association for Computing Machinery (ACM) ,1993
- Issues in the design and specification of class librariesACM SIGPLAN Notices, 1992
- Programming with explicit metaclasses in Smalltalk-80ACM SIGPLAN Notices, 1989
- Metaclasses are first class: The ObjVlisp ModelACM SIGPLAN Notices, 1987