软件缺陷预测方法及装置制造方法及图纸

技术编号:15762882 阅读:73 留言:0更新日期:2017-07-05 23:14
本发明专利技术提供一种软件缺陷预测方法及装置,对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,样本缺陷子集包括有缺陷子集和无缺陷子集;将映射缺陷向量输入到经过训练的预测模型中,通过经过训练的预测模型,将映射缺陷向量与样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为待预测软件对应的缺陷预测结果,如此,可以实现软件缺陷数据的优化去噪,保证了数据分布的合理性,从而,可以得到准确性更高的预测结果。

Software defect prediction method and device

The invention provides a software defect prediction method and device, to forecast the software software module source code static measurement, construction defects defects can be obtained by vector; vector mapping vector projection matrix is mapped to the preset defects in geometric space; presupposition projection matrix is obtained by training in the training process prediction model, the sample defect a subset of samples make the vector set relative entropy distance geometric mean maximum projection matrix, the sample defects include defective subset subset and defect free subsets; mapping vector input to the defect prediction model after training, through training the prediction model, the mapping vector and the sample subset of the defect defect of Mahalanobis distance sample defect subset the smallest corresponding categories, as prediction software defects to be corresponding to the predicted results, so, can The optimization of software defect data is carried out to ensure the rationality of data distribution, so that higher accuracy prediction results can be obtained.

【技术实现步骤摘要】
软件缺陷预测方法及装置
本专利技术涉及软件质量
,尤其涉及一种软件缺陷预测方法及装置。
技术介绍
随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,良好的软件质量控制和预测机制,不但可以帮助企业开发出高质量的软件产品,减少产品生产和维护成本,而且在提高客户满意度,建立良好的企业形象和增强企业在市场上的竞争力等方面都有着重要的意义。另外,软件系统的质量问题极有可能会导致严重后果。因此,软件质量越来越受重视,如何预测软件质量及提高软件质量成为当今研究的热点之一。软件缺陷预测是通过统计学方法对与软件质量有关的数据进行处理从而对软件模块是否存在缺陷进行估计,这样就能在软件开发的早期根据软件的有关数据,对软件的质量进行预测和控制,从而预测出软件可能出现的质量问题,进而提高和控制软件的质量。传统的软件缺陷预测方法主要包括基于统计学方法的预测模型和基于神经网络的预测模型等。其中,神经网络由于其训练不需要完全知道系统的具体细节,并且具有良好的非线性映射逼近性能和自学习能力,在软件缺陷预测中得到了广泛应用。然而在实际应用中,由于软件失效的概率相比正常的概率较低,实际得到的软件缺陷分布基本上都是不均衡的,软件失效模块占软件模块总数相对较少。并且,由于软件缺陷预测模型输入的各种度量数据的计算方法不同,取值范围和含义也各不相同,会导致质量评价方法产生偏向性,这些因素都会严重影响软件缺陷预测模型的准确性。当这些软件失效模块被错误预测为无缺陷时,一旦投入实际使用,所带来的经济损失和社会损失是不可估量的。
技术实现思路
基于此,有必要提供一种提高软件缺陷预测准确性的软件缺陷预测方法及装置。一种软件缺陷预测方法,包括:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。一种软件缺陷预测装置,包括:缺陷向量构成模块,用于对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;缺陷向量映射模块,用于将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;预测结果确定模块,用于将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。上述软件缺陷预测方法及装置,对待预测软件的缺陷向量进行几何空间映射,所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集。如此可以实现软件缺陷数据的优化去噪,保证了数据分布的合理性,因此将映射得到的映射缺陷向量输入至经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果,从而,可以得到准确性更高的待预测软件对应的预测结果。附图说明图1为第一个实施例的软件缺陷预测方法的流程图;图2为第二个实施例的软件缺陷预测方法的流程图;图3为第三个实施例的软件缺陷预测方法的流程图;图4为第一个实施例的软件缺陷预测装置的结构图;图5为第二个实施例的软件缺陷预测装置的结构图;图6为第三个实施例的软件缺陷预测装置的结构图。具体实施方式为了便于理解本专利技术,下面将参照相关附图对本专利技术进行更全面的描述。附图中给出了本专利技术的较佳的实施例。但是,本专利技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本专利技术的公开内容的理解更加透彻全面。除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本专利技术。本文所使用的术语“或/及”包括一个或多个相关的所列项目的任意的和所有的组合。请参阅图1,一实施例的软件缺陷预测方法,包括:S110:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量。对待预测软件的各个软件模块的源代码进行静态度量,从而构建待预测的缺陷向量。其中,对各个软件模块的源代码进行静态度量的方式包括Halstead度量(霍尔斯特德度量)、MaCabe度量(麦克比度量)、Khoshgoftaar度量(一种基于神经网络模型的度量方法)和CK度量(一种面向对象的度量方法)等。S130:将缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,样本缺陷子集包括有缺陷子集和无缺陷子集。S150:将映射缺陷向量输入到经过训练的预测模型中,通过经过训练的预测模型,将映射缺陷向量与样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为待预测软件对应的缺陷预测结果。上述软件缺陷预测方法,对待预测软件的缺陷向量进行几何空间映射,预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,样本缺陷子集包括有缺陷子集和无缺陷子集。如此可以实现软件缺陷数据的优化去噪,保证了数据分布的合理性,因此将映射得到的映射缺陷向量输入至经过训练的预测模型中,通过经过训练的预测模型,将映射缺陷向量与样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为待预测软件对应的缺陷预测结果,从而,可以得到准确性更高的待预测软件对应的预测结果。请参阅图2,在其中一个实施例中,将缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量的步骤之前,还包括:S121:对已知的样本软件的软件模块源代码进行静态度量,构成样本向量,各样本向量组成样本向量集。假设对于样本软件中已知的N个模块,其中,无缺陷模块N1个,有缺陷模块N2个,N1+N2=N。在其中一个具体实施例中,首先,对每一个模块i,i=1,2,...,N,分别对其是否存在缺陷进行标记,得到缺陷标记flagi。其中,flagi=1,表示该模块存在缺陷;flagi=0,表示该模块没有缺陷。然后,对每一个模块i,i=1,2,...,N,分别对其源代码进行静态度量,假设共有d个具体的度量值,可以将这些度量数据分别标记为xi1,xi2,...,xid,则这些度量数据构成模块i的样本向量xi=[xi1,xi2,...,xid]。最后,对于每一个样本向量xi,根据有无缺陷的缺陷标记flagi,将样本向量集划分为样本缺陷子集,本文档来自技高网
...
软件缺陷预测方法及装置

