基于软件维护历史的代码异味评估与检测
【学位授予单位】:南京大学
【学位级别】:博士
【学位授予年份】:2018
【分类号】:TP311.53
【图文】:
为了调查这个假设是否成立,我们在GitHub上收集了邋106个收藏数最多的逡逑开源Python项目语料库,包含了3.5MLOC代码和25,882个Python文件。我们从这逡逑些项目中提取出策略框架中的所有度量数据集,最终每个度量的分布如图3.1所逡逑不。度量值的分布均遵循幂律分布:绝大部分数据点的分布集中于一小部分值逡逑空间内。为此,本章采用的基于统计的阈值策略参考了邋Fontana等人提出的数据逡逑驱动方法[118]。方法分为两个步骤:逡逑第一步,按照非参数化过程丢弃对制定阈值无用的数据点集合。在106个逡逑Python项目的度量值分布中,度量值的分布呈现的普遍规律是:当度量值较小逡逑时,多数数据点落在该分布区域,即数据点的频率高,例如PAi?度量表示的函逡逑数参数个数通常是1-3;随着度量值变大,数据分布越来越稀疏,即数据点的频逡逑率变小,例如度量值在10以上的概率很小,这些异常度量值很可能暗示了逡逑代码异味。因此,那些频率很高的度量值区域上的数据点失去了研究意义,故逡逑而要丢弃那一部分度量值区域上的数据点。
逦2逡逑基于训练机的阈值策略)开发出了一个代码异味检测工具,名为Pysmell8,能够逡逑检测Python软件中的10种代码异味。它的体系框架如图3.2所示,主要包含了三逡逑个功能模块:逡逑AST分析器分析了软件系统的结构并从中将Python文件转化为抽象语法树逡逑(AST)。通过遍历抽象语法树,该模块抽取了Python文件中的所有实体(例如逡逑类和函数),并收集了相关的度量值。逡逑阈值选择器实现了三种阈值策略,计算出度量阈值。基于经验的阈值是根逡逑据问卷调查中程序员反馈的经验值设定。基于统计的阈值选取是利用AST分析逡逑器模块收集的度量值分布来提取度量的异常值作为阈值。基于训练机的阈值选逡逑取是基于一个足够大的代码异味实例库来迭代地训练阈值,使得最终阈值满足逡逑检测准确率要求。逡逑代码异味检测器使用了不同阈值策略计算出的阈值来检测目标系统中的每逡逑个实体是否满足各代码异味的检测策略。在该检测过程之后,该模块将检测结逡逑果报告给用户,同时也将检测结果输出给阈值选择器模块中的训练机以便于继逡逑续训练阈值。逡逑8https://github.com/chenzhifei731/Pysmell逡逑25逡逑
【相似文献】
相关期刊论文 前10条
1 Aron Sorensen;;建立船舶设备软件维护标准[J];中国远洋海运;2017年05期
2 朱罡;;军用软件维护方法探析[J];中小企业管理与科技(中旬刊);2016年10期
3 刘栋;刘中杰;尚玉;文昌辞;孟庆鑫;;对军用软件维护标准更新的探讨[J];航空标准化与质量;2015年02期
4 赵春城;;软件维护之重要性及方法[J];环球市场信息导报;2015年26期
5 牧童;张会娜;潘晓平;;医学信息系统软件维护问题及其对策[J];医学信息学杂志;2009年06期
6 许军刚;金融软件维护工作浅析[J];中国金融电脑;1994年09期
7 张社英;刘又诚;郭江;;软件维护技术(上)[J];计算机世界;1994年05期
8 NORMAN F.SCHNEIDEWIND;朝阳;;软件维护的现状[J];航空计算技术;1988年03期
9 王德泽;普通高校计算中心的配置及其实施[J];实验室研究与探索;1988年01期
10 赵保华;屈玉贵;;软件工程(八)——软件维护、小项目软件的开发方法[J];微型机与应用;1989年01期
相关会议论文 前9条
1 赵明航;;中广核信息系统维护探讨[A];2008电力行业信息化年会会议论文集[C];2008年
2 赵明航;高柯夫;;中广核信息系统维护探讨[A];2009电力行业信息化年会论文集[C];2009年
3 矫文成;张政保;霍晓磊;李晓辉;;指挥信息系统装备软件保障问题研究[A];第三届中国指挥控制大会论文集(上册)[C];2015年
4 赵宏;;网格理论与技术在工程计算中的应用[A];计算机技术在工程建设中的应用——第十二届全国工程建设计算机应用学术会议论文集[C];2004年
5 童丽娟;;软件维护方法综述[A];河南省冶金行业低碳冶金与节能减排学术研讨会论文集[C];2011年
6 顾秀君;;舰船中软件保障的研究[A];中国造船工程学会修船技术学术委员会船舶维修理论与应用论文集第七集(2004年度)[C];2004年
7 赵勃;孙铁鑫;王征;;高校计算机实验室综合信息管理系统设计与实现[A];第二届世纪之星创新教育论坛论文集[C];2015年
8 高红光;;高速公路ETC系统养护维修与收费运营管理相结合的探索与实践[A];中国公路学会养护与管理分会第七届学术年会论文集[C];2017年
9 杨晓飞;;微机实验室管理的探讨[A];第五届中国教育技术装备论坛获奖论文集(下)[C];2014年
相关重要报纸文章 前9条
1 刘培臣;如何做好软件维护工作[N];中国计算机报;2008年
2 福建省南平市医保中心 许椿榕;应用CMM改进软件维护过程[N];计算机世界;2005年
3 乐天 编译;软件维护你会选择第三方吗?[N];计算机世界;2010年
4 本报记者 李燕京;软件维护成消费者之痛[N];中国消费者报;2013年
5 莱芜职业技术学院 亓云;浅谈学校计算机房的软件维护技术与措施[N];莱芜日报;2006年
6 左权县城镇环境卫生管理站 乔霞;计算机软件信息软件维护和管理探讨[N];晋中日报;2015年
7 杨正军;格柏科技AccuMark 8.2版正式发布[N];中国服饰报;2006年
8 小 云;软硬兼施维护服务器[N];中国国门时报;2005年
9 ;Linux开发比Microsoft软件费用更高[N];计算机世界;2003年
相关博士学位论文 前8条
1 陈芝菲;基于软件维护历史的代码异味评估与检测[D];南京大学;2018年
2 王帆;软件维护中的成本估算和质量保证技术研究[D];浙江大学;2011年
3 鄢萌;软件仓库的主题挖掘及其在软件维护中的应用研究[D];重庆大学;2017年
4 王金水;交互式特征定位过程及支持技术研究[D];复旦大学;2013年
5 杨梦宁;软件维护中的关键预测问题研究[D];重庆大学;2016年
6 高原;面向软件重构的推荐方法研究[D];北京理工大学;2015年
7 徐小辉;构件化软件动态更新关键技术及形式化研究[D];上海交通大学;2011年
8 郁抒思;软件工程数据挖掘若干问题研究[D];复旦大学;2011年
相关硕士学位论文 前10条
1 周香云;精益思想在软件维护项目中的应用研究[D];东南大学;2015年
2 关士慧;软件维护管理平台的设计与开发[D];电子科技大学;2014年
3 陈瑜;面向嵌入式系统的在轨软件维护技术研究[D];浙江大学;2006年
4 范佳佳;兼顾软件维护开发以及提供技术支持的流程管理研究[D];上海交通大学;2013年
5 李玉鹏;维护离岸外包过程管理及应用研究[D];西北大学;2007年
6 曾映雪;基于C/S的远程软件维护系统的研究与实现[D];河海大学;2003年
7 刘玉羊;软件维护精益模型以及数据挖掘技术的应用[D];复旦大学;2008年
8 周思成;福田公司维护项目交接案例研究[D];大连理工大学;2013年
9 刘湘月;基于主题模型的程序理解技术的研究[D];扬州大学;2016年
10 孙赢盈;基于程序关联性分析的软件测试方法研究[D];西安理工大学;2008年
本文编号:2719083
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2719083.html