Skip to main content

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

  • Conference paper
  • First Online:
Reuse in Emerging Software Engineering Practices (ICSR 2020)

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://migrationlab.net/index.php?cf=icsr2020.

  2. 2.

    http://migrationlab.net/redirect.php?cf=icpc2019&p=1.

  3. 3.

    http://migrationlab.net/index.php?cf=icsr2020.

  4. 4.

    https://github.com/aerogear/aerogear-unifiedpush-server/commit/4861157566723bc3179b69d0755e5bf5460d9729.

  5. 5.

    https://github.com/anthonydahanne/ReGalAndroid/commit/6410cc8a12246745b19a102da5dd2c92d326b9f9.

  6. 6.

    https://github.com/groupon/Selenium-Grid-Extras/commit/4d9bada8aeab5b09e7a27926fc9ecab8bb5a1b51.

References

  1. Allamanis, M., Sutton, C.: Mining source code repositories at massive scale using language modeling. In: Proceedings of the 10th Working Conference on Mining Software Repositories, pp. 207–216. IEEE Press (2013)

    Google Scholar 

  2. AlOmar, E., Mkaouer, M.W., Ouni, A.: Can refactoring be self-affirmed? an exploratory study on how developers document their refactoring activities in commit messages. In: 2019 IEEE/ACM 3rd International Workshop on Refactoring (IWoR), pp. 51–58. IEEE (2019)

    Google Scholar 

  3. AlOmar, E.A., Mkaouer, M.W., Ouni, A.: Toward the automatic classification of self-affirmed refactoring. J. Syst. Softw. 171, 110821 (2020)

    Article  Google Scholar 

  4. AlOmar, E.A., Mkaouer, M.W., Ouni, A., Kessentini, M.: On the impact of refactoring on the relationship between quality attributes and design metrics. In: 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 1–11. IEEE (2019)

    Google Scholar 

  5. Alrubaye, H., Mkaouer, M.W.: Automating the detection of third-party java library migration at the function level. In: Proceedings of the 28th Annual International Conference on Computer Science and Software Engineering, pp. 60–71. IBM Corp. (2018)

    Google Scholar 

  6. Alrubaye, H., Mkaouer, M.W., Khokhlov, I., Reznik, L., Ouni, A., Mcgoff, J.: Learning to recommend third-party library migration opportunities at the API level. Appl. Soft Comput. 90, 106140 (2020)

    Article  Google Scholar 

  7. Alrubaye, H., Mkaouer, M.W., Ouni, A.: Migrationminer: an automated detection tool of third-party java library migration at the method level. In: The International Conference on Software Maintenance and Evolution (ICSME). IEEE Press (2019)

    Google Scholar 

  8. Alrubaye, H., Mkaouer, M.W., Ouni, A.: On the use of information retrieval to automate the detection of third-party java library migration at the method level. In: Proceedings of the 27th International Conference on Program Comprehension, pp. 347–357. IEEE Press (2019)

    Google Scholar 

  9. Alrubaye, H., Wiem, M.: Variability in library evolution. In: Software Engineering for Variability Intensive Systems: Foundations and Applications, p. 295 (2019)

    Google Scholar 

  10. Alshoaibi, D., Hannigan, K., Gupta, H., Mkaouer, M.W.: PRICE: detection of performance regression introducing code changes using static and dynamic metrics. In: Nejati, S., Gay, G. (eds.) SSBSE 2019. LNCS, vol. 11664, pp. 75–88. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-27455-9_6

    Chapter  Google Scholar 

  11. Boehm, B., Basili, V.R.: Software defect reduction top 10 list. Found. Empirical Softw. Eng.: Legacy of Victor R. Basili 426(37), 426–431 (2005)

    Google Scholar 

  12. Buse, R.P., Weimer, W.R.: Learning a metric for code readability. IEEE Trans. Softw. Eng. 36(4), 546–558 (2010)

    Article  Google Scholar 

  13. Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)

    Article  Google Scholar 

  14. Endrikat, S., Hanenberg, S., Robbes, R., Stefik, A.: How do API documentation and static typing affect api usability? In: Proceedings of the 36th International Conference on Software Engineering, pp. 632–642. ACM (2014)

    Google Scholar 

  15. Kula, R.G., German, D.M., Ouni, A., Ishio, T., Inoue, K.: Do developers update their library dependencies? Empirical Softw. Eng. 23(1), 384–417 (2017). https://doi.org/10.1007/s10664-017-9521-5

    Article  Google Scholar 

  16. Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Di Penta, M., Oliveto, R., Poshyvanyk, D.: Api change and fault proneness: a threat to the success of android apps. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pp. 477–487. ACM (2013)

    Google Scholar 

  17. McDonnell, T., Ray, B., Kim, M.: An empirical study of API stability and adoption in the android ecosystem. In: 2013 IEEE International Conference on Software Maintenance, pp. 70–79. IEEE (2013)

    Google Scholar 

  18. Mkaouer, M.W., Kessentini, M., Bechikh, S., Deb, K., Ó Cinnéide, M.: High dimensional search-based software engineering: finding tradeoffs among 15 objectives for automating software refactoring using NSGA-III. In: Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, pp. 1263–1270 (2014)

    Google Scholar 

  19. Mkaouer, M.W., Kessentini, M., Bechikh, S., Ó’Cinnéide, M., Deb, K.: Software refactoring under uncertainty: a robust multi-objective approach. In: Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation, pp. 187–188 (2014)

    Google Scholar 

  20. Peruma, A., Mkaouer, M.W., Decker, M.J., Newman, C.D.: Contextualizing rename decisions using refactorings, commit messages, and data types. J. Syst. Softw. 169, 110704 (2020)

    Article  Google Scholar 

  21. Peruma, A., Mkaouer, M.W., Decker, M.J., Newman, C.D.: Contextualizing rename decisions using refactorings and commit messages. In: 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 74–85. IEEE (2019)

    Google Scholar 

  22. Scalabrino, S., Linares-Vásquez, M., Poshyvanyk, D., Oliveto, R.: Improving code readability models with textual features. In: 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pp. 1–10. IEEE (2016)

    Google Scholar 

  23. Shatnawi, A., Seriai, A.D., Sahraoui, H., Alshara, Z.: Reverse engineering reusable software components from object-oriented APIs. J. Syst. Softw. 131, 442–460 (2017)

    Article  Google Scholar 

  24. Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974)

    Article  Google Scholar 

  25. Teyton, C., Falleri, J.R., Blanc, X.: Mining library migration graphs. In: 2012 19th Working Conference on Reverse Engineering (WCRE), pp. 289–298. IEEE (2012)

    Google Scholar 

  26. Teyton, C., Falleri, J.R., Blanc, X.: Automatic discovery of function mappings between similar libraries. In: In 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 192–201. IEEE (2013)

    Google Scholar 

  27. Teyton, C., Falleri, J.R., Palyart, M., Blanc, X.: A study of library migrations in java. J. Softw. Evol. Process 26(11), 1030–1052 (2014)

    Article  Google Scholar 

Download references

Acknowledgements

This material is based on work supported by the National Science Foundation under Grant No. 1757680.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hussein Alrubaye .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Alrubaye, H., Alshoaibi, D., Alomar, E., Mkaouer, M.W., Ouni, A. (2020). How Does Library Migration Impact Software Quality and Comprehension? An Empirical Study. In: Ben Sassi, S., Ducasse, S., Mili, H. (eds) Reuse in Emerging Software Engineering Practices. ICSR 2020. Lecture Notes in Computer Science(), vol 12541. Springer, Cham. https://doi.org/10.1007/978-3-030-64694-3_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-64694-3_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-64693-6

  • Online ISBN: 978-3-030-64694-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics