Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Data Exchange with the Columbus Schema for C++
CSMR '02 Proceedings of the 6th European Conference on Software Maintenance and Reengineering
Modeling clones evolution through time series
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Assessing the Benefits of Incorporating Function Clone Detection in a Development Process
ICSM '97 Proceedings of the International Conference on Software Maintenance
Columbus - Reverse Engineering Tool and Schema for C++
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
"Cloning Considered Harmful" Considered Harmful
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Clone Detection Using Abstract Syntax Suffix Trees
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Identifying Changed Source Code Lines from Version Repositories
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
A Study of Consistent and Inconsistent Changes to Code Clones
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
An empirical study on the maintenance of source code clones
Empirical Software Engineering
History slicing: assisting code-evolution tasks
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Data clone detection and visualization in spreadsheets
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
It is believed by many academic and industrial experts, that source code cloning (copy&paste programming) represents a significant threat to maintainability in an evolving software system. The real threat does not lie in the existence of duplications, but the fears are in connection with their evolution. There exist an abundance of algorithms for finding code clones in one particular version of a software system, but eliminating or even evaluating these clones often seems hopeless, as there may exist several thousands of them. Tracking the evolution of individual clones might solve the problem, as it could help identifying the inconsistently changing duplications: the clones which are really dangerous at a particular moment. In this paper we present an approach for mapping code duplications from one particular version of the software to another one, based on a similarity distance function. For the suspicious evolution patterns we introduce the term of "clone smells". By defining the relevant categories of the possible evolution patterns, the proposed method also gives a clue about why the reported code fragments might be dangerous. In the case study, clone smells were extracted, evaluated, and manually categorized throughout many versions of the jEdit system. The findings suggest that roughly half of the reported smells refer to inconsistent changes in the code.