Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Release-to-release binary compatibility in SOM
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Computer
The Mythical Man-Month: After 20 Years
IEEE Software
Semi-automatic update of applications in response to library changes
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Object Schizophrenia Problem in Object Role System Design
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Study of The Fragile Base Class Problem
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
CatchUp!: capturing and replaying refactorings to support API evolution
Proceedings of the 27th international conference on Software engineering
The Role of Refactorings in API Evolution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Refactoring for Parameterizing Java Classes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Refactoring-based support for binary compatibility in evolving frameworks
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Changing programs correctly: refactoring with specifications
FM'06 Proceedings of the 14th international conference on Formal Methods
Practical refactoring-based framework upgrade
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Hi-index | 0.00 |
By introducing syntactic and semantic changes, the upgrade of a software component may invalidate existing applications that use one of its previous versions. Existing adaptation approaches to compensate for such changes rely on and, hence, are limited to certain change specifications. In addition to using an adaptation technology, the developer needs to be guided in the way the component should be evolved in order to enable automatic adaptation and avoid semantic inconsistencies. Based on our experience, we describe problems common to different adaptation techniques and give advice on how to control yet not restrict component evolution.