利用信息检索实现方法级第三方Java库迁移的自动检测
软件工程
2019-06-07 v1
摘要
不同第三方库之间的迁移过程困难、复杂且易出错。通常,在库迁移期间,开发者需要找到新库中最适合替换退役旧库方法的方法。该过程具有主观性且耗时,因为开发者需要完全理解两个库的应用程序编程接口(API)文档,并在存在时找出方法间的正确匹配。在此背景下,若干研究依赖挖掘已有库迁移,为开发者提供类似场景的示例式方法。本文中,我们引入一种新颖的挖掘方法,提取开发者针对给定库迁移手动执行的库方法替换已有实例,以在方法级自动生成迁移模式。此后,我们的方法将挖掘的方法变更模式与方法相关的词法相似度相结合,以准确检测方法间替换/被替换的映射。我们开展大规模实证研究,在包含57,447个开源Java项目、涉及9种流行库迁移的基准上评估我们的方法。我们的定性结果表明,与现有最先进(SOTA)研究相比,我们的方法将挖掘方法级映射的准确率显著提升平均12%,并增加了所发现的方法映射数量。最后,我们向社区提供一个开源挖掘工具以及所有方法级挖掘迁移的数据集。
引用
@article{arxiv.1906.02591,
title = {On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level},
author = {Hussein Alrubaye and Mohamed Wiem Mkaouer and Ali Ouni},
journal= {arXiv preprint arXiv:1906.02591},
year = {2019}
}
备注
accepted at 27th IEEE/ACM International Conference on Program Comprehension 2019