当前位置: 首页 > 专利查询>南通大学专利>正文

一种基于域特征分布的跨项目软件缺陷预测方法技术

技术编号:35444179 阅读:12 留言:0更新日期:2022-11-03 11:56
本发明专利技术提供一种基于域特征分布的跨项目软件缺陷预测方法,包括如下步骤:S1、构建项目向量集PVS;S2、构建源域实例候选索引集SDCI;S3、构建源域实例候选集SDCS;S4、构建适应域特征分布索引DFDI;S5、构建适应域特征分布的训练集DFDD;S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP。本发明专利技术提出一种基于域特征分布的跨项目软件缺陷预测方法,在源域实例候选集中,由目标实例的去均值化向量进行实例再选择,构建适应域特征分布的实例集,使用该方法构建的训练集有利于进一步建立精确的跨项目缺陷预测模型,实现更好的跨项目缺陷预测效果。测效果。测效果。

【技术实现步骤摘要】
一种基于域特征分布的跨项目软件缺陷预测方法


[0001]本专利技术属于软件缺陷预测的
,具体涉及一种基于域特征分布的跨项目软件缺陷预测方法,对已选出的源实例集进行实例选择优化,进一步提高跨项目缺陷预测结果。

技术介绍

[0002]软件缺陷预测技术使用监督机器学习算法建立模型,比如支持向量机、决策树和朴素贝叶斯等,同时也有一些非监督算法被用于无标记数据样本的模型建立,比如KNN等。
[0003]不同项目之间的数据差异较大,为了更好的利用其他项目的历史数据,研究者往往使用一些方法来缩小项目之间的数据分布差异,比如迁移学习等。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种基于域特征分布的跨项目软件缺陷预测方法,对目标项目和源项目中同标签实例的特征去均值化处理然后初步的进行源实例选择,接着由目标实例的去均值化向量构建适应域特征分布的实例集,有助于实现更好的跨项目缺陷预测效果。
[0005]为解决上述技术问题,本专利技术的实施例提供一种基于域特征分布的跨项目软件缺陷预测方法,包括如下步骤:
[0006]S1、构建项目向量集PVS;
[0007]S2、构建源域实例候选索引集SDCI;
[0008]S3、构建源域实例候选集SDCS;
[0009]S4、构建适应域特征分布索引DFDI;
[0010]S5、构建适应域特征分布的训练集DFDD;
[0011]S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP。
[0012]其中,步骤S1包括如下步骤:
[0013]S1.1、基于开源网站获取软件项目集合;
[0014]S1.2、以项目类作为实例构建项目实例集合;
[0015]S1.3、基于开源数据历史记录、项目源代码语法结构、源代码抽象语法树构建传统度量元集{WMC,DIT,NOC,CBO,RFC,LCOM,LCOM3,NPM,DAM,MOA,MFA,CAM,IC,CBM,AMC,Ca,Ce,Max_CC,Avg_CC,LOC},其中,WMC代表每个类的加权方法,DIT代表继承树的深度,NOC代表子类的数目,CBO代表对象类之间的耦合,RFC代表一个类的响应,LCOM和LCOM3代表在方法上缺少的凝聚力,NPM代表公共类的个数,DAM代表数据访问指标,MOA代表聚合的量度,MFA代表功能抽象的量度,CAM代表类方法之间的聚合,IC代表继承耦合,CBW代表方法之间的耦合,AMC代表平均方法复杂度,Ca代表传入耦合,Ce代表传出耦合,Max_CC代表McCabe圈复杂性的最大值,Avg_CC代表McCabe圈复杂性的平均值,LOC代表代码的行数;
[0016]S1.4、将源项目中的所有实例按步骤S1.3处理得到源项目传统度量元向量集
SCPIVS=[instance1,instance2,

,instance
i
],其中,i=1,2,3,

