[发明专利]基于Halstead复杂度度量的软件演化评估方法在审
申请号: | 201710191917.8 | 申请日: | 2017-03-28 |
公开(公告)号: | CN107066384A | 公开(公告)日: | 2017-08-18 |
发明(设计)人: | 廖力;李必信;何磊 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 柏尚春 |
地址: | 211189 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Halstead复杂度度量的软件演化评估方法,先将待评估软件源码通过代码解析生成抽象语法树;然后,根据Java语言操作符和操作数识别规则对抽象语法树中的操作符节点和操作数节点进行识别和统计,并在此基础上进行代码Halstead复杂度度量;接着,从方法层、类层和系统层三个层面对软件代码的复杂程度进行评估;最后,将软件演化前后的Halstead复杂度进行对比分析,定位复杂度变化位置,通过代码变更检测分析复杂度发生变化的原因。该发明的评估方法不仅可以自动分析源码,从软件各个层面评估代码的Halstead复杂度,对复杂度过高的模块和方法提出预警,而且可以定位引起演化中复杂度变化的位置,并分析变化原因,为软件演化评估提供参考依据。 | ||
搜索关键词: | 基于 halstead 复杂度 度量 软件 演化 评估 方法 | ||
【主权项】:
一种基于代码Halstead复杂度度量的软件演化评估方法,其特征在于,该方法包括以下步骤:步骤1)针对待评估软件的当前版本V_current和历史版本V_last,根据源代码分别构造各个版本的抽象语法树;步骤2)根据所述步骤1)获取的抽象语法树,分别从系统层、类层和方法层三个层次对待测软件版本的代码进行Halstead复杂度度量,所述待测软件版本包括当前待测目标版本V_current和历史版本V_last;步骤3)从类层和方法层分别评估待测软件版本的Halstead复杂度度量结果,找出软件中Halstead复杂度超过阈值范围的类和方法;步骤4)对待评估软件的当前版本V_current和历史版本V_last得到的Halstead复杂度度量结果按层次进行分析比较,确定其中Halstead复杂度发生变化的类和方法;步骤5)对待评估软件的当前版本V_current和历史版本V_last的项目源码进行分析比较,找出两者的代码差异,输出到格式文件中;步骤6)针对待评估软件当前版本V_current和历史版本V_last,通过所述步骤4)得到的两个版本中Halstead复杂度发生变化的类和方法,以及所述步骤5)得到的两个版本的代码差异,进行代码差异定位,并根据代码差异确定导致度量结果发生变化的原因,形成软件演化评估。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710191917.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种应用程序流畅度检测方法及装置
- 下一篇:一种测试方法、装置及系统