Some strategies of reuse in an object-oriented programming environment
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Cyclomatic Complexity Density and Software Maintenance Productivity
IEEE Transactions on Software Engineering
Reducing the variability of programmers' performance through explained examples
INTERCHI '93 Proceedings of the INTERCHI '93 conference on Human factors in computing systems
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Maintaining software through intentional source-code views
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
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
Interactive Simultaneous Editing of Multiple Text Regions
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Managing Duplicated Code with Linked Editing
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
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
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
ConcernMapper: simple view-based separation of scattered concerns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
A join point for loops in AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
Program element matching for multi-version program analyses
Proceedings of the 2006 international workshop on Mining software repositories
"Cloning Considered Harmful" Considered Harmful
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
ICSE '07 Proceedings of the 29th international conference on Software Engineering
How Clones are Maintained: An Empirical Study
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Context-based detection of clone-related bugs
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Efficient token based clone detection with flexible tokenization
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
IEEE Transactions on Software Engineering
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Relation of code clones and change couplings
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
On the need for human-based empirical validation of techniques and tools for code clone analysis
Proceedings of the 5th International Workshop on Software Clones
Proceedings of the 34th International Conference on Software Engineering
Cloning in DSLs: experiments with OCL
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Understanding the evolution of type-3 clones: an exploratory study
Proceedings of the 10th Working Conference on Mining Software Repositories
Searching for better configurations: a rigorous approach to clone evaluation
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Enhancement of CRD-based clone tracking
Proceedings of the 2013 International Workshop on Principles of Software Evolution
Hi-index | 0.00 |
Source code duplication, commonly known as code cloning, is considered an obstacle to software maintenance because changes to a cloned region often require consistent changes to other regions of the source code. Research has provided evidence that the elimination of clones may not always be practical, feasible, or cost-effective. We present a clone management approach that describes clone regions in a robust way that is independent from the exact text of clone regions or their location in a file, and that provides support for tracking clones in evolving software. Our technique relies on the concept of abstract clone region descriptors (CRDs), which describe clone regions using a combination of their syntactic, structural, and lexical information. We present our definition of CRDs, and describe a clone tracking system capable of producing CRDs from the output of different clone detection tools, notifying developers of modifications to clone regions, and supporting updates to the documented clone relationships. We evaluated the performance and usefulness of our approach across three clone detection tools and five subject systems, and the results indicate that CRDs are a practical and robust representation for tracking code clones in evolving software.