Login | Register

A Refactoring Technique for Large Groups of Software Clones

Title:

A Refactoring Technique for Large Groups of Software Clones

Alwaqfi, Asif (2017) A Refactoring Technique for Large Groups of Software Clones. Masters thesis, Concordia University.

[thumbnail of AlWaqfi_MASc_S2017.pdf]
Preview
Text (application/pdf)
AlWaqfi_MASc_S2017.pdf - Accepted Version
Available under License Spectrum Terms of Access.
2MB

Abstract

Code duplication, also known as software clones, is a persistent problem in software systems that is usually associated with error-proneness and poor software maintainability. Despite the fact that clone detection is a mature research field, clone refactoring has not been equally investigated. Clone refactoring requires the unification and merging of duplicated code, which is a challenging problem because of the changes that take place on the initial clones after their introduction.

In recent years, more research works attempted to address the challenges around clone refactoring by applying different techniques; however, they suffer from poor accuracy or performance issues, especially for large clone groups containing more than two clone instances. We contribute to this field by proposing an automated approach that a) finds refactorable subgroups (consisting of three clones or more) within the original group of clones, b) finds the statements that to be merged and extracted in a fast yet accurate way, and c) assesses the refactorability of clone subgroups.

We evaluated our approach in comparison to the state-of-the-art, and the results show that we have a high accuracy in matching the clone statements, while maintaining high performance. In a case study, where we carefully examined all clone groups in project JFreeChart 1.0.10, we found that around 49% of the 98 clone subgroups are actually refactorable. Finally, we conducted a large-scale study on over 44k clone groups (13.6k groups containing 3 clones or more) detected by four clone detection tools in nine open source projects to assess the refactorability for clone groups. The outcome of this study revealed the presence of 2,833 refactorable clone subgroups that contain in total 13,398 clone instances.

Divisions:Concordia University > Gina Cody School of Engineering and Computer Science
Item Type:Thesis (Masters)
Authors:Alwaqfi, Asif
Institution:Concordia University
Degree Name:M.A. Sc.
Program:Software Engineering
Date:February 2017
Thesis Supervisor(s):Tsantalis, Nikolaos
ID Code:982227
Deposited By: ASIF ALWAQFI
Deposited On:09 Jun 2017 14:50
Last Modified:18 Jan 2018 17:54
All items in Spectrum are protected by copyright, with all rights reserved. The use of items is governed by Spectrum's terms of access.

Repository Staff Only: item control page

Downloads per month over past year

Research related to the current document (at the CORE website)
- Research related to the current document (at the CORE website)
Back to top Back to top