克隆代码论文-彭双和,刘佩瑶,赵佳利

克隆代码论文-彭双和,刘佩瑶,赵佳利

导读:本文包含了克隆代码论文开题报告文献综述及选题提纲参考文献,主要关键词:漏洞,特征矩阵,克隆代码,Python

克隆代码论文文献综述

彭双和,刘佩瑶,赵佳利[1](2019)在《基于特征矩阵的Python克隆代码漏洞检测方法》一文中研究指出随着人工智能和机器学习的快速发展,拥有强大第叁方库的Python越来越受程序员的青睐。为了缩短开发周期,代码复用成为程序员的首选。代码复用的最直接方式是进行代码克隆,如果被克隆的代码存在漏洞,所造成的损失将是无法预料的。本文提出了一种基于特征矩阵的Python克隆代码漏洞检测方法。首先,针对不同的漏洞类型,提取相应的关键特征,依照不同关键特征对Python脚本进行前向或后向的程序切片。然后,利用基于代码块的抽象语法树,将代码转换为向量,构建特征矩阵。最后,利用机器学习的方法,对特征矩阵进行降维并计算相似度。实验结果显示,该方案可以有效检测出Python脚本的漏洞。(本文来源于《武汉大学学报(理学版)》期刊2019年05期)

侯敏,张丽萍[2](2019)在《克隆代码检测技术研究》一文中研究指出在软件项目开发中复制代码片断是一个常见的现象,然后通过粘贴或修改之后再利用,这种重复使用的代码叫做克隆代码(clone code)。长期研究发现克隆代码可能会影响软件系统的质量,特别是对软件的维护和阅读理解,所以经常需要对其进行寻找定位。在寻找克隆代码的研究过程中,许多克隆检测技术和检测工具相继被提出,而如何能够更好地利用这些检测技术和工具将是非常重要的。通过对克隆代码相关领域的大量研究,文中阐述了克隆代码的定义、克隆相关术语及克隆类型;描述了克隆代码检测的一般过程;介绍了不同克隆代码检测方法及相关技术,以及对应各种技术开发的检测工具,并对各种方法进行了总结分析;分析了克隆检测技术在各领域的具体应用,并对其发展方向进行了展望。(本文来源于《计算机技术与发展》期刊2019年08期)

陈星昊[3](2018)在《基于LLVM克隆代码检测关键技术研究》一文中研究指出在代码开发过程中需求的快速变化导致代码实现的周期较短。代码的复制、粘贴、模仿等操作已成为加快软件开发周期的普遍方式。尽管克隆代码为开发者提供便利,但也因此降低程序的可维护性。研究克隆代码检测技术在代码开发、代码维护、缺陷查找、软件权益保护等多个方面都有显着的意义。在实际应用中,常用代码克隆检测方法包括:文本对比法、token序列对比法、索引序列匹配法、后缀树与前缀树检测法、抽象语法树距离检测法、基于程序依赖图的检测法等。其中程序依赖图检测方法具有分析全面,精确度高的特点。但其匹配成本较高、匹配信息量大,因而不适用于大规模代码的检测。本文在传统检测方法的研究基础上,提出新的基于LLVM依赖图的克隆代码检测方法。本文主要工作包括:(1)结合LLVM IR代码粒度较细的特性,提出将LLVM复杂程序依赖图简化成为简单依赖图的方法,旨在将LLVM依赖图转化成为与语句依赖图同一级别的简单依赖图,作为所有操作与分析的基础。(2)基于上述生成的简单依赖图,本文提出分割简单依赖图并以分割后产生的分片获取克隆代码段的方法。该方法固定匹配的范围,选取匹配依据,设计并行算法,提升了程序依赖图克隆检测方法的匹配速度与匹配精度。(3)基于上述生成的简单依赖图,本文提出自动化过滤低相似克隆片段并获取连续克隆代码段的方法。该方法结合机器学习理论预测相似度阈值,设计合并算法,屏蔽不可达或无关代码,解决了检测克隆代码不连续的问题以及提升了匹配精度。(4)根据上述内容,设计完整的克隆检测框架并实现。试验结果表明:(1)相似度阈值对结果影响较大,且预测模型可获得准确的相似度阈值。(2)本文采用的并行算法可以有效的加快运行速度。(3)在多种克隆方式下,对比主流软件的检测结果,本文算法平均提升了26%的查全率。(本文来源于《南京邮电大学》期刊2018-11-14)

