Panamoottil Krishnan, Giri (2014) Improving the Unification of Software Clones using Tree and Graph Matching Algorithms. Masters thesis, Concordia University.
Preview |
Text (application/pdf)
2MBPanamoottilKrishnan_MCompSc_S2014.pdf - Accepted Version Available under License Spectrum Terms of Access. |
Abstract
Code duplication is common in all kind of software systems and is one of the most troublesome hurdles in software maintenance and evolution activities. Even though these code clones are created for the reuse of some functionality, they usually go through several modifications after their initial introduction. This has a serious negative impact on the maintainability, comprehensibility, and evolution of software systems.
Existing code duplication can be eliminated by extracting the common functionality into a single module. In the past, several techniques have been developed for the detection and management of software clones. However, the unification and refactoring of software clones is still a challenging problem, since the existing tools are mostly focused on clone detection and there is no tool to find particularly refactoring-oriented clones. The programmers need to manually understand the clones returned by the clone detection tools, decide whether they should be refactored, and finally perform their refactoring. This obvious gap between the clone detection tools and the clone analysis tools, makes the refactoring tedious and the programmers reluctant towards refactoring duplicate codes.
In this thesis, an approach for the unification and refactoring of software clones that overcomes the limitations of previous approaches is presented. More specifically, the proposed technique is able to detect and parameterize non-trivial differences between the clones. Moreover, it can find a mapping between the statements of the clones that minimizes the number of differences. We have also defined preconditions in order to determine whether the duplicated code can be safely refactored to preserve the behavior of the existing code. We compared the proposed technique with a competitive clone refactoring tool and concluded that our approach is able to find a significantly
larger number of refactorable clones.
Divisions: | Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering |
---|---|
Item Type: | Thesis (Masters) |
Authors: | Panamoottil Krishnan, Giri |
Institution: | Concordia University |
Degree Name: | M. Comp. Sc. |
Program: | Computer Science and Software Engineering |
Date: | 28 April 2014 |
Thesis Supervisor(s): | Tsantalis, Nikolaos |
ID Code: | 978599 |
Deposited By: | GIRI PANAMOOTTIL KRISHNAN |
Deposited On: | 03 Jul 2014 17:55 |
Last Modified: | 18 Jan 2018 17:47 |
Repository Staff Only: item control page