中文

用于比较 API 用法的图距离算法的实验分析

软件工程 2021-08-31 v1

摘要

现代软件开发高度依赖于通过应用程序编程接口(API)复用功能。然而,客户端开发者可能在确定某个 API 的正确用法时遇到问题,导致误用并伴随软件崩溃或可用性缺陷。因此,研究人员致力于通过比较客户端代码用法与正确 API 用法来自动识别 API 误用。一些技术依赖特定的 API 专用基于图的数据结构来改进 API 用法的抽象表示。这类技术需要比较图,例如通过计算基于最小图编辑距离或最大公共子图的的距离度量,其计算已知为 NP-hard 问题。幸运的是,存在许多用于简化图距离计算的抽象方法。然而,它们用于比较 API 用法的图表示时的适用性尚未得到分析。在本文中,我们针对正确性和运行时间,对不同 API 用法图的距离算法进行了比较。具体而言,正确性涉及算法识别相似正确 API 用法的能力,以及区分相似正确与错误用法以及不相似用法的能力。为此,我们系统地确定了一组八种基于图的距离算法,并将其应用于两个真实世界 API 用法与误用数据集。有趣的是,我们的结果表明现有距离算法在比较 API 用法图时并不可靠。为改善这一状况,我们识别并讨论了算法的问题,并基于此提出假设以发起克服这些问题的研究。

关键词

引用

@article{arxiv.2108.12511,
  title  = {An Experimental Analysis of Graph-Distance Algorithms for Comparing API Usages},
  author = {Sebastian Nielebock and Paul Blockhaus and Jacob Krüger and Frank Ortmeier},
  journal= {arXiv preprint arXiv:2108.12511},
  year   = {2021}
}

备注

Accepted Paper at the 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM) in the Replication and Negative Results (RENE) Track