Clone Removal in Java Programs as a Process of Stepwise Unification
This addresses the issue of inconsistent software maintenance for developers, but it is incremental as it builds on existing clone detection methods.
The paper tackles the problem of removing cloned code in Java programs by framing it as a stepwise unification process, proposing a backtracking solution to find sequences of changes for clone removal.
Cloned code is one of the most important obstacles against consistent software maintenance and evolution. Although today's clone detection tools find a variety of clones, they do not offer any advice how to remove such clones. We explain the problems involved in finding a sequence of changes for clone removal and suggest to view this problem as a process of stepwise unification of the clone instances. Consequently the problem can be solved by backtracking over the possible unification steps.