Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The C++ programming language
Metaclasses are first class: The ObjVlisp Model
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Programming with explicit metaclasses in Smalltalk-80
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
A denotational semantics of inheritance and its correctness
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The art of metaobject protocol
The art of metaobject protocol
Issues in the design and specification of class libraries
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Reflections on metaclass programming in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Succeeding with objects: decision frameworks for project management
Succeeding with objects: decision frameworks for project management
Modular reasoning in the presence of subclassing
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Reuse contracts: managing the evolution of reusable assets
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Evolution of object behavior using context relations
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Law-governed regularities in object systems: part I: an abstract model
Theory and Practice of Object Systems
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Adaptive plug-and-play components for evolutionary software development
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automating Support for Software Evolution in UML
Automated Software Engineering
Evolution of Distributed Java Programs
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
Detecting Evolution Incompatibilities by Analyzing Java Binaries
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Computer Languages, Systems and Structures
Hi-index | 0.00 |
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.