【技术实现步骤摘要】
一种软件缺陷预测方法
[0001]本专利技术涉及一种缺陷预测,具体是一种软件缺陷预测方法,属于软件工程
技术介绍
[0002]软件缺陷,根据ISO 9000的定义“未满足与预期或者规定用途有关的要求”,是导致软件系统出错、失效、崩溃甚至机毁人亡的潜在根源。软件缺陷预测技术是根据历史数据以及已经发现的缺陷等软件度量数据预测哪些模块有出错倾向,对软件开发者合理配置资源,从而降低研发成本、缩短产品开发周期和提高软件质量起到重要作用。
[0003]软件缺陷预测本质上是一个模式识别的过程,它的核心是分类,目前用于软件缺陷预测的方法有Bayes分类器、分类回归树、聚类分析、神经网络等。由于软件缺陷受到多种复杂度度量属性的综合作用,至今尚没有一种软件缺陷预测的通用的分类模型。
[0004]近年来,用支持向量机(SupportVector Machine,SVM)来实现基于分类问题的预测已经成为研究热点。支持向量机(SVM)是一种通用的前馈神经网络,其核心是经验风险最小化原则,有效地解决了小样本、高维数、非线性等学习问题,由Vapnik在1992年首次提出,可以用于模式分类和非线性回归,各国学者开始用支持向量机(SVM)进行软件可靠性方面的预测。国际上,Gray等人利用支持向量机(SVM)对软件缺陷进行预测取得了不错的效果;Mishra等人提出模糊支持向量机(SVM)用于软件可靠性预测;国内崔正斌等人提出了遗传优化支持向量机(SVM)软件可靠性模型;张艳等人将支持向量机(SVM)回归模型用于测控软件故障预测
【技术保护点】
【技术特征摘要】
1.一种软件缺陷预测方法,其特征在于,包括以下步骤:步骤1:数据预处理步骤1
‑
1:软件缺陷样本数据采集;步骤1
‑
2:对采集到的样本数据进行清理,形成信息决策表S∈U,C
RS
∪D>,其中,U为论域,表示全体样本,C
RS
为条件属性集,D为决策属性集;步骤1
‑
3:采用等频率间隔划分方法对信息决策表S<U,C
RS
∪D>进行离散化处理;步骤1
‑
4:采用粗糙集约简的算法对全体样本U进行属性约简得到样本集;步骤2:对属性约简后的样本集进行归一化,并将样本集划分为训练样本集和测试样本集两部分;步骤3:利用基于粒距动态改变惯性权重ω的改进粒子群算法搜索支持向量机模型的最优参数组合(C,σ),其中C为支持向量机的惩罚因子,σ为支持向量机的核参数;步骤4:基于最优参数组合(C,σ)重新建立并训练支持向量机模型;步骤5:对测试样本进行预测。2.根据权利要求1所述的一种软件缺陷预测方法,其特征在于,所述步骤1
‑
2中,对样本数据进行清理具体如下:对不平衡数据和脏数据预处理,删除全体样本中的“重复数据”和“矛盾数据”,信息决策表S<U,C
RS
∪D>是由随机提取的50%的有缺陷样本和50%的无缺陷样本组成。3.根据权利要求1或2所述的一种软件缺陷预测方法,其特征在于,所述步骤1
‑
3中等频率间隔划分方法具体是:将所有M个属性值按照顺序排列,然后划分成K个区间段,每个区间段包含属性的个数为M/K个。4.根据权利要求1或2所述的一种软件缺陷预测方法,其特征在于,所述步骤1
‑
4中,采用粗糙集约简的算法对全体样本U进行属性约简具体如下:由式I(B,D)=H(D)
‑
H(D|B),I(α
PSO
,D|B)=H(D|B)
‑
H(D|B∪{α
PSO
})求得然后令B=B∪{β},重复直到I(B,D)=I(C
RS
,D),此时B就是所求信息决策表S<U,C
RS
∪D>的一个约简;式中:B为初始值是信息决策表S<U,C
RS
∪D>中C
RS
关于D的核;α
PSO
∈C
RS
\B,H(Q|P)为知识Q相对于知识P的条件熵;α
PSO
为C
RS
\B的子集。5.根据权利要求4所述的一种软件缺陷预测方法,其特征在于,所述步骤2中对样本集进行归一化,利用公式(1)归一化到[
‑
1,1]区间:x
′
=(x
i
‑
x
min
)/(x
max
‑
x
min
)
ꢀꢀ
(1)式中:x
′
是归一化后的数据;x
i
是原始数据的输入特征;x
max
和x
min
分别是原始数据输入特征的最大值和最小值。6.根据权利要求4所述的一种软件...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。