,n;
[0017]S1.5、将目标项目中的所有实例按步骤S1.3处理得到目标项目传统度量元向量集TCPIVS=[tradition_value1,tradition_value2,

,tradition_value
j
],其中,j=1,2,3,

,m;
[0018]S1.6、基于开源数据历史记录构建源项目实例标签SLABEL=[stag1,stag2,

,stag
i
],其中,i=1,2,3,

,n;该标签与步骤S1.4源项目传统度量元向量集SCPIVS中实例对应;
[0019]S1.7、基于开源数据历史记录构建目标项目实例标签TLABEL=[ttag1,ttag2,

,ttag
j
],其中,j=1,2,3,

,m;该标签与步骤S1.5目标项目传统度量元向量集TCPIVS中实例对应;
[0020]S1.8、构建项目向量集PVS={SCPIVS,SLABEL,TCPIVS,TLABEL}。
[0021]其中,步骤S2包括如下步骤:
[0022]S2.1、获取源项目传统度量元向量集SCPIVS和源项目实例标签SLABEL;
[0023]S2.2、将步骤S2.1的源项目实例标签SLABEL分类处理,构建源项目正向索引列表SPPIL和源项目负向索引列表SPNIL;
[0024]S2.3、使用SPPIL对SCPIVS选择得到源项目正向数据集SDPDS,使用SPNIL对SCPIVS选择得到源项目负向数据集SDNDS;
[0025]S2.4、将SDPDS中每个实例的度量元减去所有实例对应该度量元的平均值,得到源项目正向去均值化数据集SPPDM;
[0026]S2.5、将SDNDS中每个实例的度量元减去所有实例对应该度量元的平均值,得到源项目负向去均值化数据集SPNDM;
[0027]S2.6、将步骤S2.4的SPPDM和步骤S2.5的SPNDM组合后按原实例顺序排列,计算每一个去均值化实例向量的最小值、最大值、平均值、标准差和中位数,将这五个数值作为实例的新特征向量,最后得到源项目去均值化实例集SDMS;
[0028]S2.7、将步骤S1的目标项目传统度量元向量集TCPIVS和目标项目实例标签TLABEL执行步骤S2.1~S2.6,得目标项目去均值化实例集TDMS;
[0029]S2.8、设置选择去均值化实例个数为k;
[0030]S2.9、计算TDMS中的一个去均值化实例向量与SDMS中所有去均值化源实例向量之间的欧式距离,将欧式距离按从小到大排序并选择前k个欧氏距离对应的源实例索引;
[0031]S2.10、将TDMS中所有去均值化实例向量按照步骤S2.9处理组合并去重,由此构建源域实例候选索引集SDCI。
[0032]其中,步骤S3包括如下步骤:
[0033]S3.1、使用步骤S2得到的源域实例候选索引集SDCI对源项目去均值化实例集SDMS进行选择,得到源域实例候选特征集SDCS

D;
[0034]S3.2、使用步骤S2得到的源域实例候选索引集SDCI对源项目实例标签SLABEL进行选择,得到源域实例候选标签集SDCS

L;
[0035]S3.3、构建源域实例候选集SDCS={SDCS

D,SDCS

L}。
[0036]其中,步骤S4包括如下步骤:
[0037]S4.1、获取步骤S3的源域实例候选数据集SDCS

