The application of code clone technology accelerates code search, improves code reuse efficiency, and assists in software quality assessment and code vulnerability detection. However, the application of code clones also introduces software quality issues and increases the cost of software maintenance. As an important research field in software engineering, code clone has been extensively explored and studied by researchers, and related studies on various sub-research fields have emerged, including code clone detection, code clone evolution, code clone analysis, etc. However, there lacks a comprehensive exploration of the entire field of code clone, as well as an analysis of the trend of each sub-research field. This paper collects related work of code clones in the past ten years. In summary, the contributions of this paper mainly include: (1) summarize and classify the sub-research fields of code clone, and explore the relative popularity and relation of these sub-research fields; (2) analyze the overall research trend of code clone and each sub-research field; (3) compare and analyze the difference between academy and industry regarding code clone research; (4) construct a network of researchers, and excavate the major contributors in code clone research field; (5) The list of popular conferences and journals was statistically analyzed. The popular research directions in the future include clone visualization, clone management, etc. For the clone detection technique, researchers can optimize the scalability and execution efficiency of the method, targeting particular clone detection tasks and contextual environments, or apply the technology to other related research fields continuously.
翻译:使用代码克隆技术可加快代码搜索,提高代码再利用效率,并协助进行软件质量评估和代码脆弱性检测。然而,代码克隆的应用也引入了软件质量问题,增加了软件维护费用。作为软件工程的一个重要研究领域,研究人员广泛探索和研究了代码克隆,并出现了关于各种次研究领域的相关研究,包括代码克隆检测、代码克隆演化、代码克隆分析等。然而,缺乏对整个代码克隆领域的全面探索,以及分析每个子研究领域的趋势。本文收集了过去十年代码克隆的相关工作。概括而言,本文的贡献主要包括:(1) 概述和分类代码克隆的子研究领域,并探讨这些子研究领域的相对受欢迎程度和关系;(2) 分析代码克隆和每个子研究领域的总体研究趋势;(3) 比较和分析代码克隆研究领域与产业之间的差异;(4) 建立研究人员网络,并在代码克隆研究领域对主要参与者进行外授;(5) 大众会议与图像检测技术领域以及最佳化技术领域,统计分析有关技术领域。