中文

针对代码克隆中潜在不一致性的 Git 提交日志实证分析

软件工程 2024-09-16 v1

摘要

代码克隆是指在同一或不同文件中与其他代码片段相同或相似的代码片段。它们通常通过复制粘贴操作创建,并在开发和维护活动中被修改。由于一对代码克隆(称为克隆对)之间可能存在逻辑耦合,预期对每个片段的更改应是同时(协同更改)且一致地进行的。关于代码克隆有广泛的研究,包括与克隆协同更改相关的研究;然而,对代码克隆对的提交日志进行详细分析的研究仍然有限。在本文中,我们使用 git-log 命令提取克隆代码片段的更改,以调查克隆对中代码片段的提交日志。我们分析了 GitHub 上由 Apache 软件基金会拥有的 45 个代码库,并针对提交频率、协同更改比率和提交模式解答了三个研究问题。我们的研究结果表明:(1)平均而言,克隆片段的更改频率较低,通常在其整个生命周期内仅更改两到三次;(2)协同更改的比率约占所有克隆更改的一半,其中 10-20\% 的协同更改提交存在隐患(潜在不一致);(3)35-65\% 的克隆对被归类为存在隐患的克隆对(潜在不一致的克隆对)。这些结果表明,需要通过克隆的提交时间线建立一致的管理系统。

关键词

引用

@article{arxiv.2409.08555,
  title  = {An Empirical Analysis of Git Commit Logs for Potential Inconsistency in Code Clones},
  author = {Reishi Yokomori and Katsuro Inoue},
  journal= {arXiv preprint arXiv:2409.08555},
  year   = {2024}
}

备注

Preprint of SCAM2024 (IEEE International Conference on Source Code Analysis & Manipulation) in Flagstaff, AZ. on Oct. 7-8, 2024. 10-page main body + 2-page references