期刊文献+

面向大规模多版本软件系统的代码克隆检测加速技术

CODE CLONE DETECTION ACCELERATION TECHNOLOGY FOR LARGE-SCALE MULTI-VERSION PROJECTS
下载PDF
导出
摘要 在软件系统中,相同或相似的代码片段称为代码克隆。目前研究人员已经提出了一些克隆检测方法。这些方法通常仅针对软件系统单个版本进行克隆检测,而在部分场景下,如构建克隆演化谱系时,需要对系统每个版本进行克隆检测,则尤为耗时。为此,提出一种针对多版本软件系统的克隆检测加速技术,可以快速得到每个版本的克隆情况。该技术通过版本间方法映射技术为不同版本代码内容高度相似的同一方法构建方法版本组,选取每个方法版本组中最早的版本作为样本方法,样本方法的集合构成历史映像,对历史映像进行克隆检测,同时建立样本方法和方法版本组间的方法索引。根据历史映像克隆检测结果及方法索引恢复原始的全量克隆关系。采用该克隆检测加速技术在251个开源项目的3 234个版本共计3亿行代码上进行克隆检测实验,与未加速相比,效率提升了近4倍。 In software systems, the same or similar code fragments are called code clones. Researchers have come up with some clone detection methods. These methods usually perform cloning detection on a single version of the software system. In some scenarios, such as constructing a clonal evolution pedigree, it is particularly time-consuming to perform cloning detection on each version of the system. Therefore, we propose a clone detection acceleration technology for multi-version software systems, which can quickly obtain the clone situation of each version. The technology constructed method version groups for the same method with highly similar code contents in different versions through inter version method mapping technology. It selected the earliest version in each method version group as a sample method. The collection of sample methods constituted the historical image, and the historical image was clone detected. The method index was established between sample method and method version group. The original full clone relationship was restored according to the historical image clone detection results and method index. Using the clone detection acceleration technology in this paper, clone detection experiments were carried out on 3 234 versions of 251 open source projects, with a total of 300 million lines of code. Compared with non acceleration, the efficiency is improved by nearly four times.
作者 方维康 吴毅坚 赵文耘 Fang Weikang;Wu Yijian;Zhao Wenyun(School of Software,Fudan University,Shanghai 200438,China;Shanghai Key Laboratory of Data Science,Fudan University,Shanghai 200438,China)
出处 《计算机应用与软件》 北大核心 2022年第4期14-20,共7页 Computer Applications and Software
基金 上海市科技发展基金项目(18DZ1112100,18DZ1112102)。
关键词 代码克隆 克隆检测 历史映像 方法版本组 Code clone Clone detection Historical image Method version group
  • 相关文献

参考文献3

二级参考文献39

  • 1Baker B S. On finding duplication and near-duplication in large software systems. In Proceedings of the 13th Working Conference on ReVerse Engineering, IEEE CS Press, 1995 : 86 - 95.
  • 2Antoniol G, et al. Analyzing cloning evolution in the Linux kernel. Journal of Information and Software Technology, 2002,44 ( 13 ) : 755 - 765.
  • 3Baxter I D, et al. Clone detection using abstract syntax tree. In Proceedings of 1998 International Conference on Software Maintenance. 1998 : 368 - 377.
  • 4Jiang L, et al. DECKARD: Scalable and accurate tree-based dection of code clones, in Proceedings of International Conference on Software Engineering, 2007.
  • 5Gionis A, Indyk P, Motwani R. Similarity search in high dimensions via hashing, in VLDB 1999:518 - 529.
  • 6Kamiya T, Kusmoto S, Inoue K. CCFinder: A multilinguistic tokenbased code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 2002,28 (6) :654- 670.
  • 7Li Z,Lu S,Myagmar S,Zhou Y. CP-Miner: Finding copy-paste and related bugs in large-scale software code. IEEE Transactions on Software Engineering,2006,32(3) :176 - 192.
  • 8Tripathi A. Towards standardization of vulnerability taxonomy. In: Proc. of 2010 the 2nd Int'l Conf. on Computer Technology and Development. 2010. 379-384. [doi: 10.1109/ICCTD.2010.5645826].
  • 9Howard M, LeBlanc D, Viega J, Wrote; Xiao FT, Yang MJ, Trans. 19 Deadly Sins of Software Security Programming Flaws and How to Fix Them. Beijing: Qinghua University Press, 2006 (in Chinese).
  • 10Viega J, Bloch JT, Kohno Y, McGraw G. Its4: A static vulnerability scanner for c and c++ code. In: Proc. of the 16th Annual Computer Security Applications Conf. (ACSAC 2000). Washington: IEEE Computer Society, 2000. [doi: 10.1109/ACSAC.2000. 898880].

共引文献29

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部