TY - GEN
T1 - How Does Library Migration Impact Software Quality and Comprehension? An Empirical Study
AU - Alrubaye, Hussein
AU - Alshoaibi, Deema
AU - Alomar, Eman
AU - Mkaouer, Mohamed Wiem
AU - Ouni, Ali
N1 - Publisher Copyright:
© 2020, Springer Nature Switzerland AG.
PY - 2020
Y1 - 2020
N2 - The process of migration between different third-party software libraries, while being an typical library reuse practice, is complex, time consuming and error-prone. Typically, during a library migration process, developers opt to replace methods from a retired library with other methods from a new library without altering the software behavior. However, the extent to which the process of migrating to new libraries will be rewarded with improved software quality is still unknown. In this paper, our goal is to study the impact of library API migration on software quality. We conducted a large-scale empirical study on 9 popular API migrations, collected from a corpus of 57,447 open-source Java projects. We computed 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 released an online portal that helps software developers to understand the impact of a library migration on software quality and recommend migration examples that adopt 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.
AB - The process of migration between different third-party software libraries, while being an typical library reuse practice, is complex, time consuming and error-prone. Typically, during a library migration process, developers opt to replace methods from a retired library with other methods from a new library without altering the software behavior. However, the extent to which the process of migrating to new libraries will be rewarded with improved software quality is still unknown. In this paper, our goal is to study the impact of library API migration on software quality. We conducted a large-scale empirical study on 9 popular API migrations, collected from a corpus of 57,447 open-source Java projects. We computed 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 released an online portal that helps software developers to understand the impact of a library migration on software quality and recommend migration examples that adopt 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.
KW - API migration
KW - Code comprehension
KW - Software quality
UR - http://www.scopus.com/inward/record.url?scp=85097834210&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85097834210&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-64694-3_15
DO - 10.1007/978-3-030-64694-3_15
M3 - Conference contribution
AN - SCOPUS:85097834210
SN - 9783030646936
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 245
EP - 260
BT - Reuse in Emerging Software Engineering Practices - 19th International Conference on Software and Systems Reuse, ICSR 2020, Proceedings
A2 - Ben Sassi, Sihem
A2 - Ben Sassi, Sihem
A2 - Ducasse, Stéphane
A2 - Mili, Hafedh
T2 - 19th International Conference on Software and Systems Reuse, ICSR 2020
Y2 - 2 December 2020 through 4 December 2020
ER -