D;
[0038]S4.2、获取步骤S2的目标项目去均值化实例集TDMS;
[0039]S4.3、构建单个目标实例域特征分布索引空列表SIDFD,构建步骤S4.1的SDCS
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于域特征分布的跨项目软件缺陷预测方法,其特征在于,包括如下步骤:S1、构建项目向量集PVS;S2、构建源域实例候选索引集SDCI;S3、构建源域实例候选集SDCS;S4、构建适应域特征分布索引DFDI;S5、构建适应域特征分布的训练集DFDD;S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP。2.根据权利要求1所述的基于域特征分布的跨项目软件缺陷预测方法,其特征在于,步骤S1包括如下步骤:S1.1、基于开源网站获取软件项目集合;S1.2、以项目类作为实例构建项目实例集合;S1.3、基于开源数据历史记录、项目源代码语法结构、源代码抽象语法树构建传统度量元集{WMC,DIT,NOC,CBO,RFC,LCOM,LCOM3,NPM,DAM,MOA,MFA,CAM,IC,CBM,AMC,Ca,Ce,Max_CC,Avg_CC,LOC},其中,WMC代表每个类的加权方法,DIT代表继承树的深度,NOC代表子类的数目,CBO代表对象类之间的耦合,RFC代表一个类的响应,LCOM和LCOM3代表在方法上缺少的凝聚力,NPM代表公共类的个数,DAM代表数据访问指标,MOA代表聚合的量度,MFA代表功能抽象的量度,CAM代表类方法之间的聚合,IC代表继承耦合,CBW代表方法之间的耦合,AMC代表平均方法复杂度,Ca代表传入耦合,Ce代表传出耦合,Max_CC代表McCabe圈复杂性的最大值,Avg_CC代表McCabe圈复杂性的平均值,LOC代表代码的行数;S1.4、将源项目中的所有实例按步骤S1.3处理得到源项目传统度量元向量集SCPIVS=[instance1,instance2,

,instance
i
],其中,i=1,2,3,

,n;S1.5、将目标项目中的所有实例按步骤S1.3处理得到目标项目传统度量元向量集TCPIVS=[tradition_value1,tradition_value2,

,tradition_value
j
],其中,j=1,2,3,

,m;S1.6、基于开源数据历史记录构建源项目实例标签SLABEL=[stag1,stag2,

,stag
i
],其中,i=1,2,3,

,n;该标签与步骤S1.4源项目传统度量元向量集SCPIVS中实例对应;S1.7、基于开源数据历史记录构建目标项目实例标签TLABEL=[ttag1,ttag2,

,ttag
j
],其中,j=1,2,3,

,m;该标签与步骤S1.5目标项目传统度量元向量集TCPIVS中实例对应;S1.8、构建项目向量集PVS={SCPIVS,SLABEL,TCPIVS,TLABEL}。3.根据权利要求1所述的基于域特征分布的跨项目软件缺陷预测方法,其特征在于,步骤S2包括如下步骤:S2.1、获取源项目传统度量元向量集SCPIVS和源项目实例标签SLABEL;S2.2、将步骤S2.1的源项目实例标签SLABEL分类处理,构建源项目正向索引列表SPPIL和源项目负向索引列表SPNIL;S2.3、使用SPPIL对SCPIVS选择得到源项目正向数据集SDPDS,使用SPNIL对SCPIVS选择得到源项目负向数据集SDNDS;S2.4、将SDPDS中每个实例的度量元减去所有实例对应该度量元的平均值,得到源项目正向去均值化数据集SPPDM;
S2.5、将SDNDS中每个实例的度量元减去所有实例对应该度量元的平均值,得到源项目负向去均值化数据集SPNDM;S2.6、将步骤S2.4的SPPDM和步骤S2.5的SPNDM组合后按原实例顺序排列,计算每一个去均值化实例向量的最小值、最大值、平均值、标准差和中位数,将这五个数值作为实例的新特征向量,最后得到源项目去均值化实例集SDMS;S2.7、将步骤S1的目标项目传统度量元向量集TCPIVS和目标项目实例标签TLABEL执行步骤S2.1~S2.6,得目标项目去均值化实例集TDMS;S2.8、设置选择去均值化实例个数为k;S2.9、计算TDMS中的一个去均值化实例向量与SDMS中所有去均值化源实例向量之间的欧式距离,将欧式距离按从小到大排序并选择前k个欧氏距离...

【专利技术属性】
技术研发人员:张瑞年陈义祁佳篁尹思文王超郭伟琪文万志程实
申请(专利权)人:南通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1