函数抽取重构的检测与分析.pdf

函数抽取重构的检测与分析.pdf

ID:50116447

大小:1.62 MB

页数:53页

时间:2020-03-05

函数抽取重构的检测与分析.pdf_第1页
函数抽取重构的检测与分析.pdf_第2页
函数抽取重构的检测与分析.pdf_第3页
函数抽取重构的检测与分析.pdf_第4页
函数抽取重构的检测与分析.pdf_第5页
资源描述:

《函数抽取重构的检测与分析.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、函数抽取重构的检测与分析刘阳2015年1月中图分类号:TP311.11UDC分类号:004.8函数抽取重构的检测与分析作者姓名刘阳学院名称计算机学院指导教师刘辉(副教授)答辩委员会主席樊孝忠(教授)申请学位级别工学硕士学科专业软件工程学位授予单位北京理工大学论文答辩日期2015年1月IdentificationandAnalysisofExtractMethodRefactoringsCandidateName:YangLiuSchoolorDepartment:SchoolofComputerSc

2、ienceFacultyMentor:Prof.HuiLiuChair,ThesisCommittee:Prof.XiaozhongFanDegreeApplied:MasterofEngineeringMajor:SoftwareEngineeringDegreeby:BeijingInstituteofTechnologyTheDateofDefence:Jan,2015研究成果声明本人郑重声明:所提交的学位论文是我本人在指导教师的指导下进行的研究工作获得的研究成果。尽我所知,文中除特别标注和致

3、谢的地方外,学位论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京理工大学或其它教育机构的学位或证书所使用过的材料。与我一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。特此申明。签名:日期:摘要软件重构是指在不改变软件外部行为的前提下通过改善软件的内部结构来提高软件的可读性,可维护性等。软件重构的自动检测是指在重构执行之后通过分析比较代码的演化历史检测发现曾经执行过的重构操作。检测软件重构可以帮助软件维护人员更深入地理解软件的发展历史,从而更有效的

4、去维护软件。函数抽取是一种非常流行的软件重构。该重构可以用于分解过长函数、消除重复代码等不同的场景。但是目前还没有关于函数抽取重构在不同场景下的使用频率的实证性研究。考虑到不同的使用场景需要不同的重构定位以及重构推荐技术,对这一问题进行研究可以帮助函数抽取自动化工具更好的确定重构机会,更好地推荐重构的方案。为此,本文分析了7个开源项目上的函数抽取重构操作,通过自动分类技术量化分析函数抽取重构的各个主要驱动力。首先,为了获得开源项目上的函数抽取操作,本文提出了一种自动检测函数抽取重构的算法。该算法通过

5、比较软件的相邻版本检测函数抽取重构。在7个大型开源项目上进行了实验,共检测到函数抽取重构1619个,平均查准率可以达到82%。其次,对检测到的实验数据进行了统计分析。实验结果表明只有27.7%的函数抽取重构是为了消除长函数,有16.2%的函数抽取重构是为了去掉重复代码,高达56%的函数抽取重构是为了实现新需求时的代码复用。这些发现表明仅仅通过检测过长函数或者重复代码来确定函数抽取重构区域是不够的,函数抽取重构的机会很大程度上依赖于新的需求。需求驱动的函数抽取重构自动化可能是一个潜在的研究热点。关键字

6、:软件重构;函数抽取;软件重构检测;函数抽取自动化工具北京理工大学工学硕士学位论文AbstractSoftwarerefactoringisaneffectivemeanstoimprovesoftwarereadabilityandmaintainabilitybyrestructuringitsinternalstructureswithoutchangingtheexternalbehavior.Automaticidentificationofsoftwarerefactoringrefer

7、stofindingrefactoringoperationsthathavebeenexecutedbyanalyzingandcomparingevolutionaryhistoryofcodeafterrefactoring.Identificationofsoftwarerefactoringcanhelpsoftwaremaintenancepersonnelhaveabetterunderstandingofthesoftwaredevelopmenthistory,andthusmai

8、ntainthesoftwaremoreeffectively.Extractmethodisoneofthemostpopularrefactorings.Itcanbeusedindifferentscenariossuchasbreakdownlongmethod,eliminateduplicatecode.However,thereisnoempiricalresearchonhowoftenextractmethodisusedfordifferentre

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

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

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