谁制造了这份副本?代码克隆作者身份的实证分析
软件工程
2023-09-06 v1
摘要
代码克隆是指在同一或不同文件中与其他代码片段相同或相似的代码片段。它们通常是在开发和维护活动中通过复制粘贴实践创建的。由于代码克隆可能需要一致的更新和连贯的管理,它们给软件维护带来了一个具有挑战性的问题。因此,已有许多研究致力于以准确性、可扩展性或性能来发现各种类型的克隆。然而,对代码克隆本质的探究一直很有限。即便是同一克隆集中的代码片段是由同一作者还是不同作者所写这一基本问题,也尚未得到彻底调查。在本文中,我们聚焦于作者身份来研究代码克隆的特征。我们针对存储在 GitHub 上的 153 个 Apache 项目的 Java 文件,在行级粒度上分析了代码克隆的作者身份,并回答了三个研究问题。基于这些研究问题,我们发现所有项目中都存在大量的克隆行(所有项目的平均值为 18.5%)。此外,那些贡献了许多非克隆行的作者也贡献了许多克隆行。另外,我们发现三分之一的克隆集主要由多位主要作者共同贡献。这些结果证实了我们对克隆特征的直观理解,尽管此前没有出版物提供过多项目的实证验证数据。由于这些结果有助于设计更好的克隆管理技术,我们将探索开发高效克隆管理工具的意义。
引用
@article{arxiv.2309.01116,
title = {Who Made This Copy? An Empirical Analysis of Code Clone Authorship},
author = {Reishi Yokomori and Katsuro Inoue},
journal= {arXiv preprint arXiv:2309.01116},
year = {2023}
}
备注
An extended version of the 17th International Workshop on Software Clones IWSC 2023 in Bogota, Colombia