基于软件维护历史的代码异味评估与检测

来源 :南京大学 | 被引量 : 4次 | 上传用户:a3321697
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码异味是软件中由于设计缺陷或不良编码习惯而导致深层次质量问题的代码症状。与一般代码缺陷不同,代码异味不一定直接导致软件运行错误,但引起可读性、可理解性、效率等方面的质量问题,造成软件维护难度随之增加。因此,亟需对代码异味进行评估与检测,以改善软件质量、节约维护成本。目前,代码异味的研究面临着若干挑战。一方面,程序员对代码异味的识别偏于主观,缺乏有效的检测工具。另一方面,除程序结构方面的代码异味之外,现有研究工作缺乏对更多类别代码异味的研究。对此,本文通过挖掘开源软件的维护历史,评估和检测影响软件可维护性的代码异味。首先,本文实现了一种基于度量的代码异味检测技术,并评估了代码异味对软件可维护性的影响程度。其次,鉴于Python等动态类型语言的流行以及用户对软件性能的要求日益提高,本文提出了动态类型使用和性能表现两方面的代码异味,并分别对代码异味的检测技术和危害程度展开研究。本文主要贡献总结如下:(1)针对代码异味检测技术的有效性问题,结合三种阈值策略构建了基于度量的代码异味检测工具(Pysmell),根据软件维护历史评估了三种阈值策略的检测效果并衡量了代码异味对软件可维护性的影响程度。结果表明,该工具能有效检测10种程序结构代码异味,且代码异味与代码变更和缺陷显著相关。(2)针对动态类型使用的代码异味问题,提出了6种动态类型滥用的代码异味,实现了对动态类型代码异味的检测方法,结合定量和定性分析调查了动态类型代码异味的特征并评估了在软件维护历史中这些代码异味与缺陷的关联性。结果表明,程序员一般在软件的前期开发阶段就引入了动态类型代码异味,且绝大部分的动态类型代码异味可能导致软件缺陷。(3)针对影响软件性能表现的代码异味问题,实现了性能问题代码异味的定位方法(Speedoo),其目的是对软件中所有函数的优化优先级进行排序。本文基于开源软件的性能优化历史对该方法的有效性和效率进行评估。结果表明,Speedoo定位性能问题代码异味的有效性比基于剖析的定位工具YourKit高出2到3倍,且能适用于大规模的软件系统。
其他文献
<正>在中国制造普遍困难的环境下,中国体育用品业居然出现首次逆势增长,这有怎样的背景?又会给各行业怎样的共性启示?中国经济新常态下,体育用品业拐点出现、逆势成长。多年
<正>平时上课有的老师会说一句话,那就是:"平时做再多的题目也碰不到高考题",将高考试题神秘化.其实不然,高考试题就源于课本,源于生活,藏身于我们平时所做的题目中.笔者基于
苯胺黑系列是一个很古老的颜料品种。苯胺黑1#是目前所知道的黑色颜料中最黑,最透明的产品。它具有优越的耐溶剂、耐酸、耐碱、耐光、耐热、不溶于水且不与DOP(邻苯二甲酸二
冷战时期,台美关系因"五·二四"事件遭遇挑战。"五·二四"事件爆发后,台美关系、接班人蒋经国、台湾国际"托管论"等因素均涉入其中,时刻影响着蒋介石的判断与决策。其中,台美
目的 研究胰腺囊实性乳头状上皮性肿瘤CT、MRI表现 ,提高对该病的认识诊断水平。方法  3例经手术病理证实的胰腺囊实性乳头状上皮性肿瘤均经CT检查 ,其中 1例还进行MR平扫
基于2015年"中国城乡困难家庭社会政策支持系统建设项目"的调查数据,本文对接受医疗救助家庭的基本特征及其对医疗救助的满意度、重特大疾病医疗救助满意度及其影响因素进行
网球作为一项优雅、健康、时尚的球类项目,从很早被人们认为的贵族运动到现在的广泛流传,已然成为推动体育运动发展的新趋势。网球在高校的开展势头也是越来越好,受到大学生
在现代社会中,小户型居所已经成为年轻人的一种主流的居住形式。虽然居住室内空间面积小,但是人们的各项正常生活都是必不可少的,进而针对每项生活的日常用品也是不可或缺的
选取紫甘薯和大豆为主要原料,根据饮料的制作工艺,添加罗汉果和白砂糖,再按一定比例混合,并添加适量稳定剂,通过感官评分的方法,调配出一款大众喜爱的紫甘薯大豆高蛋白饮料。