arrow
返回

Code clone classification based on multi-dimension feature entropy

delete2025-12-01
delete0
PRE
AI
B
Bin Hu
L
Lizhi Zheng
D
Dongjin Yu *
Y
Yijian Wu
J
Jie Chen
T
Tianyi Hu
DOI:10.1016/j.scico.2025.103419delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
代码克隆在软件工程领域数十年来一直是一个热门话题。由于克隆检测技术的快速发展,在软件系统中发现代码克隆已不困难,而管理大量克隆仍然是一个开放性问题。通常,我们应采用重构方法消除克隆,从而减轻对软件维护的威胁。在某些情况下,克隆组可能包含位于不同位置的几种不同代码变体,这使得重构过于复杂,因为必须在重构前分析并调和它们的差异。因此,我们应该找到一种方法来识别易于重构或消除的克隆组。在本文中,我们首先从三个不同领域收集大规模数据集,并研究了四种不同代码克隆指标的分步情况。我们发现每种指标的分步遵循某种模式,其中内文件克隆的数量约占50%,Type3克隆的数量超过45%。但仅根据这些指标无法判断代码克隆组的复杂性。基于我们的发现,我们提出了一种分类方法,以帮助开发人员区分通过重构易于消除的克隆组与难以重构的克隆组。我们基于信息熵理论提出了四种不同的克隆特征熵度量,包括变体熵、分布熵、关系熵和语法熵。然后,我们计算融合的克隆熵,它是上述四种克隆特征熵的加权总和。最后,我们使用四种特征熵和融合特征熵对代码克隆组进行分类或排序。在三个不同应用领域的实验表明,所提出的克隆特征熵能够帮助开发人员识别通过重构易于消除的克隆组。人工验证也显示,克隆组的复杂性并不仅仅取决于克隆实例的数量。该方法为管理代码克隆提供了一种新途径,并为未来的克隆维护研究提供了一些有价值的思路。
Keyword:
Code clone analysis
Clone density
Clone entropy

期刊

S
Science of Computer Programming
IF:
1.4
论文数:
51
被引数:
1.6K

机构

F
fudan university
学者数:
11.8W
论文数: 7.7W
被引数: 121
H
Hangzhou Dianzi University
学者数:
1.3W
论文数: 9.6K
被引数: 7.5K
引用论文

引用论文

Analyzing cloning evolution in the Linux kernel
err2002-10-01
err93
PREAI
errAntoniol, G; Villano, U; Merlo, E; Di Penta, M
err分享
err收藏
err分享
err收藏
Vulnerable Code Clone Detection for Operating System Through Correlation-Induced Learning
err2019-12-01
err10
PREAI
errShi, Heyuan; Wang, Runzhe; Fu, Ying; Jiang, Yu; Dong, Jian; Tang, Kun; Sun, Jiaguang
err分享
err收藏
Clone Management for Evolving Software不断发展的软件的克隆管理
err2012-09-01
err83
PREAI
errHoan Anh Nguyen; Tung Thanh Nguyen; Pham, Nam H.; Al-Kofahi, Jafar; Nguyen, Tien N.
err分享
err收藏
学者 查看更多内容