中文

在线代码示例的适配分析与支持

软件工程 2019-05-30 v1

摘要

开发者常求助于 Stack Overflow(SO)等在线问答论坛以满足其编程需求。尽管这些论坛上的代码示例是不错的起点,但它们往往不完整且不适用于开发者的本地程序上下文;有必要对这些示例进行适配以集成到生产代码中。因此,在线代码示例的适配过程由多名开发者独立地反复进行。我们的工作广泛研究了这些适配与变体,并作为一款以交互方式帮助将在线代码示例集成到目标上下文中的工具的基础。我们对 SO 代码片段适配与变体的性质和程度进行了大规模实证研究。我们基于克隆检测、时间戳分析和显式 URL 引用,构建了一个将 SO 帖子与 GitHub 对应代码相关联的综合数据集。随后我们定性检视了 400 个 SO 示例及其 GitHub 对应代码,并建立了包含 24 种适配类型的分类法。利用该分类法,我们在 GumTree 之上构建了自动化适配分析技术,将整个数据集分类为这些类型。我们构建了一个名为 ExampleStack 的 Chrome 扩展,可自动从每个 SO 示例及其 GitHub 对应代码中提取感知适配的模板,以标识发生最多改动的热点。一项由十六名程序员参与的用户研究表明,查看相似 GitHub 对应代码中的共性与差异,提升了他们对所给 SO 示例的信心,并帮助他们更全面地理解如何以不同方式复用示例并规避常见陷阱。

关键词

引用

@article{arxiv.1905.12111,
  title  = {Analyzing and Supporting Adaptation of Online Code Examples},
  author = {Tianyi Zhang and Di Yang and Cristina Videira Lopes and Miryung Kim},
  journal= {arXiv preprint arXiv:1905.12111},
  year   = {2019}
}

备注

This paper will appear at ICSE 2019