How Does API Migration Impact Software Quality and Comprehension? An Empirical Study

07/18/2019
by   Hussein Alrubaye, et al.
0

The migration process between different third-party software libraries is hard, complex and error-prone. Typically, during a library migration process, developers opt to replace methods from the retired library with other methods from a new library without altering the software behavior. However, the extent to which such a migration process to new libraries will be rewarded with an improved software quality is still unknown. In this paper, we aim at studying and analyzing the impact of library API migration on software quality. We conduct a large-scale empirical study on 9 popular API migrations, collected from a corpus of 57,447 open-source Java projects. We compute the values of commonly-used software quality metrics before and after a migration occurs. The statistical analysis of the obtained results provides evidence that library migrations are likely to improve different software quality attributes including significantly reduced coupling, increased cohesion, and improved code readability. Furthermore, we release an online portal 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. Finally, we provide the software engineering community with a large scale dataset to foster research in software library migration.

READ FULL TEXT
research
06/02/2019

On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level

The migration process between different third-party libraries is hard, c...
research
02/12/2021

SOAR: A Synthesis Approach for Data Science API Refactoring

With the growth of the open-source data science community, both the numb...
research
07/10/2019

Do Design Metrics Capture Developers Perception of Quality? An Empirical Study on Self-Affirmed Refactoring Activities

Background. Refactoring is a critical task in software maintenance and i...
research
11/10/2020

Characterization and Automatic Update of Deprecated Machine-Learning API Usages

Due to the rise of AI applications, machine learning libraries have beco...
research
06/07/2019

Learning to Recommend Third-Party Library Migration Opportunities at the API Level

The manual migration between different third-party libraries represents ...
research
01/20/2022

Providing Upgrade Plans for Third-party Libraries: A Recommender System using Migration Graphs

During the development of a software project, developers often need to u...
research
09/07/2023

Interactive, Iterative, Tooled, Rule-Based Migration of Microsoft Access to Web Technologies

In the context of a collaboration with Berger-Levrault, an IT company pr...

Please sign up or login with your details

Forgot password? Click here to reset