What kind of and how clones are refactored?
Eunjgon Choi, Norihiro Yoshida, Katsuro Inoue
Abstract
Eunjgon Choi, Norihiro Yoshida, Katsuro Inoue
Abstract
Although code clone (i.e. a code fragment that has similar or identical fragments) is regarded as one of the most typical bad smells, tools for identification of clone refactoring (i.e. merge code clones into a single method) are not commonly used. To promote the development of more widely-used tools for clone refactoring, we present an investigation of actual clone refactorings performed in the developments of three Open Source Software (OSS) projects. From the results, we confirmed that clone refactorings are mostly archived by two refactoring patterns, and token sequences of refactored code clones are suggested to have a difference of 50%.
OpenAlex reports 7 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Although code clone (i.e. a code fragment that has similar or identical fragments) is regarded as one of the most typical bad smells, tools for identification of clone refactoring (i.e. merge code clones into a single method) are not commonly used. To promote the development of more widely-used tools for clone refactoring, we present an investigation of actual clone refactorings performed in the developments of three Open Source Software (OSS) projects. From the results, we confirmed that clone refactorings are mostly archived by two refactoring patterns, and token sequences of refactored code clones are suggested to have a difference of 50%.
Key concepts: Code refactoring, clone (Java method), Merge (version control), Programming language, Computer science, Security token, Source code, Software maintenance