DocumentCode :
176115
Title :
A Fine-Grained Analysis on the Evolutionary Coupling of Cloned Code
Author :
Mondal, Malay ; Roy, Chanchal K. ; Schneider, Kevin A.
Author_Institution :
Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada
fYear :
2014
fDate :
Sept. 29 2014-Oct. 3 2014
Firstpage :
51
Lastpage :
60
Abstract :
Code clones are identical or similar code fragments in a code base. A group of code fragments that are similar to one another forms a clone class. Clone fragments from the same clone class often need to be changed together consistently and thus, they exhibit evolutionary coupling. Evolutionary coupling among clone fragments within a clone class has already been investigated and reported. However, a change to a clone fragment of a clone class may also trigger changes to non-cloned code as well as to clone fragments of other clone classes. Such coupling information is equally important for the proper management of clones during software maintenance. Unfortunately, there are no such studies reported in the literature. In this paper, we describe a large scale empirical study that we conduct to examine whether a clone fragment from a particular clone class exhibits evolutionary coupling with non-clone fragments and/or with clone fragments of other clone classes. Our experimental results on thousands of revisions of six diverse subject systems written in two programming languages indicate the presence of such couplings. We consider both exact and near-miss clones in our study. By analyzing the evolutionary couplings of a particular clone fragment from a particular clone class, we are able to predict its three types of co-change candidates with considerable accuracy in terms of precision and recall. These co-change candidates are: (1) non-clone fragments, (2) clone fragments from clone classes other than its own class, and (3) other clone fragments from its own clone class. Thus, we can improve existing clone tracking techniques so that they can also infer and suggest which non-clone fragments as well as which clone fragments from other clone classes might need to be co-changed correspondingly when modifying a clone fragment from a particular clone class.
Keywords :
software maintenance; clone fragment; clone tracking techniques; cloned code evolutionary coupling; co-change candidates; exact clones; fine-grained analysis; near-miss clones; programming languages; software maintenance; Association rules; Cloning; Couplings; Java; Software maintenance; Software systems; Association Rule; Clone Tracking; Co-change Candidate; Code Clones; Evolutionary Coupling;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on
Conference_Location :
Victoria, BC
ISSN :
1063-6773
Type :
conf
DOI :
10.1109/ICSME.2014.27
Filename :
6976071
Link To Document :
بازگشت