ICSE '94 Proceedings of the 16th international conference on Software engineering
Frameworks = (components + patterns)
Communications of the ACM
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Protected Variation: The Importance of Being Closed
IEEE Software
Semi-automatic update of applications in response to library changes
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
SPARTACAS Automating Component Reuse and Adaptation
IEEE Transactions on Software Engineering
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
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
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
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)
Identifying Refactorings from Source-Code Changes
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
How to design a good API and why it matters
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
API-Evolution Support with Diff-CatchUp
IEEE Transactions on Software Engineering
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
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
Refactoring references for library migration
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Recommending Adaptive Changes for Framework Evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
A field study of API learning obstacles
Empirical Software Engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
The Java Language Specification, Java SE 7 Edition
The Java Language Specification, Java SE 7 Edition
Testing principles, current practices, and effects of change localization
Proceedings of the 10th Working Conference on Mining Software Repositories
WEON: towards a software ecosystem ONtology
Proceedings of the 2013 International Workshop on Ecosystem Architectures
Hi-index | 0.00 |
Application programming interfaces (APIs) are a common and industrially-relevant means for third-party software developers to reuse external functionality. Several techniques have been proposed to help migrate client code between library versions with incompatible APIs, but it is not clear how well these perform in an absolute sense. We present a retroactive study into the presence and nature of API incompatibilities between several versions of a set of Java-based software libraries; for each, we perform a detailed, manual analysis to determine what the correct adaptations are to migrate from the older to the newer version. In addition, we investigate whether any of a set of adaptation recommender techniques is capable of identifying the correct adaptations for library migration. We find that a given API incompatibility can typically be addressed by only one or two recommender techniques, but sometimes none serve. Furthermore, those techniques give correct recommendations, on average, in only about 20% of cases.