- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于支持向量机克隆代码有害性评价方法
基于支持向量机克隆代码有害性评价方法
摘 要:克隆代码是软件中彼此相似的代码片段。传统观点认为克隆代码是有害的,会降低软件质量,但最近研究发现克隆代码不一定是有害的。如何评估克隆代码的有害性是一个值得研究的问题。本文提出了一种基于支持向量机的克隆代码有害性评价方法,可以以较高的准确性和查准率评价其有害性。为验证方法有效性,本文在6个系统上进行实验,结果表明本文方法可以有效地评价克隆代码的有害性,并且所提出的静态度量和演化度量对评价克隆代码有效性具有积极意义。
关键词:克隆代码;克隆有害性评价;克隆度量;支持向量机;克隆演化
中图分类号:TP311.5 文献标识号:A文章编号:2095-2163(2015)06-
Abstract: Code clone (also known as duplicated code) has always been a popular research field in software engineering. Traditional view is that code clone is harmful, because clone can decrease the quality of software. However, considering the clone evolution, some studies find that not all the clones are harmful. So how to evaluate the clone harmfulness is a problem. This paper proposes a method which can evaluate the clone harmfulness based on support vectors machine, and makes several experiments on 6 open-source software system which were written in 3 kinds of programming languages. The results show that the proposed method has an applicability and higher accuracy. It is a meaningful attempt to evaluate the clone harmfulness.
Keywords: Code Clone; Harmfulness Evaluation; Clone Metrics; Support Vector Machine; Clone Evolution
0 引 言
克隆代码是软件系统中彼此相同或相似的代码片段。大多数克隆代码情况是通过拷贝粘贴活动产生的[1],编程语言局限、使用相似API和函数调用也会产生克隆代码。在大型软件系统中克隆代码约占代码总量的7-23%[2]。传统观点认为克隆代码是一种代码坏味,意味着软件质量较差,可能会引入缺陷,需通过重构消除克隆代码[3-5]。有研究者使用克隆代码信息进行缺陷预测,如用历史变化信息预测缺陷[6],用克隆代码上下文信息来预测缺陷[7],用信息熵的概念来定义代码变化复杂度来预测缺陷[8]。然而,通过对克隆演化模式的研究发现不是所有的克隆代码都是有害的[9-12]。不足一半的克隆代码在演化过程中发生变化,而导致额外维护开销的一致变化克隆比例则更少[13],并且只有在少数情况下不一致变化而导致缺陷[14-15]。研究者将克隆代码明确区分为有害和无害,采用启发式方法映射多版本间克隆,提出并使用克隆气味的概念帮助减少代码中的潜在威胁[16-17]。有人使用贝叶斯网络来预测克隆代码的有害性[18],可以评价克隆代码的有害性,该方法具有一定启发意义。
如何综合考虑克隆代码本身属性及其演化过程建立克隆代码有害性评价模型是亟待解决的问题。为了解决该问题,本文结合软件度量、克隆代码演化分析和机器学习方法,提取了克隆代码静态度量和演化度量,使用支持向量机建立克隆代码有害性的评价模型,快速地识别出有害的克隆代码,帮助开发人员对克隆代码进行维护。
1 克隆代码有害性分析
本文使用克隆家系和演化模式描述其演化过程。克隆群是某一个版本内彼此相似的克隆片段集合,克隆家系是软件所有的克隆群在演化过程中衍生的直系克隆的集合。一个克隆代码属于一个克隆群,一个克隆群属于一个克隆家系。演化模式(Evolution Pattern,EP)是前一版本的克隆群与下一版本的新克隆群间的关系。无变化是新克隆群中相对于原克隆群没发生任何变化;增加是新克隆群中至少增加了
您可能关注的文档
最近下载
- 中南林业科技大学涉外学院《高等数学A》2025-2026学年期末考试试卷(A)卷.docx VIP
- 人工髋关节置换术术后护理.pptx VIP
- 中南林业科技大学《高等数学A》2025-2026学年期末考试试卷(A)卷.docx VIP
- 【浅析幼儿园安全教育现状及改进对策研究—以A幼儿园为例6000字】.docx VIP
- 撬装加油装置预评价报告.pdf VIP
- 电工基础项目教程第2版李爱习题答案解析.pdf
- 《口袋妖怪-火红&叶绿》完整图文攻略.doc VIP
- 高中语文:高中语文常用应用文写作及范例.doc VIP
- 高等数学电子教材.pdf VIP
- 跨文化交际复习资料选择判断题_-.docx VIP
原创力文档


文档评论(0)