Affiliation:
1. McGill University, Montreal, Canada
Abstract
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.
Publisher
Association for Computing Machinery (ACM)
Reference30 articles.
1. How Clones are Maintained: An Empirical Study
2. Efficient token based clone detection with flexible tokenization
3. Fowler M. 2000. Refactoring—Improving the Design of Existing Code. Addison-Wesley Reading MA. Fowler M. 2000. Refactoring—Improving the Design of Existing Code. Addison-Wesley Reading MA.
4. Relation of Code Clones and Change Couplings
Cited by
31 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CCStokener: Fast yet accurate code clone detection with semantic token;Journal of Systems and Software;2023-05
2. TestKnight;Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings;2022-05-21
3. TestKnight: An Interactive Assistant to Stimulate Test Engineering;2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion);2022-05
4. Feature trace recording;Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2021-08-18
5. An empirical study on clone consistency prediction based on machine learning;Information and Software Technology;2021-08