How Does API Migration Impact Software Quality and Comprehension? An Empirical Study
Hussein Alrubaye, Deema Alshoaibi, Eman Alomar, Mohamed Wiem Mkaouer,, and Ali Ouni

TL;DR
This empirical study investigates how migrating third-party libraries affects software quality, revealing improvements in coupling, cohesion, and readability across 57,447 Java projects, and provides tools and datasets for further research.
Contribution
It offers a large-scale analysis of API migration impacts on software quality and introduces an online portal and dataset to support future research and best practices.
Findings
Library migrations reduce coupling and increase cohesion.
Code readability improves after migration.
Migration generally enhances overall software quality.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Advanced Software Engineering Methodologies
