中文

Java 开发者如何在 GitHub 项目中复用 StackOverflow 答案?

软件工程 2024-08-30 v2

摘要

StackOverflow(SO)是一个被广泛使用的面向软件开发者和计算机科学家的问答(Q&A)网站。GitHub 是一个用于存储、追踪和协作软件项目的在线开发平台。先前的工作关联了从这两个平台挖掘的信息,以链接用户账户或比较开发者跨平台的活动。然而,刻画被 GitHub 项目复用的 SO 答案的工作并不多。在本文中,我们通过挖掘 GitHub 上可用 Java 项目所复用的 SO 答案进行了实证研究。我们创建了一种克隆检测、基于关键词的搜索和人工检查相结合的方法,以识别开发者实际利用的答案。基于已识别的答案,我们进一步研究了讨论线程的主题、答案特征(例如分数、年龄、代码长度和文本长度)以及开发者的复用实践。我们观察到大多数被复用的答案提供了用于实现特定编码任务的程序。在所有分析的 SO 讨论线程中,被复用的答案往往比未被复用的答案具有相对更高的分数、更久的年龄、更长的代码和更长的文本。仅在 9% 的场景中(40/430),开发者完整复制答案代码进行复用。在其余场景中,他们复用部分代码或从零开始创建全新代码。我们的研究刻画了 357 个 GitHub 项目中 Java 开发者所引用的 130 个 SO 讨论线程。我们的实证发现可以指导 SO 回答者提供更好的答案,并为未来与 SO 和 GitHub 相关的研究提供启示。

关键词

引用

@article{arxiv.2308.09573,
  title  = {How Do Java Developers Reuse StackOverflow Answers in Their GitHub Projects?},
  author = {Juntong Chen and Yan Zhao and Na Meng},
  journal= {arXiv preprint arXiv:2308.09573},
  year   = {2024}
}

备注

12 pages