赵凤荣,姚永婷,张丽萍,赵俊奇[4](2018)在《基于抽象语法树和最优映射算法的克隆代码映射研究》一文中研究指出以具有嵌套结构的克隆代码为研究对象,使用NiCad检测工具获取克隆代码的检测结果,然后将检测出的克隆代码转换为抽象语法树,利用递归函数返回最优子树,筛选出具有相同嵌套结构的克隆代码;再利用最优映射算法对具有相同嵌套结构的克隆对进行映射.此方法更好地支持了Type-3类型克隆代码的映射,为进一步研究克隆代码重构奠定了基础.(本文来源于《内蒙古大学学报(自然科学版)》期刊2018年05期)

辛艳艳,吴海涛[5](2018)在《基于抽象语法树的C克隆代码重构应用与研究》一文中研究指出为了缩短软件工程生命周期,引入组件、复制的概念,利用抽象语法树(AST)将相同功能的代码设计为一个函数,保留充足的接口参数,利用过程调用开发软件程序,可以提高软件开发效率.(本文来源于《上海师范大学学报(自然科学版)》期刊2018年04期)

姚永婷[6](2018)在《软件克隆代码可重构性分析研究》一文中研究指出在软件开发过程中,开发人员会通过拷贝粘贴来降低软件开发的成本,导致软件中出现较多相同或者相似的代码,这些被重复使用的代码就称为克隆代码(Code Clone)。现有研究认为克隆代码对软件的可维护性和演化有着潜在的危害,但是目前通过重构来消除克隆代码的研究成果依然有限,因为克隆代码的重构是一个非常具有挑战性的问题,特别是克隆代码在初次引入后,经过多次修改,重构起来会更加的复杂。从研究目的来看,找到一种能够评估克隆代码是否可以在不改变程序行为的情况下进行重构的方法是本研究领域的关键所在。具有嵌套结构的克隆代码相对于其它类型的克隆而言,更具有代表性,且对其进行重构能快速消除软件中的冗余代码。本文以具有嵌套结构的克隆代码为研究对象,开展克隆代码检测、克隆代码嵌套结构匹配、克隆代码映射以及克隆代码重构前提条件研究,具体工作如下:1.基于NiCad、CCFinder、Deckard和CloneDR四种检测工具获取克隆代码检测结果。首先,利用AST构建算法将源代码表示为抽象语法树;其次,利用递归函数返回最优子树匹配算法,筛选出具有相同嵌套结构的克隆代码;然后,利用最优映射算法对具有相同嵌套结构的嵌套结构子树进行映射;最后,利用基于深度优先的树搜索算法,将子树映射组合起来,构成全局映射解决方案。2.在完成映射之后,需要通过参数化映射语句之间的差异来确定两个克隆代码片段是否可以安全的进行重构。本研究从方法提取、映射语句之间的差异和未映射语句3个角度设置了6个克隆重构前提条件对克隆代码的可重构性加以判断。如果违反任何一个前提条件,那么该克隆代码片段是不适合重构的,或者说重构有可能会导致源程序的行为发生改变。3.基于以上研究方法,本研究针对9款开源软件进行克隆代码重构识别,并与当前流行重构工具CeDAR进行比较,本方法识别出来的可重构克隆数量比CeDAR多4倍,可重构率从20%提升至37%。除此之外,本文又从克隆代码的可重构比例、时间性能、最优映射算法性能叁个方面对实验方法进行评估,最终结果表明使用本方法推荐出来的克隆代码可重构率为90%,且时间成本很小。证明了本研究可行有效。(本文来源于《内蒙古师范大学》期刊2018-04-08)

陈志皑[7](2018)在《基于软件漏洞的克隆代码稳定性评估方法》一文中研究指出克隆和非克隆代码容易产生"漏洞"倾向性问题。但是采用当前方法进行克隆代码稳定性评估时,无法提取产生"漏洞"的克隆和非克隆代码,存在稳定性评估误差大的问题。为此,提出一种基于软件漏洞的克隆代码稳定性评估方法。实验仿真结果证明,该方法增加了对克隆特性的理解,可以为有效地降低代码克隆对软件造成的负面影响。(本文来源于《中国新通信》期刊2018年06期)

边奕心,赵松,杜军[8](2017)在《保持语义不变的C克隆代码预处理方法》一文中研究指出克隆代码检测工具的输出结果由于存在克隆检测不一致性缺陷的误检和检测出的克隆代码不能直接用于重构的问题,需要对检测工具的输出结果进行预处理。为了解决该问题,提出一种新的克隆代码预处理方法。首先,将自适应K-最近邻聚类方法与程序依赖图相结合,用于降低克隆不一致性相关缺陷检测的误检。然后,使用基于代价-收益分析的评估方法,在消除缺陷后的克隆代码中识别可重构的克隆代码。实验结果表明,该预处理方法,不仅降低了克隆不一致性相关缺陷检测工具产生的误检,提高了可重构克隆代码的数量,而且将克隆代码检测与克隆代码重构两个过程连接为一个有机的整体,有利于提高软件的质量,降低软件维护的成本。(本文来源于《电子科技大学学报》期刊2017年06期)

