首页 / 专利库 / 软件 / 软件 / 软件缺陷预测方法和系统

软件缺陷预测方法和系统

阅读:415发布:2021-06-12

专利汇可以提供软件缺陷预测方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种 软件 缺陷 预测方法和系统,获取样本软件模 块 并进行聚类处理,得到聚类子集。计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本,根据 软件缺陷 样本集和伪缺陷样本得到更新缺陷样本集。根据更新缺陷样本集进行训练得到缺陷 预测模型 ,根据缺陷预测模型对待测 软件模块 进行缺陷预测并输出预测结果。对样本软件模块采用聚类的方式形成聚类子集,对聚类子集进行高斯分析计算得到高斯参数,然后根据高斯参数生成伪缺陷样本。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,提高了对软件缺陷的预测准确性。,下面是软件缺陷预测方法和系统专利的具体信息内容。

1.一种软件缺陷预测方法,其特征在于,包括以下步骤:
获取样本软件模并进行聚类处理,得到聚类子集;
计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本;
根据软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;所述软件缺陷样本集为对样本软件模块进行静态度量得到;
根据所述更新缺陷样本集进行训练得到缺陷预测模型
根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果;
所述高斯参数包括均值和方差;计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本的步骤,包括以下步骤:
计算聚类子集的均值,具体为:
其中,μk表示均值,Mk为聚类子集中样本向量 的数量, 表示均值μk在第n维的度量值;
计算聚类子集在每一维的方差,具体为:
其中, 表示聚类子集在第j维的方差,n为维数, 表示样本向量 在第j维的度量值,表示均值μk在第j维的度量值;
根据所述聚类子集在每一维的方差,对应生成聚类子集在每一维的随机数,具体为:对于第j维,根据高斯分布 生成随机数 取12个在[0,1]上均匀分布的随机变量则
根据所述聚类子集在每一维的随机数得到聚类子集的随机向量,具体为:
其中,ΔΛk为随机向量, 为聚类子集在第n维的随机数;
根据所述聚类子集的均值和随机向量得到伪缺陷样本,具体为:
其中,t为伪缺陷样本,μk为聚类子集的均值,ΔΛk为随机向量。
2.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述获取样本软件模块并进行聚类处理,得到聚类子集的步骤,包括以下步骤:
分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记;
分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量;
分别以各样本向量为起点,获取样本向量的中心点;
根据样本向量的中心点对样本向量进行聚类,得到聚类子集。
3.根据权利要求2所述的软件缺陷预测方法,其特征在于,所述分别以各样本向量为起点,计算样本向量的中心点的步骤,包括以下步骤:
以样本向量为起点,计算样本向量的meanshift向量,具体为:
其中,Mh表示样本向量x的meanshift向量,Sh(x)表示半径为常数h的高维球区域内,满足关系(x-xi)T(x-xi)<h2的K个样本向量的集合,xi为Sh(x)中的样本向量,T表示转置;
判断样本向量的meanshift向量是否大于预设阈值
若否,则将样本向量与meanshift向量之和作为样本向量的中心点;
若是,则将样本向量与meanshift向量之和作为新的样本向量,并返回所述以样本向量为起点,计算样本向量的meanshift向量的步骤。
4.根据权利要求1所述的软件缺陷预测方法,其特征在于,根据所述更新缺陷样本集进行训练得到缺陷预测模型的步骤,具体为:
其中, 表示 取最大值时λ的取值;
xi、xj分别为更新缺陷样本集中第i、j个样本向量,yi、yj分别为更新缺陷样本集中第i、j个样本向量所对应的缺陷标记,λi、λj分别表示更新缺陷样本集中第i、j个样本向量的权值;
S.T.表示约束条件,C为常数,M+L表示更新缺陷样本集中样本向量的个数;M指软件缺陷样本的个数,L指伪缺陷样本的个数,k(xi,xj)表示对样本xi和xj求点乘。
5.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述根据所述缺陷预测模型对待测软件模块进行缺陷预测的步骤,包括:
对待测软件模块进行静态度量,得到待测软件模块的样本向量;
根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测,具体为:
其中,g(x)表示待测软件模块的缺陷标记,sgn表示对 求整型变量,
当 大于0时取1,当 小于或等于0时取0;xi为更新缺
陷样本集中第i个样本向量,yi为更新缺陷样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新缺陷样本集中第i个样本向量的权值,M+L表示更新缺陷样本集中样本向量的个数,x为待测软件模块的样本向量,b为常数;M指软件缺陷样本的个数,L指伪缺陷样本的个数,K(xi,x)表示对样本xi和x求点乘。
6.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述根据所述缺陷预测模型对待测软件模块进行缺陷预测的步骤之后,还包括在待测软件模块存在缺陷时输出报警信息的步骤。
7.一种软件缺陷预测系统,其特征在于,包括:
聚类模块,用于获取样本软件模块并进行聚类处理,得到聚类子集;
计算模块,用于计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本;
更新模块,用于根据软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;所述软件缺陷样本集为对样本软件模块进行静态度量得到;
训练模块,用于根据所述更新缺陷样本集进行训练得到缺陷预测模型;
预测模块,用于根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果;
所述高斯参数包括均值和方差;所述计算模块包括:
均值计算单元,用于计算聚类子集的均值,具体为:
其中,μk表示均值,Mk为聚类子集中样本向量 的数量, 表示均值μk在第n维的度量值;
方差计算单元,用于计算聚类子集在每一维的方差,具体为:
其中, 表示聚类子集在第j维的方差,n为维数, 表示样本向量 在第j维的度量值,k
表示均值μ在第j维的度量值;
随机数生成单元,用于根据所述聚类子集在每一维的方差,对应生成聚类子集在每一维的随机数,具体为:对于第j维,根据高斯分布 生成随机数 取12个在[0,1]上均匀分布的随机变量 则
随机向量生成单元,用于根据所述聚类子集在每一维的随机数得到聚类子集的随机向量,具体为
其中,ΔΛk为随机向量, 为聚类子集在第n维的随机数;
伪缺陷样本生成单元,用于根据所述聚类子集的均值和随机向量得到伪缺陷样本,具体为:
其中,t为伪缺陷样本,μk为聚类子集的均值,ΔΛk为随机向量。
8.根据权利要求7所述的软件缺陷预测系统,其特征在于,所述聚类模块包括:
标记单元,用于分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记;
度量单元,用于分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量;
中心点计算单元,用于分别以各样本向量为起点,获取样本向量的中心点;
聚类单元,用于根据样本向量的中心点对样本向量进行聚类,得到聚类子集。

