软件克隆代码可重构性分析研究

软件克隆代码可重构性分析研究

ID:17952111

大小:1.29 MB

页数:59页

时间:2018-09-11

软件克隆代码可重构性分析研究_第1页
软件克隆代码可重构性分析研究_第2页
软件克隆代码可重构性分析研究_第3页
软件克隆代码可重构性分析研究_第4页
软件克隆代码可重构性分析研究_第5页
资源描述:

《软件克隆代码可重构性分析研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、内蒙古师范大学硕士学位论文内蒙古师范大学硕士学位论文中文摘要在软件开发过程中,开发人员会通过拷贝粘贴来降低软件开发的成本,导致软件中出现较多相同或者相似的代码,这些被重复使用的代码就称为克隆代码(CodeClone)。现有研究认为克隆代码对软件的可维护性和演化有着潜在的危害,但是目前通过重构来消除克隆代码的研究成果依然有限,因为克隆代码的重构是一个非常具有挑战性的问题,特别是克隆代码在初次引入后,经过多次修改,重构起来会更加的复杂。从研究目的来看,找到一种能够评估克隆代码是否可以在不改变程序行为的情况下进行重构的方法是本研究领

2、域的关键所在。具有嵌套结构的克隆代码相对于其它类型的克隆而言,更具有代表性,且对其进行重构能快速消除软件中的冗余代码。本文以具有嵌套结构的克隆代码为研究对象,开展克隆代码检测、克隆代码嵌套结构匹配、克隆代码映射以及克隆代码重构前提条件研究,具体工作如下:1.基于NiCad、CCFinder、Deckard和CloneDR四种检测工具获取克隆代码检测结果。首先,利用AST构建算法将源代码表示为抽象语法树;其次,利用递归函数返回最优子树匹配算法,筛选出具有相同嵌套结构的克隆代码;然后,利用最优映射算法对具有相同嵌套结构的嵌套结构子

3、树进行映射;最后,利用基于深度优先的树搜索算法,将子树映射组合起来,构成全局映射解决方案。2.在完成映射之后,需要通过参数化映射语句之间的差异来确定两个克隆代码片段是否可以安全的进行重构。本研究从方法提取、映射语句之间的差异和未映射语句3个角度设置了6个克隆重构前提条件对克隆代码的可重构性加以判断。如果违反任何一个前提条件,那么该克隆代码片段是不适合重构的,或者说重构有可能会导致源程序的行为发生改变。3.基于以上研究方法,本研究针对9款开源软件进行克隆代码重构识别,并与当前流行重构工具CeDAR进行比较,本方法识别出来的可重构

4、克隆数量比CeDAR多4倍,可重构率从20%提升至37%。除此之外,本文又从克隆代码的可重构比例、时间性能、最优映射算法性能三个方面对实验方法进行评估,最终结果表明使用本方法推荐出来的克隆代码内蒙古师范大学硕士学位论文可重构率为90%,且时间成本很小。证明了本研究可行有效。关键词:克隆代码,重构,最优映射算法,软件维护内蒙古师范大学硕士学位论文ABSTRACTDuringdevelopmentofsoftware,inordertoreducethecostofsoftwaredevelopment,developersalw

5、ayscopyandpastcode,whichresultinthatthereoccuressomealikeorsimilarcodeinthesoftware.Thereusablecodeiscalledclonecode.Theexistingresearchsuggeststhatclonecodeispotentiallyharmfultothemaintainabilityandevolutionofsoftware.However,theresearchresultsabouteliminatingclon

6、ecodethroughrefactoringarestilllimited,becausetherefactoringofclonecodeisaverychallengingissue.Inparticular,aftertheinitialintroductionofclonecode,therefactoringwillbemorecomplicatedaftermultiplemodifications.Judgingfromthepurposeofthestudy,findingawaytoevaluatewhet

7、herclonecodecanberefactoredwithoutchangingthebehavioroftheprogramisthekeytothisresearch.Theclonecodewithanestedstructureisarelativelyrepresentativecomparedwithothertypesofcloneandrefactoringthistypeofclonecodecanquicklyeliminatetheredundantcodeofthesoftware,thispape

8、rtakestheclonecodewithanestedstructureasanobjectofthestudy.Thestudyisimplementedinthefollowingfoursteps:clonecodedetection,clonecodenested

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。