返回
CloneRipples: predicting change propagation between code clone instances by graph-based deep learning
DOI:10.1007/s10664-024-10567-0.png)
摘要
En 中文
代码克隆被认为是一种代码气味,在软件维护期间可能需要额外的努力来同时更改多个克隆实例。为了减轻由克隆实例中的不一致更改引起的质量威胁,必须准确有效地做出代码克隆实例之间的更改传播决策。我们的探索性研究表明,克隆类可以同时具有需要传播的更改和无传播的更改,因此需要精细的更改传播决策。基于研究结果,我们提出了一种基于图的深度学习方法来预测克隆实例的变化传播需求。我们设计了一个深度学习模型,该模型采用关系图卷积网络 (r-gcn) 来预测克隆更改传播需求。为了评估我们的方法,我们基于51个开源Java项目构建了一个数据集,其中包括24,672对匹配的更改和38,041非匹配的更改。实验结果表明,该方法具有较高的准确率 (83.1%) 、召回率 (81.2%) 和F1-score (82.1%)。我们实现了一个名为CloneRipples的IntelliJ IDEA工具,以帮助开发人员在开发环境中无缝地确定代码克隆实例之间更改传播的必要性。人工检查通过纠正不匹配变化的数据标签来识别净化数据集的机会。各种数据纯化策略的扩展实验揭示了提高预测有效性和通用性的可行方法。
Keyword:
Code clone
Change propagation
Consistent changes
Clone dataset
期刊
IF:
3.6
论文数:
2.0K
被引数:
5.3K
机构
引用论文
Improving Maintenance-Consistency Prediction During Code Clone Creation改进代码克隆创建期间的维护一致性预测
IEEE ACCESS
IF3.6