说明书全文

软件缺陷预测方法和系统

技术领域

[0001] 本发明涉及软件安全技术领域,特别是涉及一种软件缺陷预测方法和系统。

背景技术

[0002] 随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,良好的软件质量控制和预测机制不但可以帮助企业开发出高质量的软件产品,减少产品生产和维护成本,而且在提高客户满意度,建立良好的企业形象和增强企业在市场上的竞争等方面都有着重要的意义。因此软件质量越来越受重视,如何预测软件质量及提高软件质量成为当今研究的热点之一。
[0003] 传统的软件缺陷预测方法采用基于机器学习的软件缺陷预测模型,该模型以软件模的度量数据向量作为输入,通过预处理、特征提取、模型训练和预测等步骤,实现对软件模块是否存在缺陷进行预测。该模型由于其性能的评价准则、归纳偏置等内在问题,对软件有缺陷模块和软件无缺陷模块同等处理,以总体最大预测精度作为目标,但对软件缺陷的检出率仍然不高。因此,传统的软件缺陷预测方法存在预测准确度低的缺点。

发明内容

[0004] 基于此,有必要针对上述问题,提供一种预测准确度高的软件缺陷预测方法和系统。
[0005] 一种软件缺陷预测方法,包括以下步骤:
[0006] 获取样本软件模块并进行聚类处理,得到聚类子集;
[0007] 计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本;
[0008] 根据所述软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;
[0009] 根据所述更新缺陷样本集进行训练得到缺陷预测模型;
[0010] 根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果。
[0011] 一种软件缺陷预测系统,包括:
[0012] 聚类模块,用于获取样本软件模块并进行聚类处理,得到聚类子集;
[0013] 计算模块,用于计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本;
[0014] 更新模块,用于根据所述软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;
[0015] 训练模块,用于根据所述更新缺陷样本集进行训练得到缺陷预测模型;
[0016] 预测模块,用于根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果。
[0017] 上述软件缺陷预测方法和系统,获取样本软件模块并进行聚类处理,得到聚类子集。计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本,根据软件缺陷样本集和伪缺陷样本得到更新缺陷样本集。根据更新缺陷样本集进行训练得到缺陷预测模型,根据缺陷预测模型对待测软件模块进行缺陷预测并输出预测结果。对样本软件模块采用聚类的方式形成聚类子集,对聚类子集进行高斯分析计算得到高斯参数,然后根据高斯参数生成伪缺陷样本。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,提高了对软件缺陷的预测准确性。附图说明
[0018] 图1为一实施例中软件缺陷预测方法的流程图
[0019] 图2为一实施例中获取样本软件模块并进行聚类处理,得到聚类子集的流程图;
[0020] 图3为一实施例中分别以各样本向量为起点,获取样本向量的中心点的流程图;
[0021] 图4为一实施例中计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本的流程图;
[0022] 图5为一实施例中根据所述缺陷预测模型对待测软件模块进行缺陷预测的流程图;
[0023] 图6为另一实施例中软件缺陷预测方法的流程图;
[0024] 图7为一实施例中软件缺陷预测系统的结构图;
[0025] 图8为一实施例中聚类模块的结构图;
[0026] 图9为一实施例中中心点计算单元的结构图;
[0027] 图10为一实施例中计算模块的结构图;
[0028] 图11为一实施例中预测模块的结构图;
[0029] 图12为另一实施例中软件缺陷预测系统的结构图。

