CN115269378B - 一种基于域特征分布的跨项目软件缺陷预测方法 - Google Patents

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

Info

Publication number
CN115269378B
CN115269378B CN202210717461.5A CN202210717461A CN115269378B CN 115269378 B CN115269378 B CN 115269378B CN 202210717461 A CN202210717461 A CN 202210717461A CN 115269378 B CN115269378 B CN 115269378B
Authority
CN
China
Prior art keywords
instance
source
domain
constructing
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210717461.5A
Other languages
English (en)
Other versions
CN115269378A (zh
Inventor
张瑞年
陈义
祁佳篁
尹思文
王超
郭伟琪
文万志
程实
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong University
Original Assignee
Nantong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nantong University filed Critical Nantong University
Priority to CN202210717461.5A priority Critical patent/CN115269378B/zh
Publication of CN115269378A publication Critical patent/CN115269378A/zh
Application granted granted Critical
Publication of CN115269378B publication Critical patent/CN115269378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种基于域特征分布的跨项目软件缺陷预测方法
技术领域
本发明属于软件缺陷预测的技术领域,具体涉及一种基于域特征分布的跨项目软件缺陷预测方法,对已选出的源实例集进行实例选择优化,进一步提高跨项目缺陷预测结果。
背景技术
软件缺陷预测技术使用监督机器学习算法建立模型,比如支持向量机、决策树和朴素贝叶斯等,同时也有一些非监督算法被用于无标记数据样本的模型建立,比如KNN等。
不同项目之间的数据差异较大,为了更好的利用其他项目的历史数据,研究者往往使用一些方法来缩小项目之间的数据分布差异,比如迁移学习等。
发明内容
本发明要解决的技术问题是提供一种基于域特征分布的跨项目软件缺陷预测方法,对目标项目和源项目中同标签实例的特征去均值化处理然后初步的进行源实例选择,接着由目标实例的去均值化向量构建适应域特征分布的实例集,有助于实现更好的跨项目缺陷预测效果。
为解决上述技术问题,本发明的实施例提供一种基于域特征分布的跨项目软件缺陷预测方法,包括如下步骤:
S1、构建项目向量集PVS;
S2、构建源域实例候选索引集SDCI;
S3、构建源域实例候选集SDCS;
S4、构建适应域特征分布索引DFDI;
S5、构建适应域特征分布的训练集DFDD;
S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP。
其中,步骤S1包括如下步骤:
S1.1、基于开源网站获取软件项目集合;
S1.2、以项目类作为实例构建项目实例集合;
S1.3、基于开源数据历史记录、项目源代码语法结构、源代码抽象语法树构建传统度量元集{WMC, DIT, NOC, CBO, RFC, LCOM, LCOM3, NPM, DAM, MOA, MFA, CAM, IC,CBW, 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, …, instancei],其中,i=1,2,3,…,n;
S1.5、将目标项目中的所有实例按步骤S1.3处理得到目标项目传统度量元向量集TCPIVS =[tradition_value1, tradition_value2, …, tradition_valuej],其中,j=1,2,3,…,m;
S1.6、基于开源数据历史记录构建源项目实例标签SLABEL =[stag1, stag2, …,stagi],其中,i=1,2,3,…,n;该标签与步骤S1.4 源项目传统度量元向量集SCPIVS中实例对应;
S1.7、基于开源数据历史记录构建目标项目实例标签TLABEL =[ttag1, ttag2,…, ttagj],其中,j=1,2,3,…,m;该标签与步骤S1.5目标项目传统度量元向量集TCPIVS中实例对应;
S1.8、构建项目向量集PVS={SCPIVS, SLABEL, TCPIVS, TLABEL}。
其中,步骤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个欧氏距离对应的源实例索引;
S2.10、将TDMS中所有去均值化实例向量按照步骤S2.9处理组合并去重,由此构建源域实例候选索引集SDCI。
其中,步骤S3包括如下步骤:
S3.1、使用步骤S2得到的源域实例候选索引集SDCI对源项目去均值化实例集SDMS进行选择,得到源域实例候选特征集SDCS-D;
S3.2、使用步骤S2得到的源域实例候选索引集SDCI对源项目实例标签SLABEL进行选择,得到源域实例候选标签集SDCS-L;
S3.3、构建源域实例候选集SDCS={SDCS-D, SDCS-L}。
其中,步骤S4包括如下步骤:
S4.1、获取步骤S3的源域实例候选特征集SDCS-D;
S4.2、获取步骤S2的目标项目去均值化实例集TDMS;
S4.3、构建单个目标实例域特征分布索引空列表SIDFD,构建步骤S4.1的SDCS-D实例索引集;
S4.4、选择TDMS中的一个实例向量;
S4.5、若SIDFD为空,则将目标实例域候选集特征定义为步骤S4.4的实例向量,然后计算目标实例域候选集特征与SDCS-D中所有源实例的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;若SIDFD不为空,则将目标实例域候选集特征定义为目标实例域候选集中所有实例向量按度量元计算标准差得到的标准差列表,然后计算该标准差列表和SDCS-D实例索引集中所有的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;
S4.6、设置选择适应域特征分布索引个数为q;
S4.7、当SIDFD长度满足q时,停止S4.4目标实例选择源实例;
S4.8、将TDMS中所有目标实例按照步骤S4.3~ S4.5执行得到每个目标实例的单个目标实例域特征分布索引;
S4.9、将步骤S4.8得到的每个目标实例的单个目标实例域特征分布索引组合后去重构建适应域特征分布索引DFDI。
其中,步骤S5包括如下步骤:
S5.1、使用步骤S4得到的适应域特征分布索引DFDI对源域实例候选特征集SDCS-D进行选择,得到适应域特征分布的训练特征集DFDD-D;
S5.2、使用步骤S4得到的适应域特征分布索引DFDI对源域实例候选标签集SDCS-L进行选择,得到适应域特征分布的训练标签集DFDD-L;
S5.3、构建适应域特征分布的训练集DFDD={DFDD-D, DFDD-L}。
其中,步骤S6包括如下步骤:
S6.1、通过步骤S1得到项目向量集PVS={SCPIVS, SLABEL, TCPIVS, TLABEL};
S6.2、通过步骤S2得到源域实例候选索引集SDCI;
S6.3、通过步骤S3得到源域实例候选特征集SDCS-D和源域实例候选标签集SDCS-L;
S6.4、通过步骤S4得到适应域特征分布索引DFDI;
S6.5、通过步骤S5得到适应域特征分布的训练特征集DFDD-D和适应域特征分布的训练标签集DFDD-L;
S6.6、使用Logistic分类算法对步骤S6.5的适应域特征分布的训练特征集DFDD-D和适应域特征分布的训练标签集DFDD-L进行模型训练;
S6.7、将步骤S6.6训练得到的模型对步骤S2的目标项目去均值化实例集TDMS进行缺陷预测,得到预测标签集PRED_LABEL,结合目标项目实例标签TLABEL通过公式计算得到f-score;
S6.8、得到基于域特征分布的跨项目软件缺陷预测方法DFDCP。
本发明的上述技术方案的有益效果如下:
本发明提供一种基于域特征分布的跨项目软件缺陷预测方法,在源域实例候选集中,由目标实例的去均值化向量进行实例再选择,构建适应域特征分布的实例集,将选出的所有源实例组成训练数据集,使用该训练数据集建立跨项目缺陷预测模型,有助于实现更好的跨项目缺陷预测效果。
附图说明
图1为本发明的流程框图;
图2为本发明中适应域特征分布的训练集DFDD流程图;
图3为本发明中不同k下选中的实例个数图;
图4为本发明中不同k下使用Logistic得到的f-score图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,本发明提供一种基于域特征分布的跨项目软件缺陷预测方法,包括如下步骤:
S1、构建项目向量集PVS;
S2、构建源域实例候选索引集SDCI;
S3、构建源域实例候选集SDCS;
S4、构建适应域特征分布索引DFDI;
S5、构建适应域特征分布的训练集DFDD;
S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP。
步骤S1、构建项目向量集PVS的具体步骤如下:
S1.1、基于开源网站获取软件项目集合;
S1.2、以项目类作为实例构建项目实例集合;
S1.3、基于开源数据历史记录、项目源代码语法结构、源代码抽象语法树构建特征集{WMC, DIT, NOC, CBO, RFC, LCOM, LCOM3, NPM, DAM, MOA, MFA, CAM, IC, CBW,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、将源项目中的所有实例按上述步骤处理得到源项目传统度量元向量集SCPIVS =[tradition_value1, tradition_value2, …, tradition_ valuei],其中i=1,2,3,…,n;
S1.5、将目标项目中的所有实例按照相同的步骤处理得到目标项目传统度量元向量集TCPIVS =[tradition_value1, tradition_value2, …, tradition_valuej],其中,j=1,2,3,…,m。
S1.6、基于开源数据历史记录构建源项目实例标签SLABEL =[stag1, stag2, …,stagi]。其中i=1,2,3,…,n;该标签与源项目传统度量元向量集SCPIVS中实例对应;
S1.7、基于开源数据历史记录构建目标项目实例标签TLABEL =[ttag1, ttag2,…, ttagj]。其中j=1,2,3,…,m;该标签与目标项目传统度量元向量集TCPIVS中实例对应。
S1.8、构建项目向量集PVS={SCPIVS, SLABEL, TCPIVS, TLABEL}。
步骤S2、构建源域实例候选索引集SDCI的具体步骤如下:
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.5的目标项目传统度量元向量集TCPIVS和步骤S1.7目标项目实例标签TLABEL执行步骤S2.1~ S2.6,得目标项目去均值化实例集TDMS。
S2.8、设置选择去均值化实例个数为k;
S2.9、计算TDMS中的一个去均值化实例向量与SDMS中所有去均值化源实例向量之间的欧式距离,将欧式距离按从小到大排序并选择前k个欧氏距离对应的源实例索引;
S2.10、将TDMS中所有去均值化实例向量按照步骤S2.9处理组合并去重,由此构建源域实例候选索引集SDCI。
步骤S3、构建源域实例候选集SDCS的具体步骤如下:
S3.1、使用步骤S2.10得到的源域实例候选索引集SDCI对源项目去均值化实例集SDMS进行选择,得到源域实例候选特征集SDCS-D。
S3.2、使用步骤S2.10得到的源域实例候选索引集SDCI对源项目实例标签SLABEL进行选择,得到源域实例候选标签集SDCS-L。
S3.3、由上述步骤构建源域实例候选集SDCS={SDCS-D, SDCS-L}。
步骤S4、构建适应域特征分布索引DFDI的具体步骤如下:
S4.1、获取步骤S3.3的源域实例候选特征集SDCS-D;
S4.2、获取步骤S2.7的目标项目去均值化实例集TDMS。
S4.3、构建单个目标实例域特征分布索引空列表SIDFD,构建步骤S4.1的SDCS-D实例索引集;
S4.4、选择TDMS中的一个实例向量;
S4.5、若SIDFD为空,则将目标实例域候选集特征定义为步骤S4.4的实例向量,然后计算目标实例域候选集特征与SDCS-D中所有源实例的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;若SIDFD不为空,则将目标实例域候选集特征定义为目标实例域候选集中所有实例向量按度量元计算标准差得到的标准差列表,然后计算该标准差列表和SDCS-D实例索引集中所有的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;
S4.6、设置选择适应域特征分布索引个数为3;
S4.7、当SIDFD长度满足3时,停止S4.4目标实例选择源实例。
S4.8、将TDMS中所有目标实例按照步骤S4.3~ S4.5执行得到每个目标实例的单个目标实例域特征分布索引。
S4.9、将步骤S4.8得到的每个目标实例的单个目标实例域特征分布索引组合后去重,构建适应域特征分布索引DFDI。
步骤S5、构建适应域特征分布的训练集DFDD的具体步骤如下:
S5.1、使用步骤S4.7得到的适应域特征分布索引DFDI对源域实例候选特征集SDCS-D进行选择,得到适应域特征分布的训练特征集DFDD-D。
S5.2、使用步骤S4.7得到的适应域特征分布索引DFDI对源域实例候选标签集SDCS-L进行选择,得到适应域特征分布的训练标签集DFDD-L。
S5.3、构建适应域特征分布的训练集DFDD={DFDD-D, DFDD-L}。
构建适应域特征分布的训练集DFDD的流程图如图2所示。
步骤S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP的具体步骤如下:
选择poi-3.0作为源项目,选择camel-1.2作为目标项目。根据源项目实例情况构建源项目传统度量元向量集SCPIVS和源项目实例标签SLABEL,根据目标项目实例情况构建目标项目传统度量元向量集TCPIVS和目标项目实例标签TLABEL。
按上述定义的构构建源域实例候选索引集方法得到源域实例候选索引集SDCI。
按上述定义的构建源域实例候选集方法得到源域实例候选集SDCS={SDCS-D,SDCS-L}。
按上述定义的构构建适应域特征分布索引方法,得到适应域特征分布索引DFDI。
将选择特征个数k设置在1到10范围内,在每一个k下获得适应域特征分布的训练集DFDD={DFDD-D, DFDD-L}。
使用Logistic分类器对适应域特征分布的训练集DFDD建立分类模型并预测,通过实验表明,该模型得到的f-score值最大为0.708,该值大于没有使用该实例选择方法得到的0.453;通过本发明建立的模型性能优于没有使用该实例选择方法建立的模型,从而表明基于域特征分布的跨项目软件缺陷预测方法的有效性。
不同k下选中的实例个数如图3所示。
不同k下使用Logistic得到的f-score如图4所示。
本发明提供一种基于域特征分布的跨项目软件缺陷预测方法,合理的对源项目中实例进行选择,在源域实例候选集中,由目标实例的去均值化向量进行实例再选择,构建适应域特征分布的实例集,将选出的所有源实例组成训练数据集,使用该训练数据集建立跨项目缺陷预测模型,有助于实现更好的跨项目缺陷预测效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (1)

1.一种基于域特征分布的跨项目软件缺陷预测方法,其特征在于,包括如下步骤:
S1、构建项目向量集PVS;
S2、构建源域实例候选索引集SDCI;
S3、构建源域实例候选集SDCS;
S4、构建适应域特征分布索引DFDI;
S5、构建适应域特征分布的训练集DFDD;
S6、构建基于域特征分布的跨项目软件缺陷预测方法DFDCP;
步骤S1包括如下步骤:
S1.1、基于开源网站获取软件项目集合;
S1.2、以项目类作为实例构建项目实例集合;
S1.3、基于开源数据历史记录、项目源代码语法结构、源代码抽象语法树构建传统度量元集{WMC, DIT, NOC, CBO, RFC, LCOM, LCOM3, NPM, DAM, MOA, MFA, CAM, IC, CBW,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, …, instancei],其中,i=1,2,3,…,n;
S1.5、将目标项目中的所有实例按步骤S1.3处理得到目标项目传统度量元向量集TCPIVS =[tradition_value1, tradition_value2, …, tradition_valuej],其中,j=1,2,3,…,m;
S1.6、基于开源数据历史记录构建源项目实例标签SLABEL =[stag1, stag2, …,stagi],其中,i=1,2,3,…,n;该标签与步骤S1.4 源项目传统度量元向量集SCPIVS中实例对应;
S1.7、基于开源数据历史记录构建目标项目实例标签TLABEL =[ttag1, ttag2, …,ttagj],其中,j=1,2,3,…,m;该标签与步骤S1.5目标项目传统度量元向量集TCPIVS中实例对应;
S1.8、构建项目向量集PVS={SCPIVS, SLABEL, TCPIVS, TLABEL};
步骤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个欧氏距离对应的源实例索引;
S2.10、将TDMS中所有去均值化实例向量按照步骤S2.9处理组合并去重,由此构建源域实例候选索引集SDCI;
步骤S3包括如下步骤:
S3.1、使用步骤S2得到的源域实例候选索引集SDCI对源项目去均值化实例集SDMS进行选择,得到源域实例候选特征集SDCS-D;
S3.2、使用步骤S2得到的源域实例候选索引集SDCI对源项目实例标签SLABEL进行选择,得到源域实例候选标签集SDCS-L;
S3.3、构建源域实例候选集SDCS={SDCS-D, SDCS-L};
步骤S4包括如下步骤:
S4.1、获取步骤S3的源域实例候选特征集SDCS-D;
S4.2、获取步骤S2的目标项目去均值化实例集TDMS;
S4.3、构建单个目标实例域特征分布索引空列表SIDFD,构建步骤S4.1的SDCS-D实例索引集;
S4.4、选择TDMS中的一个实例向量;
S4.5、若SIDFD为空,则将目标实例域候选集特征定义为步骤S4.4的实例向量,然后计算目标实例域候选集特征与SDCS-D中所有源实例的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;若SIDFD不为空,则将目标实例域候选集特征定义为目标实例域候选集中所有实例向量按度量元计算标准差得到的标准差列表,然后计算该标准差列表和SDCS-D实例索引集中所有的欧氏距离,将最小距离的实例索引加入到SIDFD并将该索引从SDCS-D实例索引集中删除;
S4.6、设置选择适应域特征分布索引个数为q;
S4.7、当SIDFD长度满足q时,停止S4.4目标实例选择源实例;
S4.8、将TDMS中所有目标实例按照步骤S4.3~ S4.5执行得到每个目标实例的单个目标实例域特征分布索引;
S4.9、将步骤S4.8得到的每个目标实例的单个目标实例域特征分布索引组合后去重构建适应域特征分布索引DFDI;
步骤S5包括如下步骤:
S5.1、使用步骤S4得到的适应域特征分布索引DFDI对源域实例候选特征集SDCS-D进行选择,得到适应域特征分布的训练特征集DFDD-D;
S5.2、使用步骤S4得到的适应域特征分布索引DFDI对源域实例候选标签集SDCS-L进行选择,得到适应域特征分布的训练标签集DFDD-L;
S5.3、构建适应域特征分布的训练集DFDD={DFDD-D, DFDD-L};
步骤S6包括如下步骤:
S6.1、通过步骤S1得到项目向量集PVS={SCPIVS, SLABEL, TCPIVS, TLABEL};
S6.2、通过步骤S2得到源域实例候选索引集SDCI;
S6.3、通过步骤S3得到源域实例候选特征集SDCS-D和源域实例候选标签集SDCS-L;
S6.4、通过步骤S4得到适应域特征分布索引DFDI;
S6.5、通过步骤S5得到适应域特征分布的训练特征集DFDD-D和适应域特征分布的训练标签集DFDD-L;
S6.6、使用Logistic分类算法对步骤S6.5的适应域特征分布的训练特征集DFDD-D和适应域特征分布的训练标签集DFDD-L进行模型训练;
S6.7、将步骤S6.6训练得到的模型对步骤S2的目标项目去均值化实例集TDMS进行缺陷预测,得到预测标签集PRED_LABEL,结合目标项目实例标签TLABEL通过公式计算得到f-score;
S6.8、得到基于域特征分布的跨项目软件缺陷预测方法DFDCP。
CN202210717461.5A 2022-06-23 2022-06-23 一种基于域特征分布的跨项目软件缺陷预测方法 Active CN115269378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210717461.5A CN115269378B (zh) 2022-06-23 2022-06-23 一种基于域特征分布的跨项目软件缺陷预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210717461.5A CN115269378B (zh) 2022-06-23 2022-06-23 一种基于域特征分布的跨项目软件缺陷预测方法

Publications (2)

Publication Number Publication Date
CN115269378A CN115269378A (zh) 2022-11-01
CN115269378B true CN115269378B (zh) 2023-06-09

Family

ID=83762541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210717461.5A Active CN115269378B (zh) 2022-06-23 2022-06-23 一种基于域特征分布的跨项目软件缺陷预测方法

Country Status (1)

Country Link
CN (1) CN115269378B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346974A (zh) * 2020-11-07 2021-02-09 重庆大学 基于深度特征嵌入的跨移动应用程序即时缺陷预测方法
WO2021093140A1 (zh) * 2019-11-11 2021-05-20 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN113176998A (zh) * 2021-05-10 2021-07-27 南通大学 基于源选择的跨项目软件缺陷预测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021093140A1 (zh) * 2019-11-11 2021-05-20 南京邮电大学 一种跨项目软件缺陷预测方法及其系统
CN112346974A (zh) * 2020-11-07 2021-02-09 重庆大学 基于深度特征嵌入的跨移动应用程序即时缺陷预测方法
CN113176998A (zh) * 2021-05-10 2021-07-27 南通大学 基于源选择的跨项目软件缺陷预测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于实例选择的集成跨项目缺陷预测方法的设计与实现;王莉萍;《中国优秀硕士学位论文全文数据库 信息科技辑》;第 I138-1215页 *
基于距离的软件故障分析方法;潘建生 等;《无线互联科技》;第12卷(第12期);第44-45页 *

Also Published As

Publication number Publication date
CN115269378A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN112669916B (zh) 一种基于对比学习的分子图表示学习方法
CN112115352B (zh) 基于用户兴趣的会话推荐方法及系统
CN112434171B (zh) 一种基于强化学习的知识图谱推理补全方法及系统
WO2023116111A1 (zh) 一种磁盘故障预测方法及装置
CN111445963B (zh) 一种基于图节点信息聚合的子图同构约束求解方法
CN109885576A (zh) 一种哈希表创建方法及系统、计算设备及存储介质
CN111931814B (zh) 一种基于类内结构紧致约束的无监督对抗域适应方法
CN115374948B (zh) 量子神经网络的训练方法、数据处理方法、设备及介质
CN110163262A (zh) 模型训练方法、业务处理方法、装置、终端及存储介质
CN112686376A (zh) 一种基于时序图神经网络的节点表示方法及增量学习方法
Sahu et al. Dynamic routing using inter capsule routing protocol between capsules
CN114463596B (zh) 一种超图神经网络的小样本图像识别方法、装置及设备
CN109903205B (zh) 一种公开课智能推荐方法以及管理系统
CN115578568A (zh) 一种小规模可靠数据集驱动的噪声修正算法
CN115310355A (zh) 考虑多能耦合的综合能源系统多元负荷预测方法及系统
CN115269378B (zh) 一种基于域特征分布的跨项目软件缺陷预测方法
CN115269377B (zh) 一种基于优化实例选择的跨项目软件缺陷预测方法
Lin et al. An efficient modified Hyperband and trust-region-based mode-pursuing sampling hybrid method for hyperparameter optimization
CN114565063A (zh) 一种基于多语义提取器的软件缺陷预测方法
Liang et al. Orderly roulette selection based ant colony algorithm for hierarchical multilabel protein function prediction
US20210334647A1 (en) Method, electronic device, and computer program product for determining output of neural network
CN115130620A (zh) 一种电力设备用电模式识别模型生成方法及装置
CN113111308A (zh) 基于数据驱动遗传编程算法的符号回归方法及系统
CN114896150A (zh) 一种基于实例选择的跨项目缺陷预测方法
CN114860595A (zh) 一种基于特征相关性分析的实例选择跨项目缺陷预测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant