CN115269378B - 一种基于域特征分布的跨项目软件缺陷预测方法 - Google Patents
一种基于域特征分布的跨项目软件缺陷预测方法 Download PDFInfo
- 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
- project
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000007547 defect Effects 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims abstract description 58
- 238000012549 training Methods 0.000 claims abstract description 33
- 230000003044 adaptive effect Effects 0.000 claims abstract description 21
- DTWVWSKVQMPTOU-UHFFFAOYSA-N 1-[2,2-dichloro-1-(4-fluorophenyl)ethyl]-4-fluorobenzene Chemical compound C1=CC(F)=CC=C1C(C(Cl)Cl)C1=CC=C(F)C=C1 DTWVWSKVQMPTOU-UHFFFAOYSA-N 0.000 claims abstract description 12
- 238000012935 Averaging Methods 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims description 15
- 238000010168 coupling process Methods 0.000 claims description 15
- 238000005859 coupling reaction Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000007635 classification algorithm Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test 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。
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)
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 | 南通大学 | 基于源选择的跨项目软件缺陷预测方法 |
-
2022
- 2022-06-23 CN CN202210717461.5A patent/CN115269378B/zh active Active
Patent Citations (3)
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)
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 |
---|---|---|
Bevilacqua et al. | Equivariant subgraph aggregation networks | |
CN112199532B (zh) | 一种基于哈希编码和图注意力机制的零样本图像检索方法及装置 | |
WO2023155508A1 (zh) | 一种基于图卷积神经网络和知识库的论文相关性分析方法 | |
CN114565053A (zh) | 基于特征融合的深层异质图嵌入模型 | |
CN110134803A (zh) | 基于哈希学习的图像数据快速检索方法 | |
WO2023179689A1 (zh) | 一种面向物联网的基于知识图谱的推荐方法 | |
CN117648197B (zh) | 基于对抗学习与异构图学习的序列化微服务资源预测方法 | |
CN115718826A (zh) | 图结构数据中的目标节点分类方法、系统、设备及介质 | |
Liu et al. | An iterative co-training transductive framework for zero shot learning | |
Chen et al. | Multi-semantic hypergraph neural network for effective few-shot learning | |
Lai et al. | MGRNN: Structure generation of molecules based on graph recurrent neural networks | |
Zhao et al. | Graph few-shot learning via restructuring task graph | |
CN115712755B (zh) | 基于gnn双源学习的大数据访问控制实体关系预测方法 | |
CN115269378B (zh) | 一种基于域特征分布的跨项目软件缺陷预测方法 | |
US20250077518A1 (en) | Dynamic Performance Tuning Based On Implied Data Characteristics | |
CN108427730A (zh) | 一种基于随机游走和条件随机场的社会标签推荐方法 | |
Lv et al. | Active learning of three-way decision based on neighborhood entropy | |
CN114968764A (zh) | 基于代码语义融合传统度量元的软件缺陷预测方法 | |
CN114896150A (zh) | 一种基于实例选择的跨项目缺陷预测方法 | |
CN116629309A (zh) | 基于图神经网络的节点关系空间对比学习社区发现方法 | |
CN115269377B (zh) | 一种基于优化实例选择的跨项目软件缺陷预测方法 | |
CN107633009A (zh) | 一种基于标记置信度的弱监督文档分类方法 | |
Chen et al. | Harnessing multi-semantic hypergraph for few-shot learning | |
Wang et al. | An Implicit Preference‐Aware Sequential Recommendation Method Based on Knowledge Graph | |
Gosselin et al. | Active learning techniques for user interactive systems: application to image retrieval |
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 |