API化:从StackOverflow代码片段生成可复用API
软件工程
2021-09-03 v1
摘要
像StackOverflow这样的开发者论坛已成为现代软件开发实践不可或缺的资源。然而,许多代码片段缺乏定义良好的方法声明,因此往往不完整、无法直接复用。开发者必须对检索到的代码片段进行改造,将其中的变量参数化并识别返回值。我们将这一活动称为代码片段的API化(APIzation),它可能繁琐且耗时。在本文中,我们提出APIzator来自动执行Java代码片段的API化。APIzator建立在通过研究GitHub中真实API化所提取的四种常见模式之上。APIzator提出了一种静态分析算法,可自动提取方法参数与返回语句。我们使用从20名开发者收集的200个API化真值对APIzator进行了评估。对于113个(56.50%)和115个(57.50%)的API化,APIzator与开发者分别提取出了完全相同的参数和返回语句。对于163个(81.50%)的API化,参数或返回语句至少有一项完全相同。
引用
@article{arxiv.2109.01138,
title = {APIzation: Generating Reusable APIs from StackOverflow Code Snippets},
author = {Valerio Terragni and Pasquale Salza},
journal= {arXiv preprint arXiv:2109.01138},
year = {2021}
}
备注
Accepted for publication in the 36th IEEE/ACM International Conference on Automated Software Engineering (ASE 2021)