[发明专利]一种面向软件缺陷个数预测的特征选择方法有效

专利信息
申请号: 201710374939.8 申请日: 2017-05-24
公开(公告)号: CN107239798B 公开(公告)日: 2020-06-09
发明(设计)人: 余啸;刘进;马子逸;崔晓晖;谷懿;井溢洋 申请(专利权)人: 武汉大学
主分类号: G06K9/62 分类号: G06K9/62;G06F11/36
代理公司: 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人: 鲁力
地址: 430072 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 软件 缺陷 个数 预测 特征 选择 方法
【权利要求书】:

1.一种面向软件缺陷个数预测的特征选择方法,其特征是,包括以下步骤:

步骤1,挖掘软件历史数据,从中抽取出有用的软件模块;软件模块粒度可根据实际应用场景,可设置为文件、包、类或函数;然后标记这些软件模块的缺陷数目;

步骤2,提取软件模块中与软件缺陷有关的特征,提取了20个度量属性:加权方法数,继承树深度,孩子数,对象类之间的耦合度,类的响应,内聚缺乏度,传入耦合,传出耦合,公开方法数,代码行数,数据访问度量,聚合度量,功能抽象度量,方法间的内聚度,继承耦合,方法间耦合,平均方法复杂度,最大McCabe环形复杂度,平均McCabe环形复杂度;这20个特征形成了原始的特征集;在经过了步骤1-2后,提取模块特征和标记软件模块的缺陷数目后形成了软件模块数据,其中,最后一位为该模块的缺陷个数:

步骤3,利用线性Pearson系数计算特征之间的关联性,两个特征之间的冗余度越大,它们的关联性就越强,关联性计算公式为:其中,xik,xjk分别表示第k个软件模块Xk上特征fi的值和特征fj的值,分别表示在所有软件模块数据上特征fi的均值和fj的均值;rij表示特征fi和特征fj之间的关联度,取值介于-1和1之间;其越接近1或-1,关联性越强,越接近于0,关联性越弱;

步骤4,利用谱聚类算法根据特征之间的关联性对这些特征进行聚类,形成K个簇,具体包括:

步骤4.1,构造特征关联性矩阵W,其中Wij表示特征fi与特征fj的关联性;两个特征的负相关性强,他们之间的冗余度也很高,由于特征关联性矩阵需要每个值都为正数,因此需要把步骤3中求得的特征关联性为负值的转换为绝对值;

步骤4.2,根据特征关联性矩阵W计算归一化对角矩阵

步骤4.3,根据归一化对角矩阵D计算归一化拉普拉斯图矩阵L=D1/2WD1/2

步骤4.4,计算普拉斯图矩阵L的特征向量,将前m个特征值最大的向量按列放置成一个矩阵X,即X=[V1,V2,…,Vm],其中V1,V2,…,Vm依次为前m个特征值最大的特征向量;

步骤4.5,归一化矩阵X形成矩阵Y;

步骤4.6,对矩阵Y按每行为一个数据,采用K-Means算法对所有模块数据进行聚类,矩阵Y中第i行的数据就是原来的第i个软件模块Xi,将特征集划分为K个簇;

步骤5,利用线性Pearson系数衡量计算每个特征与这些模块数据的缺陷数目之间的关联性Ri,其计算公式为:其中,xki,yk分别表示第k个软件模块Xk上特征fi和缺陷个数的取值,分别表示在所有软件模块数据上特征fi和缺陷数目的均值;Ri表示特征fi和缺陷个数间的关联度,取值介于-1和1之间;其越接近1或-1,关联性越强,越接近于0,关联性越弱;

步骤6,根据特征相关性对每个簇中的特征进行排序,从步骤5中获得的每个簇中选取相关性最高的n个特征构成最终的特征子集。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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