返回
Code clone classification based on multi-dimension feature entropy
DOI:10.1016/j.scico.2025.103419.png)
摘要
En 中文
代码克隆在软件工程领域数十年来一直是一个热门话题。由于克隆检测技术的快速发展,在软件系统中发现代码克隆已不困难,而管理大量克隆仍然是一个开放性问题。通常,我们应采用重构方法消除克隆,从而减轻对软件维护的威胁。在某些情况下,克隆组可能包含位于不同位置的几种不同代码变体,这使得重构过于复杂,因为必须在重构前分析并调和它们的差异。因此,我们应该找到一种方法来识别易于重构或消除的克隆组。在本文中,我们首先从三个不同领域收集大规模数据集,并研究了四种不同代码克隆指标的分步情况。我们发现每种指标的分步遵循某种模式,其中内文件克隆的数量约占50%,Type3克隆的数量超过45%。但仅根据这些指标无法判断代码克隆组的复杂性。基于我们的发现,我们提出了一种分类方法,以帮助开发人员区分通过重构易于消除的克隆组与难以重构的克隆组。我们基于信息熵理论提出了四种不同的克隆特征熵度量,包括变体熵、分布熵、关系熵和语法熵。然后,我们计算融合的克隆熵,它是上述四种克隆特征熵的加权总和。最后,我们使用四种特征熵和融合特征熵对代码克隆组进行分类或排序。在三个不同应用领域的实验表明,所提出的克隆特征熵能够帮助开发人员识别通过重构易于消除的克隆组。人工验证也显示,克隆组的复杂性并不仅仅取决于克隆实例的数量。该方法为管理代码克隆提供了一种新途径,并为未来的克隆维护研究提供了一些有价值的思路。
Keyword:
Code clone analysis
Clone density
Clone entropy
期刊
S
IF:
1.4
论文数:
51
被引数:
1.6K
机构
引用论文
A graph-based code representation method to improve code readability classification一种基于图的代码表示方法提高代码可读性分类
Classifying Obstructive and Nonobstructive Code Clones of Type I Using Simplified Classification Scheme: A Case Study使用简化的分类方案对I型阻塞和非阻塞代码克隆进行分类:一个案例研究

