2013 · 14 citations · 11 references
ComputingComputer ScienceDesign OptimizationKnowledge ReuseSoftware EngineeringReverse EngineeringSoftware DesignSoftware EvolutionSoftware MaintenanceSoftware RefactoringSoftware ReuseClone DetectionCode ReusabilityMatchingRefactoring
The refactoring of software clones is achieved by extracting their common functionality into a single method. Any differences in identifiers and literals between the clones have to become parameters in the extracted method. Obviously, a large number of differences leads to an extracted method with limited reusability due to the large number of introduced parameters. We support that minimizing the differences between the matched statements of clones is crucial for the purpose of refactoring and propose an algorithm that treats the matching process as an optimization problem.
11
Identifying similar code with program dependence graphs
Jens Krinke · 2002 · 622 citations
Change detection in hierarchically structured information
Sudarshan S. Chawathe, Anand Rajaraman, Héctor García-Molina et al. · 1996 · 488 citations
Chao Liu, Chen Chen, Jiawei Han et al. · 2006 · 423 citations