代码坏味检测方法研究及重构分析

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:psetpsetc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
代码坏味是指代码中存在的一种不良现象。代码坏味会降低程序的设计质量,使得程序难于理解、修改和重用。因此需要对代码坏味进行检测。代码坏味检测的结果有助于程序设计质量的评价,同时也是对代码坏味进行修改的必要基础。在检测到代码坏味后,对其进行重构,在保证程序可观察行为不变的前提下,去除代码坏味,提高程序的可理解性和可扩展性,进而提高程序的整体设计质量。本文针对类间过度耦合坏味、类设计内聚性相关坏味、过大的类坏味,提取坏味的特征,将坏味特征转化为度量值,进而根据度量值的计算结果判断程序中是否存在坏味,完成坏味的检测研究。针对检测出的坏味结果进行重构分析,并且最终实现对重构收益进行评估。经过坏味检测和重构分析的研究工作,分析坏味情况并对坏味进行消除,最终达到提高程序设计质量的目的。对于现有程序中类间过度耦合、继承关系混乱的不良现象,将其命名为类间过度耦合(Classes Over-Couple,简称COC)。这种类间过度耦合代码坏味能够准确表达代码中存在的类间过度耦合、继承关系混乱的坏味现象,基于实体依赖关系计算的坏味检测工具COC Detector,能够完成COC坏味的检测工作。通过面向对象设计质量评估模型(Quality Model of Object Oriented Design,简称QMOOD)进行计算和分析,基于实体依赖关系计算的坏味检测方法和重构分析,能够提高程序的可理解性和可扩展性,有效改善程序的质量。对类设计中由于类内内聚性低导致的代码坏味进行分析和研究,提出了基于距离度量和聚类分析的代码坏味检测方法,该方法能够对依恋情结和发散式变化等坏味进行检测,并通过重构分析验证其检测结果。针对依恋情节等类内内聚性低、类间耦合性高引发的坏味,基于原有检测方法没有考虑多次调用关系导致检测准确率低的现象,采用基于权重的距离度量方法进行坏味检测的研究。提出基于权重距离度量的坏味检测方法,对检测出的坏味进行合理有效的重构分析。K近邻聚类方法的划分结果,既可以判断是否存在坏味,也能做为重构的依据。基于距离度量和K近邻聚类分析的坏味检测方法,能够准确检测到其他检测工具检测不到的发散式变化代码坏味。通过版本比对技术,分析实际版本的重构结果,来验证本文提出的坏味检测结果是否正确。对过大的类代码坏味进行检测和重构的分析和研究。首先对开源的面向对象程序中类的规模分布情况进行统计分析,通过实验研究发现类长度的分布规律。然后,在该规律基础上建立了一个类长度分布模型,来完成过大的类等坏味的检测并进行重构分析。在类长度分布模型中,偏离分布规律曲线的分组,被认为含有潜在的代码坏味;然后通过计算并比较分组内类的内聚性度量,能够确定存在过大的类代码坏味;使用凝聚聚类方法,得到坏味检测结果的重构操作。实验结果表明,通过对开源程序使用类长度分布模型进行过大的类坏味检测,本文方法的准确率高于现有使用固定阈值的坏味检测工具PMD和Checkstyle。类长度分析模型对所检测出的坏味进行重构,经过版本比对技术进行重构分析,验证坏味检测结果。针对重构效果无法衡量的问题,研究了重构行为对收益和成本两方面的影响,提出了基于重构获益的重构评估方法。重构评估准则是指选择重构获益更大的重构操作进行执行。基于重构获益的重构评估方法,从重构改善程序质量和重构可能带来未知风险两方面来对重构操作进行分析,对重构操作执行的效果进行量化度量,避免了重构对程序质量带来的负面影响。实验结果表明,通过版本比对技术,当程序中出现了代码坏味并确定了重构操作后,重构获益超过阈值的重构操作确实得到了执行。将重构收益评估方法与现有依赖关系方法、Precondition方法以及行为保持规则方法相比较,基于重构获益的重构评估方法考虑更全面,评估更准确。综上,本文命名了类间过度耦合代码坏味,提出了权重距离度量、类长度分布规律、重构获益分析等方法,采用实体依赖关系计算、聚类分析算法、曲线拟合算法等技术,提出了代码坏味检测方法并进行了重构分析,重构分析结果表明该方法能够检测出代码坏味并进行重构,有效提高了代码坏味检测、坏味重构以及重构效果评估的准确性。
其他文献
本文对WM的招聘现状和问题进行了剖析,尝试着对其招聘体系提出改进建议,在对招聘理论进行了深入的探讨基础上,分析了WM招聘管理中存在的问题,继而对建立和完善公司招聘体进行分析
目的对甲状腺癌根治术中发生喉返神经损伤的因素进行调查并分析。方法回顾性分析2010年7月至2015年7月725例甲状腺癌根治术患者临床资料,考察术中发生喉返神经损伤的危险因素
土耳其伊斯坦布尔的托普卡比宫珍藏着一张奇特的古代地图。这张古地图是18世纪初发现的,看起来是一份复制品。地图上,只有地中海地区画得十分精确,其余地区,如美洲、非洲都严重变
磨损是引起设备失效和故障的主要因素之一。自行火炮发动机功率大、工作环境恶劣,故障率高,是部队技术保障的重点与难点。铁谱分析技术是自行火炮发动机磨损故障诊断的一种有
<正> 1986年12月14日清晨,美国加利福尼亚州爱德华空军基地。一只被称为“旅行者号”的形状奇特的纸质“怪鸟”停在4号滑行道上,这是宇航局专供航天飞机起落的滑行道。“旅行
用绿饰、鲜花装点房间居室,是时下家居的一大特色。花卉的自然摆放冲淡了家具和家电的冰冷死板感觉,使居室充满生机。一瓶鲜花、一个盆景、一簇野花都会给他人带来一种大自然的
上世纪,在印度搭尔沙漠一座年久失修的大古堡里,栖息在这里的红蝙蝠制造了一桩桩神秘的杀人案,不少在古堡里过夜的人,被它们用钢针一样尖利的嘴刺进脑壳,吸食脑浆而死去,可在
本文是美国"以学生为中心"本科教学改革(SC改革)系列研究之四。本文将以学习环境和教育技术为题,简要介绍这两个领域的发展及其对SC改革的贡献。本文有三节,第一节主要介绍了
目的基于医学影像信息管理系统(PACS)建设乳腺超声工作站,为乳腺临床及科研提供数据资料。方法自2006年9月至2014年12月,共采集27432例乳腺超声检查资料,其中女性27076例,男性356例
自由变形是一种几何模型编辑和柔性体动画生成的方法。由于其简单、直观、且与模型的表示无关,所以被广泛应用于计算机动画、计算机辅助设计与工程、计算机视觉、科学计算可