Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
A model for compound type changes encountered in schema evolution
ACM Transactions on Database Systems (TODS)
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
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Refactoring to Patterns
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An interactive visualization of refactorings retrieved from software archives
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using refactorings to automatically update component-based applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Automatically generating refactorings to support API evolution
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Incomplete resolution of references in Eclipse
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
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)
Refactoring-aware version control
Proceedings of the 28th international conference on Software engineering
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
Automated upgrading of component-based applications
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
MolhadoRef: a refactoring-aware software configuration management tool
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
MolhadoRef: a refactoring-aware infrastructure for OO programs
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
Semantic patches for documenting and automating collateral evolutions in Linux device drivers
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
Refactoring-aware software merging and configuration management
ACM SIGSOFT Software Engineering Notes
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
Mining a Change-Based Software Repository
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Refactoring-based support for binary compatibility in evolving frameworks
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Generative programming techniques for Java library migration
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
API-Evolution Support with Diff-CatchUp
IEEE Transactions on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Change-oriented software engineering
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
ReBA: refactoring-aware binary adaptation of evolving libraries
Proceedings of the 30th international conference on Software engineering
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
Recommending adaptive changes for framework evolution
Proceedings of the 30th international conference on Software engineering
ReBA: a tool for generating binary adapters for evolving java libraries
Companion of the 30th international conference on Software engineering
The absent participant: more patterns for group awareness
Proceedings of the 2006 conference on Pattern languages of programs
Annotation refactoring: inferring upgrade transformations for legacy applications
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Practical refactoring-based framework upgrade
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Test code differencing for test-driven refactoring automation
ACM SIGSOFT Software Engineering Notes
Mining trends of library usage
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Refinement-Preserving Co-evolution
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Controlled adaptation-oriented evolution of object-oriented components
SE '08 Proceedings of the IASTED International Conference on Software Engineering
Mining API mapping for language migration
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Using twinning to adapt programs to alternative APIs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
AURA: a hybrid approach to identify framework evolution
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A multi-view API impact analysis for open SPL platform
ICACT'10 Proceedings of the 12th international conference on Advanced communication technology
A graph-based approach to API usage adaptation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Refactoring references for library migration
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Comparison of similarity metrics for refactoring detection
Proceedings of the 8th Working Conference on Mining Software Repositories
An empirical study on evolution of API documentation
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Systematic editing: generating program transformations from an example
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Recommending Adaptive Changes for Framework Evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Model evolution and refinement
Science of Computer Programming
Study of an API migration for two XML APIs
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
RefactoringNG: a flexible Java refactoring tool
Proceedings of the 27th Annual ACM Symposium on Applied Computing
A history-based matching approach to identification of framework evolution
Proceedings of the 34th International Conference on Software Engineering
Backward compatibility of software interfaces: Steps towards automatic verification
Programming and Computing Software
Understanding myths and realities of test-suite evolution
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Seeking the ground truth: a retroactive study on the evolution and migration of software libraries
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
How do developers react to API deprecation?: the case of a smalltalk ecosystem
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Exposing behavioral differences in cross-language API mapping relations
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
WEON: towards a software ecosystem ONtology
Proceedings of the 2013 International Workshop on Ecosystem Architectures
Migration from deprecated API in Java
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
On testing the source compatibility in Java
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.01 |
Library developers who have to evolve a library to accommodate changing requirements often face a dilemma: Either they implement a clean, efficient solution but risk breaking client code, or they maintain compatibility with client code, but pay with increased design complexity and thus higher maintenance costs over time.We address this dilemma by presenting a lightweight approach for evolving application programming interfaces (APIs), which does not depend on version control or configuration management systems. Instead, we capture API refactoring actions as a developer evolves an API. Users of the API can then replay the refactorings to bring their client software components up to date.We present catchup!, an implementation of our approach that captures and replays refactoring actions within an integrated development environment semi-automatically. Our experiments suggest that our approach could be valuable in practice.