基于K 最近邻聚类的功能等价的重复代码的检测方法研究-计算机科学与技术专业论文.docxVIP

基于K 最近邻聚类的功能等价的重复代码的检测方法研究-计算机科学与技术专业论文.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于K 最近邻聚类的功能等价的重复代码的检测方法研究-计算机科学与技术专业论文

Classified Index: TP311.5 U.D.C.: 681 Dissertation for the Master Degree in Engineering RESEARCH ON DETECTION OF FUNCTIONALLY EQUIVALENT CODE FRAGMENTS VIA K NEAREST NEIGHBOR ALGORITHM Candidate: Kong Dandan Supervisor: Prof. Su Xiaohong Academic Degree Applied for: Master of Engineering Speciality: Computer Science and Technology Affiliation: School of Computer Science and Technology Date of Defence: June, 2012 Degree-Conferring-Institution: Harbin Institute of Technology 摘 要 软件的高质量、高可靠性是系统开发和维护工作的一个不可或缺的重要方面, 重复代码(也称为克隆代码)检测则是保证软件的高质量和高可靠性的一项重要 任务。在软件系统中,重复代码的存在使代码量增大,软件系统架构变得比较臃 肿,导致软件系统的维护存在一定的困难。而功能等价的重复代码作为重复代码 的一种,因为涉及到复杂的程序语义分析,目前还缺少有效的检测方法。 针对目前方法存在的不足,本文提出了基于 K-最近邻聚类算法的功能等价的 重复代码的检测方法。本文方法首先对源程序进行词法分析和语法分析分别建立 抽象语法树 AST 和控制依赖图 CDG,并在此基础上进行特定的数据流分析得到函 数语句中变量的定值-使用信息集合,然后利用 K-最近邻聚类方法获取得到功能独 立的易于提取的代码片段,并在识别得到代码片段的输入变量和输出变量的基础 上,对代码片段进行过程提取,将不能编译的代码片段转换为能够编译执行的函 数,接下来为函数的输入变量实现自动随机赋值,最后对函数执行动态测试并根 据输出变量的结果对函数进行分类,由此将代码片段划分到不同的集合中,得到 功能等价的代码片段集合。 本文使用学生在 C 语言课程作业中提交的程序和 Simens 开源代码对基于 K- 最近邻聚类的功能等价的重复代码的检测模型进行了测试,并且与参考文献中的 利用滑动窗口方法获取候选代码片段的方法进行了对比,证明本文中的方法能够 以较低的时间复杂度获取功能内聚的代码片段,然后从获取的代码片段中进一步 检测得到功能等价的重复代码。 关键字:重复代码;功能等价;K-最近邻聚类算法;自动随机赋值;动态测试 Abstract It is an indispensable important aspect to insure the high quality and high reliability of software in system development and maintenance work. It is an important task to detect code clone to insure the high quality and high reliability of software. The presence of code clone increases the amount of code in software system, and makes the software system architecture more bloated and there existing some difficulties to maintain. Because of functionally equivalent duplicated code involves complicated procedure semantic analysis, this kind of code clone lacks of effective detection method. For the shortcomings of the current methods, this paper proposes a functionally equivalent duplicated code detection method based on K-nearest neighbor clustering algorithm.Lexical analysis and syntax analysis are done to th

您可能关注的文档

文档评论(0)

131****9843 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档