[发明专利]一种基于复杂网络的软件缺陷分布影响因素分析方法有效
申请号: | 201810255695.6 | 申请日: | 2018-03-27 |
公开(公告)号: | CN108345544B | 公开(公告)日: | 2020-07-03 |
发明(设计)人: | 艾骏;王菲;苏文翥;杨益文;郭皓然;王飞 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 复杂 网络 软件 缺陷 分布 影响 因素 分析 方法 | ||
1.一种基于复杂网络的软件缺陷分布影响因素分析方法,对待分析软件的每个版本建立软件函数调用网络,其特征在于,基于软件函数调用网络进行下面步骤:
步骤1:根据软件的修改模块,分析软件修改度量参数与缺陷分布的相关性;
为软件中的函数设置软件修改度量参数,并添加到网络节点的属性中,通过对比前后两个版本的软件函数调用网络,设置各节点的软件修改度量参数的状态值;然后采用逻辑回归模型对软件修改度量参数与缺陷分布之间的相关性进行分析,获得与缺陷分布相关的软件修改度量参数;
步骤2:基于软件函数调用网络,分析软件网络结构度量参数与缺陷分布的相关性;
基于软件函数调用网络,计算节点的整网结构度量参数;构建每个节点的自我网络,获得衡量每个节点的局部结构特性的自我网络结构度量参数;提取函数节点的缺陷信息,采用逻辑回归模型分析每个网络结构度量参数与软件缺陷分布的相关性,获得与缺陷分布相关的结构度量参数;
步骤3:基于机器学习算法,获得影响软件缺陷分布的最优特征子集;
将步骤1和2获得的与缺陷分布相关的修改度量参数和结构度量参数结合作为初始特征集,采用结合聚类和排序的特征选择方法,获取影响软件缺陷分布的最优特征子集;
所述的结合聚类和排序的特征选择方法通过特征聚类,将初始特征集划分为高内聚低耦合的若干特征簇,然后对特征簇中的特征进行排序获得有序的特征集合,最后基于四种机器学习算法,对有序的特征集合进行子集搜索获得最优子集。
2.根据权利要求1所述的方法,其特征在于,步骤1中所述的软件修改度量参数包括:
(1)新函数的定义AD,将每个版本的软件函数调用网络与前一个版本的网络进行对比,如果某节点只存在于当前版本而不存在于其前一版本,则代表该节点所对应的函数是当前版本新定义的函数,设置AD的状态值为1,否则标记为0;
(2)函数内容的修改MC,提取当前版本的软件函数调用网络某节点所代表函数内容对应的MD5值,通过与前一版本该节点的MD5值进行对比,如果MD5值不同,则该节点所对应的函数内容在当前版本被修改,此时标记当前版本的软件函数调用网络中该节点的MC的状态值为1,否则为0;
(3)调用函数的函数集合变更Deg-In,将每个版本的软件函数调用网络与前一版本的网络进行对比,如果指向某个节点的边的集合发生了变化,则表示该节点所对应的函数被新的函数调用或者不再被某些函数调用,此时标记当前版本的软件函数调用网络中该节点的Deg-In的状态值为1,否则为0;
(4)函数调用的函数集合变更Deg-Out,将每个版本的软件函数调用网络与前一版本的网络进行对比,若当前版本中某个节点指向其它节点的边的集合不同于其前一个版本的网络,则标志着该节点所代表的函数调用了新的函数或者不再调用某些函数,此时标记当前版本中该节点的Deg-Out的状态值为1,否则为0;
(5)函数的调用关系变更Deg-Ch,对于每个版本的软件函数调用网络,如果某节点的属性Deg-In或者Deg-Out被标记为1,则表示该节点所对应的函数的调用关系发生了变化,此时标记当前版本的软件函数调用网络中该节点的Deg-Ch的状态值为1,否则为0;
(6)函数寿命Time,代表某节点所对应的函数从其定义的版本到其被删除的版本之间所经历的版本总数;
(7)函数历史修改次数DiffCount,表示某节点所对应的函数在历史中各种代码修改次数的累积加和;
(8)历史缺陷状态HisBug,表示某节点所对应的函数在历史版本中是否出现过缺陷。
3.根据权利要求1或2所述的方法,其特征在于,步骤1中所述的逻辑回归模型如下:
其中,xi(i=1,2,..,n)为自变量,为软件的修改度量参数,θj(j=0,1,2,..,n)是通过对模型进行似然最大化得到的回归系数,n为修改度量参数个数;Y取值1或-1,分别代表存在缺陷或没有缺陷;Pr(Y=1|x1,x2,…,xn)代表函数存在缺陷的概率,当概率大于某一阈值时,认为该函数存在缺陷。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810255695.6/1.html,转载请声明来源钻瓜专利网。