期刊文献+
共找到162篇文章
< 1 2 9 >
每页显示 20 50 100
An Empirical Study of Code Clone Clustering Based on Clone Evolution
1
作者 Fanlong Zhang Xiaohong Su +1 位作者 Wen Zhao Tiantian Wang 《Journal of Harbin Institute of Technology(New Series)》 EI CAS 2017年第2期10-18,共9页
There are lots of code clones appearing in software,which are similar code fragments with each other. In the past decades,researchers have proposed some state-of-the-art methods to detect clones. The code clones have ... There are lots of code clones appearing in software,which are similar code fragments with each other. In the past decades,researchers have proposed some state-of-the-art methods to detect clones. The code clones have showing some relationship with the evolution of software. In order to explore relationships between clones and their evolution,we propose a framework to cluster clones with a Fuzzy C-means clustering method.Firstly,we detect all the clones using Ni Cad,and build the clone genealogies for multiple versions software.Secondly,we extract some metrics to describe the clones and their evolution. Finally,we cluster all clone's vectors,which are generated with the different metrics for different proposes. Experimental results on six open source software packages have shown the relationships among the clone life,the number of change times,the clone pattern and et al. can help developers to understand clones. 展开更多
关键词 code clones clone clustering clone analysis clone evolution empirical study
在线阅读 下载PDF
SSA-HIAST: A Novel Framework for Code Clone Detection
2
作者 Neha Saini Sukhdip Singh 《Computers, Materials & Continua》 SCIE EI 2022年第5期2999-3017,共19页
In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cl... In the recent era of software development,reusing software is one of the major activities that is widely used to save time.To reuse software,the copy and paste method is used and this whole process is known as code cloning.This activity leads to problems like difficulty in debugging,increase in time to debug and manage software code.In the literature,various algorithms have been developed to find out the clones but it takes too much time as well as more space to figure out the clones.Unfortunately,most of them are not scalable.This problem has been targeted upon in this paper.In the proposed framework,authors have proposed a new method of identifying clones that takes lesser time to find out clones as compared with many popular code clone detection algorithms.The proposed framework has also addressed one of the key issues in code clone detection i.e.,detection of near-miss(Type-3)and semantic clones(Type-4)with significant accuracy of 95.52%and 92.80%respectively.The present study is divided into two phases,the first method converts any code into an intermediate representation form i.e.,Hashinspired abstract syntax trees.In the second phase,these abstract syntax trees are passed to a novel approach“Similarity-based self-adjusting hash inspired abstract syntax tree”algorithm that helps in knowing the similarity level of codes.The proposed method has shown a lot of improvement over the existing code clones identification methods. 展开更多
关键词 code cloning clone detection hash inspired abstract syntax tree ROTATIONS hybrid framework
在线阅读 下载PDF
Code Clone Detection Method Based on the Combination of Tree-Based and Token-Based Methods
3
作者 Ryota Ami Hirohide Haga 《Journal of Software Engineering and Applications》 2017年第13期891-906,共16页
This article proposes the high-speed and high-accuracy code clone detection method based on the combination of tree-based and token-based methods. Existence of duplicated program codes, called code clone, is one of th... This article proposes the high-speed and high-accuracy code clone detection method based on the combination of tree-based and token-based methods. Existence of duplicated program codes, called code clone, is one of the main factors that reduces the quality and maintainability of software. If one code fragment contains faults (bugs) and they are copied and modified to other locations, it is necessary to correct all of them. But it is not easy to find all code clones in large and complex software. Much research efforts have been done for code clone detection. There are mainly two methods for code clone detection. One is token-based and the other is tree-based method. Token-based method is fast and requires less resources. However it cannot detect all kinds of code clones. Tree-based method can detect all kinds of code clones, but it is slow and requires much computing resources. In this paper combination of these two methods was proposed to improve the efficiency and accuracy of detecting code clones. Firstly some candidates of code clones will be extracted by token-based method that is fast and lightweight. Then selected candidates will be checked more precisely by using tree-based method that can find all kinds of code clones. The prototype system was developed. This system accepts source code and tokenizes it in the first step. Then token-based method is applied to this token sequence to find candidates of code clones. After extracting several candidates, selected source codes will be converted into abstract syntax tree (AST) for applying tree-based method. Some sample source codes were used to evaluate the proposed method. This evaluation proved the improvement of efficiency and precision of code clones detecting. 展开更多
关键词 code clone Token-Based DETECTION Tree-Based DETECTION TREE EDIT Distance
暂未订购
Anti-obfuscation Binary Code Clone Detection Based on Software Gene
4
作者 Ke Tang Fudong Liu +1 位作者 Zheng Shan Chunyan Zhang 《国际计算机前沿大会会议论文集》 2021年第1期193-208,共16页
Information technology facilitates people’s lives greatly,while it also brings many security issues, such as code plagiarism, softwarein-fringement, and malicious code. In order to solve the problems,reverse engineer... Information technology facilitates people’s lives greatly,while it also brings many security issues, such as code plagiarism, softwarein-fringement, and malicious code. In order to solve the problems,reverse engineering is applied to analyze abundant binary code manually,which costs a lot of time. However, due to the maturity of differentobfuscation techniques, the disassembly code generated from the samefunction differs greatly in the opcode and control flow graph throughdifferent obfuscation options. This paper propose a method inspired bynatural language processing, to realize the semantic similarity matchingof binary code in basic block granularity and function granularity. In thesimilarity matching task of binary code obtained by different obfuscationoptions of LLVM, the indicator reaches 99%, which is better than theexisting technologies. 展开更多
关键词 O-LLVM Anti-obfuscation code cloning detection Machine learning Software gene
原文传递
CloneIRD:面向代码溯源的克隆代码继承关系判定方法
5
作者 姜智文 任怡 +3 位作者 杨立明 管剑波 李宝 谭郁松 《郑州大学学报(理学版)》 CAS 北大核心 2024年第2期18-25,共8页
随着开源软件的广泛使用,代码溯源成为管理软件源代码、降低潜在风险的重要技术手段。基于代码克隆检测的大规模代码溯源分析,从其检测结果中鉴别代码克隆对之间的继承关系,对代码来源追踪、组件依赖关系分析、软件脆弱性分析以及代码... 随着开源软件的广泛使用,代码溯源成为管理软件源代码、降低潜在风险的重要技术手段。基于代码克隆检测的大规模代码溯源分析,从其检测结果中鉴别代码克隆对之间的继承关系,对代码来源追踪、组件依赖关系分析、软件脆弱性分析以及代码缺陷修复等具有重要意义。目前,已有方法在原始代码片段存在微小修改的情况下,会产生许多误判,并且检测克隆对的效率也有待提高。针对上述问题,提出了代码溯源中克隆代码继承关系的判定方法CloneIRD,包括一个基于自研快速分布式克隆检测工具FastDCF的代码溯源分析框架,以及该框架的核心算法——基于代码演化信息的克隆代码继承关系判定算法EIHR。为验证框架和算法的有效性,首先设计并实现了CloneIRD方法,并在Linux内核V4.9和V4.12的开源代码上进行了实验。实验结果表明,CloneIRD方法能够有效判定代码溯源结果中克隆对的继承关系,且基于FastDCF的溯源分析框架能够胜任大规模代码的溯源分析任务。 展开更多
关键词 代码溯源 克隆代码 克隆检测 代码继承关系
在线阅读 下载PDF
A Recommendation Approach Based on Bayesian Networks for Clone Refactor
6
作者 Ye Zhai Celimuge Wu +1 位作者 Dongsheng Liu Rongrong She 《Computers, Materials & Continua》 SCIE EI 2020年第9期1999-2012,共14页
Reusing code fragments by copying and pasting them with or without minor adaptation is a common activity in software development.As a result,software systems often contain sections of code that are very similar,called... Reusing code fragments by copying and pasting them with or without minor adaptation is a common activity in software development.As a result,software systems often contain sections of code that are very similar,called code clones.Code clones are beneficial in reducing software development costs and development risks.However,recent studies have indicated some negative impacts as a result.In order to effectively manage and utilize the clones,we design an approach for recommending refactoring clones based on a Bayesian network.Firstly,clone codes are detected from the source code.Secondly,the clones that need to be refactored are identified,and the static and evolutions features are extracted to build the feature database.Finally,the Bayesian network classifier is used for training and evaluating the classification results.Based on more than 640 refactor examples of five open source software developed in C,we observe a considerable enhancement.The results show that the accuracy of the approach is larger than 90%.We believe our approach will provide a more accurate and reasonable code refactoring and maintenance advice for software developers. 展开更多
关键词 clone code clone refactor feature extraction Bayesian network
在线阅读 下载PDF
大模型生成代码的开源许可证违规风险洞察与分析
7
作者 王毅博 王莹 +3 位作者 余跃 许畅 于海 朱志良 《软件学报》 北大核心 2025年第6期2535-2557,共23页
大型语言模型的快速发展极大地影响了软件工程领域.这些模型利用大量开源仓库代码进行预训练,能够高效完成诸如代码生成和代码补全等任务.然而,开源软件仓库中存在大量受开源许可证约束的代码,这给大模型带来了潜在的开源许可证违规风险... 大型语言模型的快速发展极大地影响了软件工程领域.这些模型利用大量开源仓库代码进行预训练,能够高效完成诸如代码生成和代码补全等任务.然而,开源软件仓库中存在大量受开源许可证约束的代码,这给大模型带来了潜在的开源许可证违规风险.聚焦于大模型生成代码与开源仓库的许可证违规风险,基于代码克隆技术开发一个支持大模型生成代码溯源与版权违规问题的检测框架.针对9个主流代码大模型生成的135000个Python代码,利用该框架在开源社区中溯源并检测开源许可证兼容性.通过实践调查3个研究问题来探究大模型代码生成对开源软件生态的影响:(1)大模型生成的代码多大程度克隆于开源软件仓库?(2)大模型生成的代码是否存在开源许可证违规风险?(3)真实开源软件中包含的大模型生成代码是否存在开源许可证违规风险?实验结果发现在使用功能描述和方法签名所生成的43130和65900个大于6行的Python代码中,分别溯源到了68.5%和60.9%的代码存在克隆的开源代码片段.其中CodeParrot和CodeGen系列模型的克隆比例最高,GPT-3.5-Turbo最低.其次,92.7%的通过功能描述生成的代码中没有开源许可证声明.通过与溯源代码许可证进行对比,81.8%的代码存在开源许可证违规风险.此外,在收集到的229个GitHub平台开发者使用大模型生成的代码中,有136个代码溯源了到开源代码片段,其中38个为Type1和Type2克隆类型,有30个存在开源许可证违规风险.以问题报告的形式提交给开发者,到目前为止,得到了8位开发者的反馈. 展开更多
关键词 大语言模型 开源许可证 开源许可证冲突 代码克隆 代码搜索
在线阅读 下载PDF
基于代码特征的代码克隆搜索方法
8
作者 张明睿 陈碧欢 +1 位作者 张跃 赵文耘 《计算机应用与软件》 北大核心 2025年第3期7-14,共8页
当前代码克隆搜索的研究主要集中在了搜索实现方式相同或变化不大的代码克隆上,对于语义代码克隆搜索,当前的方法表现不佳。为了提高语义代码克隆搜索的准确性,提出一个基于代码特征的代码克隆搜索方法,对代码片段建立代码图,并在图中... 当前代码克隆搜索的研究主要集中在了搜索实现方式相同或变化不大的代码克隆上,对于语义代码克隆搜索,当前的方法表现不佳。为了提高语义代码克隆搜索的准确性,提出一个基于代码特征的代码克隆搜索方法,对代码片段建立代码图,并在图中抽取关键节点来构造语义特征表示,使用倒排索引以及基于TF-IDF的评分算法进行搜索。实验结果表明,在语义代码克隆搜索能力上,所提出的方法比现有方法有较大提升。 展开更多
关键词 代码克隆 克隆检测 代码搜索 代码克隆搜索 特征提取
在线阅读 下载PDF
最长公共子序列嵌入支持下的代码相似性检测
9
作者 弓媛君 黄建军 +4 位作者 游伟 石文昌 梁彬 边攀 张健 《软件学报》 北大核心 2025年第11期4975-4989,共15页
最长公共子序列(longest common subsequence,LCS)是一种衡量代码相似度的可行指标.然而,经典LCS算法的时间复杂度较高,难以应对大型数据集,并且,由于代码文本序列中的词(token)本质为一种基于离散表示的编码,直接使用LCS算法无法有效... 最长公共子序列(longest common subsequence,LCS)是一种衡量代码相似度的可行指标.然而,经典LCS算法的时间复杂度较高,难以应对大型数据集,并且,由于代码文本序列中的词(token)本质为一种基于离散表示的编码,直接使用LCS算法无法有效识别文本不同但语义相似的代码片段中的关键语义.针对这两方面的不足,提出一种面向LCS的嵌入方法,将代码间的LCS计算转换为代码低维稠密嵌入向量间的数值运算,并可以利用近似最近邻算法进一步加速其计算.为此,设计了一个可嵌入的基于LCS的距离度量方法,实验证明这种代码度量在提取函数关键语义的表现上优于对比嵌入工具使用的基于文本的距离或基于树的距离.同时,为了在嵌入过程中有重点地保留代码的关键语义,构建了两种损失函数和相应的训练集,识别文本上不同但语义上相似的代码元素,使模型在检测复杂代码克隆时有更好的表现.实验证明了该方法拥有很强的可扩展性,且其对复杂克隆的检测能力也保持在很高水平.将该技术应用于相似缺陷的识别,上报了23个未知缺陷,这些缺陷已被开发人员在实际项目中确认,其中有些复杂缺陷是难以被基于文本的LCS算法检出的. 展开更多
关键词 最长公共子序列(LCS) 代码相似性检测 代码嵌入 缺陷检测 克隆检测
在线阅读 下载PDF
基于代码克隆差异分析的函数模板挖掘和检索方法
10
作者 肖泉彬 陈源 +1 位作者 吴毅坚 彭鑫 《软件学报》 北大核心 2025年第6期2774-2793,共20页
在软件工程领域,代码库承载着丰富的知识资源,可以为开发者提供编程实践的案例参考.源代码中频繁出现的模式化重复片段,若能以代码模板的形式有效提炼,就能显著提升编程效率.当前实践中,开发者常常通过源代码搜索复用现有解决方案,然而... 在软件工程领域,代码库承载着丰富的知识资源,可以为开发者提供编程实践的案例参考.源代码中频繁出现的模式化重复片段,若能以代码模板的形式有效提炼,就能显著提升编程效率.当前实践中,开发者常常通过源代码搜索复用现有解决方案,然而此方法往往产生大量相似且冗余的结果,增加了后续筛选工作的负担.与此同时,以克隆代码为基础的模板挖掘技术往往未能涵盖由分散小克隆片段构成的广泛模式,进而限制了模板的实用性.提出了一种基于代码克隆检测的代码模板提取和检索方法,通过拼接多个片段级克隆以及提取和聚合方法级克隆的共享部分,实现了更高效的函数级代码模板提取,并解决了模板质量问题.基于所挖掘的代码模板,提出了一种代码结构特征的三元组表示法,有效地对纯文本特征进行补充,并实现了高效而简洁的结构表示.此外,提出了一种结构和文本检索相结合的模板特征检索方法,以便通过匹配编程上下文的特征来检索这些模板.基于该方法实现的工具CodeSculptor,在包含45个高质量Java开源项目的代码库测试中展现了其提取高质量代码模板的显著能力.结果表明,该工具挖掘的模板平均可实现减少60.87%的代码量,且有92.09%是通过拼接片段级克隆产生的,这一比例的模板在传统方法中是无法识别出来的,这印证了该方法在识别和构建代码模板方面的卓越性能.在代码模板检索和推荐的实验中,Top-5检索结果精确度达到了96.87%.通过对随机选择的9600个模板进行的初步案例研究,讨论了模板的实用性,并发现大多数抽样代码模板在语义上是完整的,少数无意义的模板表明该模板提取工作未来的潜力.用户研究进一步表明,使用CodeSculptor能够更有效率地完成代码开发任务. 展开更多
关键词 克隆检测 代码检索 特征表示 软件开发 代码复用
在线阅读 下载PDF
基于增强控制流图与孪生网络架构的代码克隆检测方法
11
作者 熊曙初 段金焱 +1 位作者 尹璐 曾智勇 《计算机应用研究》 北大核心 2025年第7期2132-2140,共9页
针对现有代码克隆检测方法存在上下文信息缺失以及语义学习能力弱的问题,提出一种基于增强控制流图与孪生网络架构的代码克隆检测方法。该方法首先设计了代码表示结构ECFG(enhanced control flow graph),在控制流图中嵌入跨节点关联边... 针对现有代码克隆检测方法存在上下文信息缺失以及语义学习能力弱的问题,提出一种基于增强控制流图与孪生网络架构的代码克隆检测方法。该方法首先设计了代码表示结构ECFG(enhanced control flow graph),在控制流图中嵌入跨节点关联边以强化上下文信息的感知;其次构建基于孪生网络架构的代码语义匹配模型CGSMN(code graph semantic matching network)。该模型先融合多头注意力机制,提取节点中的关键信息,随后改进关系图注意力网络,捕获节点间的关联信息以生成图特征向量,再挖掘特征向量间的语义联系,计算语义相似度。在两个代表性数据集上进行实证,结果表明,与ASTNN、FA-AST和DHAST等方法相比,在BigCloneBench数据集上,F_(1)值提升了0.5~15.5百分点,在Google Code Jam数据集上F_(1)值提升了1.5~16.5百分点,证明了该方法针对语义克隆检测的有效性。 展开更多
关键词 控制流图 孪生网络架构 代码表征 语义相似性 克隆检测
在线阅读 下载PDF
TPLADD:高鲁棒性与高精度的C/C++第三方库检测方法
12
作者 贾昀峰 王俊峰 吴鹏 《计算机科学与探索》 北大核心 2025年第7期1969-1980,共12页
第三方库(TPL)作为现代C/C++软件开发的重要组成部分,其精确检测与管理对于保障软件质量与安全性至关重要。然而现有方法主要依赖代码语法特征,对TypeⅡ和TypeⅢ克隆重用场景的适应性不足,易导致检测失效。提出一种基于函数抽象语法树(A... 第三方库(TPL)作为现代C/C++软件开发的重要组成部分,其精确检测与管理对于保障软件质量与安全性至关重要。然而现有方法主要依赖代码语法特征,对TypeⅡ和TypeⅢ克隆重用场景的适应性不足,易导致检测失效。提出一种基于函数抽象语法树(AST)特征的TPL检测方法TPLADD。该方法利用AST节点度数与次序的度量信息快速实现函数语法向量嵌入,并结合向量数据库与近似最近邻检索技术,显著提升了修改重用场景下的检测鲁棒性。基于异常检测的过滤技术可以有效减少干扰函数对检测的影响,提高结果精确性。基于GitHub搜集的29 782个开源软件(OSS)共计726 074个版本,构建了特征向量索引库,并在100个知名项目上验证有效性。实验结果表明,在精度上,TPLADD相较于CENTRIS,精确率和召回率分别提升了3.88和2.76个百分点;在鲁棒性上,TPLADD即使出现较大程度代码修改时,仍能保持74%的F1值;在性能上,TPLADD平均每个TPL检测耗时仅0.42 s,索引库存储占用率仅为总体函数特征的0.41%。这些充分体现了TPLADD高鲁棒性、高精确性的特点,且具备良好的性能表现。 展开更多
关键词 开源软件 软件组件分析 第三方库检测 代码克隆 修改重用 静态分析
在线阅读 下载PDF
基于特征工程的代码克隆检测方法
13
作者 王国喜 王欢 许萌 《应用技术学报》 2025年第3期306-312,共7页
代码克隆在软件开发中普遍存在,虽可在短期内提升开发效率,但长期会导致代码质量下降、维护成本增加及安全风险上升。在企业环境中,部分开发者为了提高研发效能评估评分,可能刻意提交重复代码,这不仅影响项目质量,还会破坏评估公平性。... 代码克隆在软件开发中普遍存在,虽可在短期内提升开发效率,但长期会导致代码质量下降、维护成本增加及安全风险上升。在企业环境中,部分开发者为了提高研发效能评估评分,可能刻意提交重复代码,这不仅影响项目质量,还会破坏评估公平性。传统检测方法效率低,基于深度学习的模型又面临计算资源消耗大和依赖大量标注数据的问题。为此,提出一种基于特征工程的轻量化机器学习检测框架,通过预训练代码模型生成特征向量,结合相似性算法、代码变更行信息和提交时间序列构建多维特征空间,并评估多种机器学习模型的性能。实验表明,基于所构建特征集训练的模型在企业数据集上表现良好,能够高效、精准地检测代码克隆,为构建可信研发效能体系提供了新思路。 展开更多
关键词 代码克隆检测 研发效能评估 特征工程 机器学习
在线阅读 下载PDF
基于Token编辑距离检测克隆代码 被引量:13
14
作者 张久杰 王春晖 +2 位作者 张丽萍 侯敏 刘东升 《计算机应用》 CSCD 北大核心 2015年第12期3536-3543,共8页
针对当前Type-3克隆代码检测工具较少、效率偏低等问题,提出了一种基于Token的能有效检测Type-3克隆代码的检测方法。该方法同时能有效检测Type-1和Type-2克隆代码。首先将源代码Token化得到特定代码粒度的Token串,其次将所有Token串的... 针对当前Type-3克隆代码检测工具较少、效率偏低等问题,提出了一种基于Token的能有效检测Type-3克隆代码的检测方法。该方法同时能有效检测Type-1和Type-2克隆代码。首先将源代码Token化得到特定代码粒度的Token串,其次将所有Token串的定长子串进行映射,在对映射信息进行查询的基础上,利用编辑距离算法确定克隆对,然后通过并查集算法快速构建克隆群,最终反馈克隆代码信息。实现了原型工具FClones,利用基于代码突变的框架对工具进行了评价,并与领域内较优秀的两款工具Ni Cad及Sim Cad进行了对比。实验结果表明,FClones在检测三类克隆代码时查全率均不低于95%,查准率均不低于98%,能更好地检测Type-3克隆代码。 展开更多
关键词 克隆代码 克隆检测 编辑距离 Type-3 TOKEN
在线阅读 下载PDF
基于软件多版本演化提取克隆谱系 被引量:10
15
作者 涂颖 张丽萍 +2 位作者 王春晖 侯敏 刘东升 《计算机应用》 CSCD 北大核心 2015年第4期1169-1173,1178,共6页
针对单个版本克隆检测结果不足以体现克隆特征这一问题,从软件多版本中自动提取克隆谱系,获得克隆在软件演化过程中表现出的模式和特征。首先基于克隆代码Token表示及其所在文件名称、函数名称等位置属性,准确映射软件历时演化版本间的... 针对单个版本克隆检测结果不足以体现克隆特征这一问题,从软件多版本中自动提取克隆谱系,获得克隆在软件演化过程中表现出的模式和特征。首先基于克隆代码Token表示及其所在文件名称、函数名称等位置属性,准确映射软件历时演化版本间的克隆代码,进而识别克隆演化模式;然后匹配克隆类ID号,合并所有相邻版本间的映射结果及演化模式信息,得到克隆谱系。同时开发了相应的克隆谱系自动提取工具FCG对6款开源软件进行了测试,发现当前版本中克隆代码平均生命周期占所研究版本总数的70%以上,且大部分没有发生变化,说明大部分克隆能被较好地维护,但也存在少量不稳定的克隆可能导致软件缺陷,需要修改或重构。实验结果表明FCG可高效提取克隆谱系,有助于更好地理解克隆及有针对性地管理克隆。 展开更多
关键词 克隆代码 克隆谱系 多版本 克隆演化 软件维护
在线阅读 下载PDF
克隆代码技术研究综述 被引量:13
16
作者 史庆庆 孟繁军 +1 位作者 张丽萍 刘东升 《计算机应用研究》 CSCD 北大核心 2013年第6期1617-1623,共7页
软件系统中克隆代码的检测与管理是软件工程中的基本问题之一,在软件的质量、维护、架构、进化、专利和剽窃等众多领域有着广泛的应用需求。综述了克隆检测的过程、技术及其优缺点、克隆进化方向上的相关研究,以及克隆管理的一些技术,... 软件系统中克隆代码的检测与管理是软件工程中的基本问题之一,在软件的质量、维护、架构、进化、专利和剽窃等众多领域有着广泛的应用需求。综述了克隆检测的过程、技术及其优缺点、克隆进化方向上的相关研究,以及克隆管理的一些技术,并特别介绍了克隆重构技术。最后概括了该领域所取得的研究成果,并讨论了目前克隆代码研究中所遇到的挑战性问题。 展开更多
关键词 克隆代码 克隆检测 克隆进化 克隆管理 克隆重构
在线阅读 下载PDF
基于主题建模技术的克隆群映射方法 被引量:11
17
作者 张瑞霞 张丽萍 +1 位作者 王春晖 侯敏 《计算机工程与设计》 北大核心 2015年第6期1524-1529,共6页
针对对源代码进行拷贝、粘贴及修改活动会导致软件中出现大量的克隆代码的问题,将主题建模技术应用于克隆代码,提出一种克隆群映射方法。运用主题建模技术将映射问题由高维的代码空间转化到低维的主题空间上,通过主题的映射间接实现映... 针对对源代码进行拷贝、粘贴及修改活动会导致软件中出现大量的克隆代码的问题,将主题建模技术应用于克隆代码,提出一种克隆群映射方法。运用主题建模技术将映射问题由高维的代码空间转化到低维的主题空间上,通过主题的映射间接实现映射相邻版本克隆群的目的。对4款开源软件进行方法评估,实验结果表明,使用该方法的查全率和查准率均高达0.99,其能够有效准确地实现相邻版本的克隆群映射。 展开更多
关键词 克隆代码 软件演化 主题 主题建模 克隆群映射
在线阅读 下载PDF
使用抽象语法树和静态分析的克隆代码自动重构方法 被引量:14
18
作者 于冬琦 彭鑫 赵文耘 《小型微型计算机系统》 CSCD 北大核心 2009年第9期1752-1760,共9页
单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异... 单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异度指标建立起语法树之间流程控制语句的对应关系.在此基础上,该方法根据控制流程和基本语句块两个层次上的差异性分析,最终通过代码可变点提取实现克隆代码的自动合并.针对Java代码开发了克隆代码重构支持工具原型,并分别针对JDK1.5和一个业务系统进行了自动重构实验.初步的结果表明,该方法能够准确、有效地辅助开发者实现克隆代码的自动重构. 展开更多
关键词 可变点提取 代码克隆 抽象语法树 再工程 逆向工程
在线阅读 下载PDF
基于后缀数组的克隆检测 被引量:7
19
作者 史庆庆 张丽萍 +1 位作者 尹丽丽 刘东升 《计算机工程》 CAS CSCD 2013年第9期123-127,共5页
程序员对源代码的拷贝、粘贴及修改活动会导致软件中出现大量克隆代码,增加软件开发和维护的成本。为解决该问题,提出一种新的克隆检测方法。利用基于后缀数组的算法查找重复的Token子串,进而检测出克隆代码,开发相应的克隆检测工具SaCD... 程序员对源代码的拷贝、粘贴及修改活动会导致软件中出现大量克隆代码,增加软件开发和维护的成本。为解决该问题,提出一种新的克隆检测方法。利用基于后缀数组的算法查找重复的Token子串,进而检测出克隆代码,开发相应的克隆检测工具SaCD,用其检测29款C语言开源软件。实验结果表明,SaCD能快速有效地检测软件中的Type-1和Type-2语句克隆,其检测速度比传统的克隆检测工具CCFinderx快了近20倍。 展开更多
关键词 克隆代码 克隆检测 Token串 后缀数组 重复子串 DC3算法
在线阅读 下载PDF
基于版本间克隆映射的演化模式识别及谱系构建 被引量:4
20
作者 张久杰 翟晔 +2 位作者 王春晖 张丽萍 刘东升 《计算机应用》 CSCD 北大核心 2016年第7期2021-2030,共10页
针对当前克隆谱系的构建方法较为复杂、演化模式亟需扩充等问题,提出了新的克隆代码演化模式,并根据软件版本间的克隆代码映射关系自动构建了克隆谱系。首先,针对软件每一版本进行克隆检测并利用潜在狄利克雷分配(LDA)抽取克隆代码的主... 针对当前克隆谱系的构建方法较为复杂、演化模式亟需扩充等问题,提出了新的克隆代码演化模式,并根据软件版本间的克隆代码映射关系自动构建了克隆谱系。首先,针对软件每一版本进行克隆检测并利用潜在狄利克雷分配(LDA)抽取克隆代码的主题信息;然后,根据克隆代码主题的相似度确定版本间克隆代码的映射关系;进而,根据已有的映射关系为克隆代码添加演化模式并分析演化特征;最终,结合映射信息与演化模式信息完成克隆谱系的构建。针对4款开源软件进行了克隆谱系的构建实验,实验结果表明所提克隆谱系构建方法可行,证实了新提出的演化模式在克隆代码演化过程中确实存在。实验发现约90%的克隆代码在软件演化过程中比较稳定,约67%的克隆群经历的发布版本数不超过发布版本总数的一半。实验结论及理论分析将为克隆代码的后续研究及克隆代码的维护与管理提供有力支持。 展开更多
关键词 克隆代码 主题建模 软件演化 演化模式 克隆谱系 软件维护
在线阅读 下载PDF
上一页 1 2 9 下一页 到第
使用帮助 返回顶部