Seeking the ground truth: a retroactive study on the evolution and migration of software libraries
@inproceedings{Cossette2012SeekingTG, title={Seeking the ground truth: a retroactive study on the evolution and migration of software libraries}, author={Bradley Cossette and Robert J. Walker}, booktitle={SIGSOFT FSE}, year={2012} }
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…
104 Citations
Learning to Recommend Third-Party Library Migration Opportunities at the API Level
- Computer ScienceAppl. Soft Comput.
- 2020
Halo: A Multi-feature Two-pass Analysis to Identify Framework API Evolution
- Computer Science
- 2013
Halo is introduced, a novel hybrid approach that uses multiple features, including call dependency relations, method documentations, inheritance relations, and text similarity, to implement Halo in Java and compare it with four state-of-the-art approaches.
Using Structural Generalization to Discover Replacement Functionality for API Evolution
- Computer Science
- 2014
This work presents a new approach, matching via structural generalization (MSG), that recommends replacement functionality from a new API version, based on its structural similarity to functionality removed from the old API, to provide useful results in API migration situations where the others fail.
A study of library migrations in Java
- Computer ScienceJ. Softw. Evol. Process.
- 2014
The main result of the study is that recommendations of libraries can be inferred from the analysis of the migration trends, and a support to developers who want to migrate their libraries is proposed.
How Does API Migration Impact Software Quality and Comprehension? An Empirical Study
- Computer ScienceArXiv
- 2019
An online portal is released that helps software developers to understand the pre-impact of a library migration on software quality and recommend migration examples that adopt the best design and implementation practices to improve software quality.
Automatic discovery of function mappings between similar libraries
- Computer Science2013 20th Working Conference on Reverse Engineering (WCRE)
- 2013
This work introduces an approach that analyzes source code changes from software projects that already underwent a given library migration to extract mappings between functions and demonstrates the applicability of this approach on several library migrations performed on the Java open source software projects.
Semantic versioning and impact of breaking changes in the Maven repository
- Computer ScienceJ. Syst. Softw.
- 2017
Automating third-party library migrations
- Computer ScienceПрограммные системы и вычислительные методы
- 2022
A new approach to machine learning that recommends the comparison of methods between two unknown libraries using features extracted from the lexical similarity between method names and textual similarity of method documentation is described.
On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level
- Computer Science2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC)
- 2019
This paper introduces a novel mining approach that extracts existing instances of library method replacements that are manually performed by developers for a given library migration to automatically generate migration patterns in the method level, and combines the mined method-change patterns with method-related lexical similarity to accurately detect mappings between replacing/replaced methods.
A Study of Library Migration in Java Software
- Computer ScienceArXiv
- 2013
The main result of the study is that library migration is not a frequent practice but depends a lot on the nature of the software as well as the natureof the libraries.
References
SHOWING 1-10 OF 29 REFERENCES
ReBA: refactoring-aware binary adaptation of evolving libraries
- Computer ScienceICSE
- 2008
This paper presents the solution and a tool, ReBA, that automatically generates compatibility layers between new library APIs and old clients, and shows that the approach effectively adapts clients to new library versions, and is efficient.
AURA: a hybrid approach to identify framework evolution
- Computer Science2010 ACM/IEEE 32nd International Conference on Software Engineering
- 2010
AURA, a novel hybrid approach that combines call dependency and text similarity analyses to overcome limitations of one-replaced-by-many and many-re replaced- by-one methods, is introduced.
API-Evolution Support with Diff-CatchUp
- Computer ScienceIEEE Transactions on Software Engineering
- 2007
The approach to tackle the API-evolution problem in the context of reuse-based software development is discussed, which automatically recognizes the API changes of the reused framework and proposes plausible replacements to the "obsolete" API based on working examples of the framework code base.
Automatically generating refactorings to support API evolution
- Computer SciencePASTE '05
- 2005
A novel, lightweight technique that takes advantage of information that programmers can insert in the code rather than forcing them to use a different tool to re-express it, and is applicable in more than 75% of the cases.
Semi-automatic update of applications in response to library changes
- Computer Science1996 Proceedings of International Conference on Software Maintenance
- 1996
In the authors' approach, a library maintainer annotates changed functions with rules that are used to generate tools that will update the applications that use the updated libraries, in exchange for a small added amount of work by the library maintainers, costs for each application maintainer can be reduced.
How do APIs evolve? A story of refactoring
- Environmental ScienceJ. Softw. Maintenance Res. Pract.
- 2006
It is discovered that the changes that break existing applications are not random, but tend to fall into particular categories, which suggests that refactoring-based migration tools should be used to update applications.
Refactoring support for class library migration
- Computer ScienceOOPSLA '05
- 2005
This work presents an approach in which mappings between legacy classes and their replacements are specified by the programmer, and an analysis based on type constraints determines where declarations and allocation sites can be updated.
How do APIs evolveq A story of refactoring: Research Articles
- Environmental Science
- 2006
Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been proposed to solve the…
CatchUp! Capturing and replaying refactorings to support API evolution
- Computer ScienceProceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.
- 2005
This work presents a lightweight approach for evolving application programming interfaces (APIs), which does not depend on version control or configuration management systems, and captures API refactoring actions as a developer evolves an API.
Automatic Inference of Structural Changes for Matching across Program Versions
- Computer Science29th International Conference on Software Engineering (ICSE'07)
- 2007
This work represents structural changes as a set of high-level change rules, automatically infers likely change rules and determines method-level matches based on the rules and shows that this representation can serve as a better basis for other software engineering tools.