【技术保护点】
一种软件缺陷预测方法,其特征在于,包括:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。

【技术特征摘要】
1.一种软件缺陷预测方法,其特征在于,包括:对待预测软件的软件模块源代码进行静态度量,构建缺陷向量;将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量;所述预设投影矩阵为在训练获得经过训练的预测模型的过程中,使得样本向量集的样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵,所述样本缺陷子集包括有缺陷子集和无缺陷子集;将所述映射缺陷向量输入到所述经过训练的预测模型中,通过所述经过训练的预测模型,将所述映射缺陷向量与所述样本缺陷子集的马氏距离最小的样本缺陷子集所对应的类别,作为所述待预测软件对应的缺陷预测结果。2.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述将所述缺陷向量通过预设投影矩阵映射到几何空间中得到映射缺陷向量的步骤之前,还包括:对已知的样本软件的软件模块源代码进行静态度量,构成样本向量,各所述样本向量组成样本向量集;根据所述样本向量集的样本缺陷子集确定所述样本缺陷子集的协方差矩阵;根据所述样本缺陷子集的协方差矩阵,将所述样本缺陷子集之间的相对熵距离的几何均值最大的投影矩阵确定为所述预设投影矩阵。3.根据权利要求2所述的软件缺陷预测方法,其特征在于,所述将所述映射缺陷向量输入到所述经过训练的预测模型之前,还包括:将所述样本向量集通过所述预设投影矩阵映射到几何空间中,得到映射向量集;根据所述样本缺陷子集对应的所述映射向量集的映射缺陷子集确定映射后的所述样本缺陷子集的协方差矩阵;对映射后的所述样本缺陷子集的协方差矩阵进行特征分解,确定映射后的所述样本缺陷子集的协方差矩阵的特征值及特征向量;根据所述映射后的所述样本缺陷子集的协方差矩阵的特征值及特征向量对预测模型进行特征分解,得到所述经过训练的预测模型。4.根据权利要求3所述的软件缺陷预测方法,其特征在于,所述在经过训练的预测模型中所述映射缺陷向量与所述样本缺陷子集的马氏距离表示为:Dc(y,Σc)表示所述映射缺陷向量与所述样本缺陷子集的马氏距离;Λc=diag[λc1,...,λcd],其中,λcj,j=1,...,d是映射后的所述样本缺陷子集的协方差矩阵的特征值;其中,j=1,...,d是映射后的所述样本缺陷子集的协方差矩阵的特征向量;d为对所述软件模块源代码进行静态度量时的度量值的数量;为所述映射缺陷子集的均值;y为所述映射缺陷向量。5.根据权利要求1所述的软件缺陷预测方法,其特征在于,所述预设投影矩阵表示为:其中,W*为预设投影矩阵,C为所述样本向量集的所述样本缺陷子集的个数;DW(pc1||pc2)为在几何空间下的两个所述样本缺陷子集之间的相对熵距离;qc,表示为样本缺陷子集{xci}的先验概率,c为c1、c2、m或n,c1、c2、m、n的取值范围为1至C;α为权重因子。6.一种软件缺陷预测装置,其特征在于,包括:缺...

【专利技术属性】
技术研发人员:高岩杨春晖李冬
申请(专利权)人:中国电子产品可靠性与环境试验研究所
类型:发明
国别省市:广东,44

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

1