Are clones harmful for maintenance?
Proceedings of the 4th International Workshop on Software Clones
Viewing simple clones from structural clones' perspective
Proceedings of the 5th International Workshop on Software Clones
On the problems with evolving Egemin's software product line
Proceedings of the 2nd International Workshop on Product Line Approaches in Software Engineering
A scalable goal-oriented approach to software variability recovery
Proceedings of the 15th International Software Product Line Conference, Volume 2
Recovering object-oriented framework for software product line reengineering
ICSR'11 Proceedings of the 12th international conference on Top productivity through software reuse
Approximate graph clustering for program characterization
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
CloneDifferentiator: Analyzing clones by differentiation
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
History-sensitive heuristics for recovery of features in code of evolving program families
Proceedings of the 16th International Software Product Line Conference - Volume 1
A fuzzy model for high-level clones in software
ACM SIGSOFT Software Engineering Notes
Beyond plagiarism: An active learning method to analyze causes behind code-similarity
Computers & Education
Comparison and evaluation of source code mining tools and techniques: A qualitative approach
Intelligent Data Analysis
Hi-index | 0.00 |
Code clones are similar program structures recurring in variant forms in software system(s). Several techniques have been proposed to detect similar code fragments in software, so-called simple clones. Identification and subsequent unification of simple clones is beneficial in software maintenance. Even further gains can be obtained by elevating the level of code clone analysis. We observed that recurring patterns of simple clones often indicate the presence of interesting higher-level similarities that we call structural clones. Structural clones show a bigger picture of similarity situation than simple clones alone. Being logical groups of simple clones, structural clones alleviate the problem of huge number of clones typically reported by simple clone detection tools, a problem that is often dealt with postdetection visualization techniques. Detection of structural clones can help in understanding the design of the system for better maintenance and in reengineering for reuse, among other uses. In this paper, we propose a technique to detect some useful types of structural clones. The novelty of our approach includes the formulation of the structural clone concept and the application of data mining techniques to detect these higher-level similarities. We describe a tool called Clone Miner that implements our proposed technique. We assess the usefulness and scalability of the proposed techniques via several case studies. We discuss various usage scenarios to demonstrate in what ways the knowledge of structural clones adds value to the analysis based on simple clones alone.