具体实施方式

[0030] 一种软件缺陷预测方法,如图1所示,包括以下步骤:
[0031] 步骤S110:获取样本软件模块并进行聚类处理,得到聚类子集。样本软件模块指已知是否存在缺陷的软件模块,通过聚类处理对样本软件模块进行分类,得到聚类子集。在其中一个实施例中,如图2所示,步骤S110包括步骤S112至步骤S118。
[0032] 步骤S112:分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记。例如,对第i个样本软件模块,i=1,2,...,M,若存在缺陷,则缺陷标记yi=1;若不存在缺陷,则缺陷标记yi=0。可以理解,各样本软件模块的标记方式以及得到的缺陷标记的取值并不唯一,在其他实施例中,也可以是令存在缺陷的样本软件模块的缺陷标记为0,令不存在缺陷的样本软件模块的缺陷标记为1等。
[0033] 步骤S114:分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量。对第i个样本软件模块,i=1,2,...,M,分别对各样本软件模块进行静态度量。本实施例中静态度量具体可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共n个度量值,并将这些度量值分别标记为xi1,xi2,...,xin,构成样本软件模块的样本向量xi={xi1,xi2,...,xin},所有的样本向量构成软件缺陷样本集{xi|i=1,2,...,M}。
[0034] 步骤S116:分别以各样本向量为起点,获取样本向量的中心点。分别将各样本向量作为起点,计算对应样本向量的中心点,以用作进行聚类处理的依据。进一步地,本实施例中采用MeanShift方法进行聚类,计算量小,可提高聚类分析速度。具体如图3所示,步骤S116包括步骤S1162至步骤S1166。
[0035] 步骤S1162:以样本向量为起点,计算样本向量的meanshift向量。具体为:
[0036]
[0037] 其中,Mh表示样本向量x的meanshift向量,Sh(x)表示半径为常数h的高维球区域内,满足关系(x-xi)T(x-xi)<h2的K个样本向量的集合,xi为Sh(x)中的样本向量,T表示转置。
[0038] 步骤S1164:判断样本向量的meanshift向量是否大于预设阈值。若是,则将样本向量与meanshift向量之和作为新的样本向量,并返回步骤S1162;若否,则进行步骤S1166。预设阈值ε为预先设定且可根据实际情况调整,如果meanshift向量Mh大于ε,以xi+Mh作为新的起点,再次计算新的meanshift向量Mh。
[0039] 步骤S1166:将样本向量与meanshift向量之和作为样本向量的中心点。如果Mh小于或等于ε,则确认xi+Mh为中心点。
[0040] 针对每一个样本向量重复S1162至步骤S1166直至遍历所有样本向量,生成M个中心点。
[0041] 步骤S118:根据样本向量的中心点对样本向量进行聚类,得到聚类子集。将趋于同一中心点的样本向量划分为一类,形成L个聚类子集。
[0042] 步骤S120:计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本。通过构造混合高斯的软件缺陷分布函数,更好的刻画软件缺陷分布。然后利用缺陷分布与样本向量之间的关系对高斯参数进行计算,为进一步的伪缺陷生成奠定基础
[0043] 对每一个聚类子集进行高斯参数估计。假设第k个聚类子集为 样本数量为Mk。在其中一个实施例中,高斯参数包括均值和方差。如图4所示,步骤S120包括步骤S121至步骤S125。
[0044] 步骤S121:计算聚类子集的均值。具体为:
[0045]
[0046] 其中,μk表示均值,Mk为聚类子集中样本向量 的数量, 表示均值μk在第n维的度量值。
[0047] 步骤S122:计算聚类子集在每一维的方差。具体为:
[0048]
[0049] 其中, 表示聚类子集在第j维的方差,n为维数, 表示样本向量 在第j维的度量值, 表示均值μk在第j维的度量值。
[0050] 步骤S123:根据聚类子集在每一维的方差,对应生成聚类子集在每一维的随机数。
[0051] 具体地,对于第j维,根据高斯分布 生成随机数 具体取12个在[0,1]上均匀分布的随机变量 则 可以理解,在计算
随机数时采用的常数取值并不唯一,可根据实际情况调整。
[0052] 步骤S124:根据聚类子集在每一维的随机数得到聚类子集的随机向量。对于每一维根据步骤S123计算随机量后,得到随机向量,具体为:
[0053]
[0054] 其中,ΔΛk为随机向量, 为聚类子集在第n维的随机数。
[0055] 步骤S125:根据聚类子集的均值和随机向量得到伪缺陷样本。计算伪缺陷样本具体为:
[0056]
[0057] 其中,t为伪缺陷样本,μk为聚类子集的均值,ΔΛk为随机向量。
[0058] 针对每一个聚类子集重复上述步骤S121至步骤S125,得到L个伪缺陷样本,伪缺陷样本表征虚拟得到的存在缺陷的软件模块的样本向量,可设置各伪缺陷样本对应的缺陷标记为0。
[0059] 步骤S130:根据软件缺陷样本集和伪缺陷样本得到更新缺陷样本集。假设伪缺陷样本集为{ti|i=1,2,...,L},共有L个伪缺陷样本。将原始的软件缺陷样本集{xi|i=1,2,...,M}与伪缺陷样本集{ti|i=1,2,...,L}合并,得到更新缺陷样本集{x'i i=1,2,...,M+L}。
[0060] 步骤S140:根据更新缺陷样本集进行训练得到缺陷预测模型。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合。
[0061] 在其中一个实施例中,步骤S140为根据更新缺陷样本集训练基于支持向量机的缺陷预测模型,具体为:
[0062]
[0063] 其中,xi、xj分别为更新缺陷样本集中第i、j个样本向量,yi、yj分别为更新缺陷样本集中第i、j个样本向量所对应的缺陷标记,λi、λj分别表示更新缺陷样本集中第i、j个样本向量的权值;S.T.表示约束条件,C为常数,M+L表示更新缺陷样本集中样本向量的个数。本实施例中k(xi,xj)表示对xi和xj求点乘,在其他实施例中也可表示其他运算方式。
[0064] 表示 取最大值时λ的取值;分别将更新缺陷样本集中的样本向量xi、xj代入 在取最大值时确定样本向量
xi的权值λj的取值,最终得到更新缺陷样本集中所有样本向量的权值。
[0065] 步骤S150:根据缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果。利用缺陷预测模型对未知的待测软件模块进行缺陷预测,得到预测结果并输出,告知工作人员完成对待测软件模块的缺陷预测。
[0066] 在其中一个实施例中,如图5所示,步骤S150包括步骤S152和步骤S154。
[0067] 步骤S152:对待测软件模块进行静态度量,得到待测软件模块的样本向量。对待测软件模块进行静态度量的具体过程与步骤S114类似,在此不再赘述。
[0068] 步骤S154:根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测。具体为:
[0069]
[0070] 其中,g(x)表示待测软件模块的缺陷标记,sgn表示对 求整型变量,当 大于0时取1,当 小于或等于0时取0;xi为更
新缺陷样本集中第i个样本向量,yi为更新缺陷样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新缺陷样本集中第i个样本向量的权值,M+L表示更新缺陷样本集中样本向量的个数,x为待测软件模块的样本向量,b为常数,同样本实施例中K(xi,x)表示对xi和x求点乘。本实施例中进行整型变量的方式与步骤S112中存在缺陷则缺陷标记yi=1;若不存在缺陷则缺陷标记yi=0对应,具体可根据缺陷标记的定义进行调整。
[0071] 在实际应用中,由于软件失效的概率相比正常的概率较低,软件失效模块占软件模块总数相对较少。然而,当这些少量的软件失效模块被错误预测为无缺陷时,一旦投入实际使用,所带来的经济损失和社会损失是不可估量的。
[0072] 上述软件缺陷预测方法,对样本软件模块采用聚类的方式形成聚类子集,对聚类子集进行高斯分析计算得到高斯参数,然后根据高斯参数生成伪缺陷样本。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,提高了对软件缺陷的预测准确性。
[0073] 在其中一个实施例中,如图6所示,步骤S150之后,软件缺陷预测方法还包括步骤S160。
[0074] 步骤S160:在待测软件模块存在缺陷时输出报警信息。输出报警信息进行报警,提醒工作人员知晓,以便工作人员及时将存在缺陷的软件模块区分开,以便后续进行检修,提高操作便利性。具体可以是通过声光报警,可以是通过语音报警,还可以是通过显示屏显示预设的图片或文字等进行报警。
[0075] 本发明还提供了一种软件缺陷预测系统,如图7所示,包括聚类模块110、计算模块120、更新模块130、训练模块140和预测模块150。
[0076] 聚类模块110用于获取样本软件模块并进行聚类处理,得到聚类子集。样本软件模块指已知是否存在缺陷的软件模块,通过聚类处理对样本软件模块进行分类,得到聚类子集。在其中一个实施例中,如图8所示,聚类模块110包括标记单元112、度量单元114、中心点计算单元116和聚类单元118。
[0077] 标记单元112用于分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标记。例如,对第i个样本软件模块,i=1,2,...,M,若存在缺陷,则缺陷标记yi=1;若不存在缺陷,则缺陷标记yi=0。可以理解,各样本软件模块的标记方式以及得到的缺陷标记的取值并不唯一,在其他实施例中,也可以是令存在缺陷的样本软件模块的缺陷标记为0,令不存在缺陷的样本软件模块的缺陷标记为1等。
[0078] 度量单元114用于分别对样本软件模块进行静态度量,得到各样本软件模块的样本向量。对第i个样本软件模块,i=1,2,...,M,分别对各样本软件模块进行静态度量。本实施例中静态度量具体可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共n个度量值,并将这些度量值分别标记为xi1,xi2,...,xin,构成样本软件模块的样本向量xi={xi1,xi2,...,xin},所有的样本向量构成软件缺陷样本集{xi|i=1,2,...,M}。
[0079] 中心点计算单元116用于分别以各样本向量为起点,获取样本向量的中心点。分别将各样本向量作为起点,计算对应样本向量的中心点,以用作进行聚类处理的依据。进一步地,本实施例中采用MeanShift方法进行聚类,计算量小,可提高聚类分析速度。具体如图9所示,中心点计算单元116包括第一单元1162、第二单元1164和第三单元1166。
[0080] 第一单元1162用于以样本向量为起点,计算样本向量的meanshift向量。具体为:
[0081]
[0082] 其中,Mh表示样本向量x的meanshift向量,Sh(x)表示半径为常数h的高维球区域内,满足关系(x-xi)T(x-xi)<h2的K个样本向量的集合,xi为Sh(x)中的样本向量,T表示转置。
[0083] 第二单元1164用于判断样本向量的meanshift向量是否大于预设阈值。预设阈值ε为预先设定且可根据实际情况调整。
[0084] 第三单元1166用于在样本向量的meanshift向量大于预设阈值时,将样本向量与meanshift向量之和作为新的样本向量,控制第一单元1162再次计算meanshift向量;以及在样本向量的meanshift向量小于或等于预设阈值时,将样本向量与meanshift向量之和作为样本向量的中心点。
[0085] 如果meanshift向量Mh大于ε,以xi+Mh作为新的起点,控制第一单元1162再次计算新的meanshift向量Mh。如果Mh小于或等于ε,则确认xi+Mh为中心点。
[0086] 针对每一个样本向量重复进行计算直至遍历所有样本向量,生成M个中心点。
[0087] 聚类单元118用于根据样本向量的中心点对样本向量进行聚类,得到聚类子集。将趋于同一中心点的样本向量划分为一类,形成L个聚类子集。
[0088] 计算模块120用于计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本。通过构造混合高斯的软件缺陷分布函数,更好的刻画软件缺陷分布。然后利用缺陷分布与样本向量之间的关系对高斯参数进行计算,为进一步的伪缺陷生成奠定基础。
[0089] 对每一个聚类子集进行高斯参数估计。假设第k个聚类子集为 样本数量为Mk。在其中一个实施例中,高斯参数包括均值和方差。如图10所示,计算模块120包括均值计算单元121、方差计算单元122、随机数生成单元123、随机向量生成单元124和伪缺陷样本生成单元125。
[0090] 均值计算单元121用于计算聚类子集的均值。具体为:
[0091]
[0092] 其中,μk表示均值,Mk为聚类子集中样本向量 的数量, 表示均值μk在第n维的度量值。
[0093] 方差计算单元122用于计算聚类子集在每一维的方差。具体为:
[0094]
[0095] 其中, 表示聚类子集在第j维的方差,n为维数, 表示样本向量 在第j维的度量值, 表示均值μk在第j维的度量值。
[0096] 随机数生成单元123用于根据聚类子集在每一维的方差,对应生成聚类子集在每一维的随机数。
[0097] 具体地,对于第j维,根据高斯分布 生成随机数 具体取12个在[0,1]上均匀分布的随机变量 则 可以理解,在计算
随机数时采用的常数取值并不唯一,可根据实际情况调整。
[0098] 随机向量生成单元124用于根据聚类子集在每一维的随机数得到聚类子集的随机向量。对于每一维计算随机量后,得到随机向量,具体为:
[0099]
[0100] 其中,ΔΛk为随机向量, 为聚类子集在第n维的随机数。
[0101] 伪缺陷样本生成单元125用于根据所述聚类子集的均值和随机向量得到伪缺陷样本,具体为:
[0102]
[0103] 其中,t为伪缺陷样本,μk为聚类子集的均值,ΔΛk为随机向量。
[0104] 针对每一个聚类子集重复进行计算,得到L个伪缺陷样本,伪缺陷样本表征虚拟得到的存在缺陷的软件模块的样本向量,可设置各伪缺陷样本对应的缺陷标记为0。
[0105] 更新模块130用于根据软件缺陷样本集和伪缺陷样本得到更新缺陷样本集。假设伪缺陷样本集为{ti|i=1,2,...,L},共有L个伪缺陷样本。将原始的软件缺陷样本集{xi|i=1,2,...,M}与伪缺陷样本集{ti|i=1,2,...,L}合并,得到更新缺陷样本集{x'i i=1,2,...,M+L}。
[0106] 训练模块140用于根据更新缺陷样本集进行训练得到缺陷预测模型。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合。
[0107] 在其中一个实施例中,训练模块140根据更新缺陷样本集训练基于支持向量机的缺陷预测模型,具体为:
[0108]
[0109] 其中,xi、xj分别为更新缺陷样本集中第i、j个样本向量,yi、yj分别为更新缺陷样本集中第i、j个样本向量所对应的缺陷标记,λi、λj分别表示更新缺陷样本集中第i、j个样本向量的权值;S.T.表示约束条件,C为常数,M+L表示更新缺陷样本集中样本向量的个数。本实施例中k(xi,xj)表示对xi和xj求点乘,在其他实施例中也可表示其他运算方式。
[0110] 表示 取最大值时λ的取值;分别将更新缺陷样本集中的样本向量xi、xj代入 在取最大值时确定样本向量
xi的权值λj的取值,最终得到更新缺陷样本集中所有样本向量的权值。
[0111] 预测模块150用于根据缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果。利用缺陷预测模型对未知的待测软件模块进行缺陷预测,得到预测结果并输出,告知工作人员完成对待测软件模块的缺陷预测。
[0112] 在其中一个实施例中,如图11所示,预测模块150包括处理单元152和预测单元154。
[0113] 处理单元152用于对待测软件模块进行静态度量,得到待测软件模块的样本向量。对待测软件模块进行静态度量的具体过程与度量单元114的工作原理类似,在此不再赘述。
[0114] 预测单元154用于根据待测软件模块的样本向量以及缺陷预测模型对待测软件模块进行缺陷预测。具体为:
[0115]
[0116] 其中,g(x)表示待测软件模块的缺陷标记,sgn表示对 求整型变量,当 大于0时取1,当 小于或等于0时取0;xi为更
新缺陷样本集中第i个样本向量,yi为更新缺陷样本集中第i个样本向量所对应的缺陷标记,λi表示由缺陷预测模型得到的更新缺陷样本集中第i个样本向量的权值,M+L表示更新缺陷样本集中样本向量的个数,x为待测软件模块的样本向量,b为常数,同样本实施例中K(xi,x)表示对xi和x求点乘。本实施例中进行整型变量的方式与标记单元112存在缺陷则缺陷标记yi=1;若不存在缺陷则缺陷标记yi=0对应,具体可根据缺陷标记的定义进行调整。
[0117] 在实际应用中,由于软件失效的概率相比正常的概率较低,软件失效模块占软件模块总数相对较少。然而,当这些少量的软件失效模块被错误预测为无缺陷时,一旦投入实际使用,所带来的经济损失和社会损失是不可估量的。
[0118] 上述软件缺陷预测系统,对样本软件模块采用聚类的方式形成聚类子集,对聚类子集进行高斯分析计算得到高斯参数,然后根据高斯参数生成伪缺陷样本。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,提高了对软件缺陷的预测准确性。
[0119] 在其中一个实施例中,如图12所示,软件缺陷预测系统还可包括报警模块160。
[0120] 报警模块160用于在待测软件模块存在缺陷时输出报警信息。输出报警信息进行报警,提醒工作人员知晓,以便工作人员及时将存在缺陷的软件模块区分开,以便后续进行检修,提高操作便利性。具体可以是通过声光报警,可以是通过语音报警,还可以是通过显示屏显示预设的图片或文字等进行报警。
[0121] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0122] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