MigrationAdvisor: Recommending Library Migrations from Large-Scale Open-Source Data

During software maintenance, developers may need to migrate an already in-use library to another library with similar functionalities. However, it is difficult to make the optimal migration decision with limited information, knowledge, or expertise. In this paper, we present MigrationAdvisor, an evidence-based tool to recommend library migration targets through intelligent analysis upon a large number of GitHub repositories and Java libraries. The migration advisories are provided through a search engine style web service where developers can seek migration suggestions for a specific library. We conduct systematic evaluations on the correctness of results, and evaluate the usefulness of the tool by collecting usage feedback from industry developers. Video: https://youtu.be/4I75W22TqwQ.

[1]  Sarah Nadi,et al.  LibComp: an IntelliJ plugin for comparing Java libraries , 2020, ESEC/SIGSOFT FSE.

[2]  Zhenchang Xing,et al.  SimilarTech: Automatically recommend analogical libraries across different programming languages , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[3]  Cor-Paul Bezemer,et al.  Logging Library Migrations: A Case Study for the Apache Software Foundation Projects , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[4]  Xavier Blanc,et al.  A study of library migrations in Java , 2014, J. Softw. Evol. Process..

[5]  Xavier Blanc,et al.  Mining Library Migration Graphs , 2012, 2012 19th Working Conference on Reverse Engineering.

[6]  Na Meng,et al.  Meditor: Inference and Application of API Migration Edits , 2019, 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC).

[7]  Audris Mockus,et al.  World of Code: An Infrastructure for Mining the Universe of Open Source VCS Data , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[8]  Guangtai Liang,et al.  A Multi-Metric Ranking Approach for Library Migration Recommendations , 2021, 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER).

[9]  Hussein Alrubaye,et al.  MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level , 2019, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[10]  Chunyang Chen,et al.  SimilarAPI: Mining Analogical APIs for Library Migration , 2020, 2020 IEEE/ACM 42nd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion).

[11]  Zhenchang Xing,et al.  DiffTech: a tool for differencing similar technologies from question-and-answer discussions , 2020, ESEC/SIGSOFT FSE.