张凡龙[9](2017)在《基于软件演化的克隆代码分析与一致性维护方法研究》一文中研究指出在软件开发过程中,开发人员通过复制粘贴既有代码向系统中引入大量的克隆代码。克隆代码会随着时间和软件系统更新而进行演化,使软件系统变得越来越臃肿、难以维护,从而影响了软件的质量、可理解性和可维护性。这引发了对克隆代码的大量研究,例如克隆检测、克隆分析和克隆维护等。克隆检测帮助开发人员收集系统中的克隆代码,克隆分析帮助开发人员理解系统中存在的克隆代码,克隆维护帮助开发人员解决克隆代码已经引发或者可能引发的问题。克隆代码研究对帮助提高软件系统的质量、增强软件系统的可理解性和可维护性,具有重要理论意义和实际应用价值。在克隆代码随着软件系统的演化过程中,克隆代码可能会被开发人员修改而发生变化,进一步地加剧了克隆代码的问题。演化中克隆代码的变化使得克隆代码难以理解,降低了软件的可理解性。由于克隆代码彼此之间的相似性,一个克隆代码的变化可能会导致其它克隆代码的变化,称为克隆代码的一致性变化。该一致性变化会导致系统额外的维护代价,而遗忘这种变化则会导致克隆代码一致性违背缺陷,降低了软件质量和可维护性。鉴于此,本文基于软件演化研究克隆代码分析与一致性维护方法,通过分析提取克隆代码的演化特征,帮助软件开发人员理解克隆代码及其演化过程,验证了克隆代码一致性维护需求预测的必要性,并通过预测克隆代码的一致性维护需求帮助解决克隆代码的一致性维护问题,最后结合软件开发过程实现对克隆代码的同步开发与维护,可以提高软件质量、降低软件维护代价。针对演化中的克隆代码难于理解和分析的问题,研究并提出了基于聚类的克隆代码演化特征分析方法,验证了克隆代码一致性需求预测的必要性。首先,使用克隆检测工具检测系统中的克隆代码,并构建克隆家系描述克隆代码的演化过程。然后,从克隆片段、克隆组和克隆家系叁个不同维度提取相应的属性特征描述克隆代码及其演化过程。最后,聚类系统中的克隆代码并挖掘克隆代码演化特征。实验结果发现大部分的克隆代码在演化过程中是稳定的,但也存在相当数量发生变化的克隆代码,在发生变化的克隆代码中有超过一半的发生了一致性变化,为克隆代码一致性维护需求预测研究奠定了基础。针对新创建的克隆代码在其演化中的一致性变化会导致额外的维护代价问题,研究并提出了克隆代码创建一致性维护需求预测方法,帮助开发人员从规避克隆代码产生的角度降低克隆代码的维护代价。将软件系统中最早出现的克隆代码称为克隆创建实例,并将其在未来演化过程中是否发生一致性变化称为克隆代码创建时一致性维护需求。首先,通过检测软件系统的克隆代码并构建其克隆家系,收集系统中新创建的克隆代码。然后,提取代码属性和上下文表示新创建的克隆代码。最后,使用机器学习方法训练预测模型,并预测克隆代码创建时的一致性维护需求。实验结果表明本文所提出的方法可以高效地预测克隆代码的一致性维护需求,可以帮助软件开发人员降低克隆代码的额外维护代价。针对演化中克隆代码的一致性变化可能会导致克隆一致性违背缺陷的问题,研究并提出了克隆代码变化一致性维护需求预测方法,帮助开发人员实现克隆代码的同步开发与维护。将软件系统中发生变化的克隆代码称为克隆变化实例,并将该变化是否会引发克隆代码的一致性维护称为克隆代码变化时的一致性维护需求。首先,通过检测系统的克隆代码并构建系统克隆家系收集系统中的克隆变化实例。然后,从克隆组的角度提取叁组不同的属性特征用于表示克隆变化实例,即代码属性、上下文属性和演化属性。最后,使用机器学习模型训练预测模型,并预测克隆代码变化时的一致性维护需求。实验结果表明本文所提出的方法可以有效地预测克隆代码的一致性维护需求,可以帮助软件开发人员避免克隆代码一致性违背缺陷。针对在软件开发初期软件系统中因数据不足而无法预测克隆代码一致性维护需求的问题,研究并提出了跨项目克隆代码一致性维护需求预测方法。将克隆代码创建、变化实例统称为克隆实例,并将相应的一致性维护需求统一为克隆代码一致性维护需求。首先,对软件系统通过构建其克隆家系收集克隆实例,并使用不同的属性表示克隆实例。然后,将不同的软件系统划分为训练系统和测试系统,使用训练系统的数据训练机器学习模型,在测试系统上验证跨项目克隆一致性维护需求的预测效果。实验结果表明跨项目一致性维护需求预测模型可以在软件开发初期预测其它项目的克隆代码的一致性维护需求。最后,结合软件开发过程设计并实现了一个eclipse插件预测克隆代码一致性维护需求,可以边开发、边预测克隆代码的一致性维护需求,有助于降低软件的维护代价。综上所述,本文提出的基于软件演化的克隆代码分析与一致性维护方法,为在软件开发过程中解决分析和理解克隆代码、维护克隆代码的一致性、避免克隆代码相关缺陷、降低克隆代码维护代价、提高软件质量和可维护性等问题提供了一种新思路和新方法。(本文来源于《哈尔滨工业大学》期刊2017-10-01)

