[发明专利]基于Halstead复杂度度量的软件演化评估方法在审

专利信息
申请号: 201710191917.8 申请日: 2017-03-28
公开(公告)号: CN107066384A 公开(公告)日: 2017-08-18
发明(设计)人: 廖力;李必信;何磊 申请(专利权)人: 东南大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 南京苏高专利商标事务所(普通合伙)32204 代理人: 柏尚春
地址: 211189 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 halstead 复杂度 度量 软件 演化 评估 方法
【权利要求书】:

1.一种基于代码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)得到的两个版本的代码差异,进行代码差异定位,并根据代码差异确定导致度量结果发生变化的原因,形成软件演化评估。

2.根据权利要求1所述的基于代码Halstead复杂度度量的软件演化评估方法,其特征在于,所述步骤1)构造的抽象语法树中包含源码中操作符和操作数的解析信息,所述操作符和操作数的解析信息符合以下规则:

规则1:程序源码转化为抽象语法树后,源码中的每种结构都以抽象语法树节点的形式展现,所述结构包括操作符和操作数;

规则2:操作符为程序中完成一个动作的代码元素,所述操作符包括:

开发语言中的关键字;

软件程序中的声明;其中,面向对象开发语言中包括包的声明、类的声明、方法声明;面向过程开发语言中包括函数声明和过程声明;

总是一起出现的结构化操作符,以及结构化操作符中出现的其它符号;

方法调用或函数调用;

运算符;

规则3:操作数是指参与到操作符动作中的代码元素,所述操作数包括:

标识符,即所有的用户定义标识符;

常量,即程序中出现的各种常量;

规则4:对于以上规则中没有覆盖的符号,分号“;”是一个标点符号,表示一行代码的结束;而“//”和‘/**/’是注释相关的符号,它们既不属于操作符也不属于操作数,而且不会对代码的操作造成影响,因此在检测中不予考虑;

规则5:将以上规则应用于Java语言源码生成的抽象语法树,能够得到如下表所示的针对Java抽象语法树中操作符节点和操作数节点的划分:

表1.操作符和操作数相关的ASTNode表

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710191917.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top