论文部分内容阅读
本文对软件可靠性的影响因素、失效机理、评估模型以及必要的数学基础进行了研究。总结了在工业上应用较为广泛的经典软件可靠性增长模型。在数量众多的软件可靠性评估模型中,概率类模型常常存在假设条件难以满足的弊端,Bayesian网络模型存在先验知识获取困难的问题,人工神经网络存在着结构难于确定、拟合不足或过拟合及容易陷入局部极小点等问题。为了使对软件可靠性的分析、评估更加精确和智能化,本文论述了软件可靠性的有关理论和支持向量机理论,在此基础上提出了两种可靠性模型:(1)基于支持向量回归的软件可靠性增长模型SVRSRG(SVR-based softwarereliability growth model)。SVRSRG基于支持向量回归的统计学习理论,避免了上述问题。利用一个实际软件项目的故障统计数据集做为实验对象,阐述了SVRSRG模型的建立过程,核函数的选择问题,用于参数估计的交叉验证和网格搜索(Cross-validation &Grid-search)法。提出了SVRSRG模型算法步骤及实现方法。为了评价基于SVR的软件可靠性增长模型的吻合度(goodness of fit),共实现了三个模型:Goel-Okumoto模型、Jelinski-Moranda模型以及本文提出的基于SVR的软件可靠性增长模型SVRSRG,分别对其实验结果进行分析和对比。利用两个评价指标MSE和SCC对上述三个软件可靠性增长模型进行对比,对SVRSRG模型进行评价。结果显示SVRSRG模型具有良好的预测能力,验证了本文方法的有效性。(2)基于支持向量机的软件可靠性早期预测模型。大量研究表明,软件复杂性与软件质量、开发成本和生产效率等方面密切相关,软件复杂性是导致软件错误的主要原因,当软件复杂性超过某一限度值时,软件中的错误就会急剧上升,甚至引起软件开发失败。本文对软件复杂性和可靠性之间的关系进行了研究,复杂度包括:总代码行、总字符数、总注释行、注释字符数、代码总字符数、Halstead程序长度估计、Jensen程序长度估计、McCabe圈复杂度、Belady带宽度量等等。建立了基于支持向量机的软件可靠性早期预测模型。选取MIS数据集做为实验对象,为了消除相关性影响,首先用PCA方法进行预处理,多次测试结果显示,预测准确率可以达到大约89%左右。验证了基于支持向量机的软件可靠性早期预测模型的可行性。