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

**Authors:** Hussein Alrubaye, Deema Alshoaibi, Eman Alomar, Mohamed Wiem Mkaouer,, and Ali Ouni

arXiv: 1907.07724 · 2020-10-05

## 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.

## Key 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 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.

---
Source: https://tomesphere.com/paper/1907.07724