Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Semi-automatic update of applications in response to library changes
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
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
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Statically scoped object adaptation with expanders
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
ReBA: refactoring-aware binary adaptation of evolving libraries
Proceedings of the 30th international conference on Software engineering
Component adaptation and assembly using interface relations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Code-motion for API migration: fixing SQL injection vulnerabilities in Java
Proceedings of the 4th Workshop on Refactoring Tools
Hi-index | 0.00 |
Although in theory the APIs of software libraries and frameworks should be stable, they change in practice. This forces clients of the library API to change as well, making software maintenance expensive. Changing a client might not even be an option if its source code is missing or certain policies forbid its change. By giving a library both the old and the new API, clients can be shielded from API changes and can run with the new version of the library. This demo presents our tool, ReBA, that automatically generates compatibility layers between new library APIs and old clients. In the first stage, ReBA generates another version of the library, called adapted-library, that supports both the old and the new APIs. In the second stage, ReBA shrinks the adapted-library into a minimal, client-specific compatibility layer containing only classes truly required by the client. Evaluation on controlled experiments and case studies using Eclipse core libraries shows that our approach effectively adapts clients to new library versions, and is efficient.