葛广帅,闫盛,刘东升,张丽萍[10](2018)在《基于演化模式克隆代码Bugs倾向性分析》一文中研究指出针对当前克隆代码管理不科学,没有侧重点,提出基于演化模式克隆代码Bugs倾向性分析方法。首先使用自主研发工具CloneCodeTracker跟踪克隆演化,然后结合克隆代码Bugs修复数据分视角讨论不同演化模式下克隆代码Bugs倾向性。经过对12款软件近2万个版本实验,结果表明:克隆群视角下复杂演化模式Bugs倾向性最高,合并演化模式Bugs倾向性较高;克隆片段视角下去除演化模式Bug倾向性明显高于其他演化模式;克隆代码内容视角下一致变化演化模式与不一致变化模式Bugs倾向性差别不明显。这些结论可以为克隆重构、克隆管理提供建议,例如,选择复杂演化模式,合并演化模式,去除演化模式的克隆代码优先重构。(本文来源于《计算机工程与应用》期刊2018年13期)

克隆代码论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

在软件项目开发中复制代码片断是一个常见的现象,然后通过粘贴或修改之后再利用,这种重复使用的代码叫做克隆代码(clone code)。长期研究发现克隆代码可能会影响软件系统的质量,特别是对软件的维护和阅读理解,所以经常需要对其进行寻找定位。在寻找克隆代码的研究过程中,许多克隆检测技术和检测工具相继被提出,而如何能够更好地利用这些检测技术和工具将是非常重要的。通过对克隆代码相关领域的大量研究,文中阐述了克隆代码的定义、克隆相关术语及克隆类型;描述了克隆代码检测的一般过程;介绍了不同克隆代码检测方法及相关技术,以及对应各种技术开发的检测工具,并对各种方法进行了总结分析;分析了克隆检测技术在各领域的具体应用,并对其发展方向进行了展望。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

克隆代码论文参考文献

[1].彭双和,刘佩瑶,赵佳利.基于特征矩阵的Python克隆代码漏洞检测方法[J].武汉大学学报(理学版).2019

[2].侯敏,张丽萍.克隆代码检测技术研究[J].计算机技术与发展.2019

[3].陈星昊.基于LLVM克隆代码检测关键技术研究[D].南京邮电大学.2018

[4].赵凤荣,姚永婷,张丽萍,赵俊奇.基于抽象语法树和最优映射算法的克隆代码映射研究[J].内蒙古大学学报(自然科学版).2018

[5].辛艳艳,吴海涛.基于抽象语法树的C克隆代码重构应用与研究[J].上海师范大学学报(自然科学版).2018

[6].姚永婷.软件克隆代码可重构性分析研究[D].内蒙古师范大学.2018

[7].陈志皑.基于软件漏洞的克隆代码稳定性评估方法[J].中国新通信.2018

[8].边奕心,赵松,杜军.保持语义不变的C克隆代码预处理方法[J].电子科技大学学报.2017

[9].张凡龙.基于软件演化的克隆代码分析与一致性维护方法研究[D].哈尔滨工业大学.2017

[10].葛广帅,闫盛,刘东升,张丽萍.基于演化模式克隆代码Bugs倾向性分析[J].计算机工程与应用.2018

标签:;  ;  ;  ;  

克隆代码论文-彭双和,刘佩瑶,赵佳利
下载Doc文档

猜你喜欢