CloneRipples: Predicting Change Propagation Between Code Clone Instances by Graph-Based Deep Learning

Yijian Wu,Yuan Chen,Xin Peng,Bin Hu,Xiaochen Wang,Baiqiang Fu,Wenyun Zhao
DOI: https://doi.org/10.1007/s10664-024-10567-0
IF: 3.762
2024-01-01
Empirical Software Engineering
Abstract:Code clones are recognized as a code smell that may require additional effort for simultaneous changes of multiple clone instances during software maintenance. To alleviate quality threats caused by inconsistent changes in clone instances, it is essential to accurately and efficiently make the decisions of change propagation between code clone instances. Our exploratory study has revealed that a clone class can have both propagation-required changes and propagation-free changes and thus fine-grained change propagation decisions are required. Based on the findings, we propose a graph-based deep learning approach to predict the change propagation requirements of clone instances. We design a deep learning model that employs a Relational Graph Convolutional Network (R-GCN) to predict the clone change propagation requirement. In order to evaluate our approach, we construct a dataset that includes 24,672 pairs of matched changes and 38,041 non-matched changes based on 51 open-source Java projects. Experiment results show that the approach achieves high precision (83.1
What problem does this paper attempt to address?