接前一篇文章:软考 系统架构设计师系列知识点之软件可靠性基础知识(10)
所属章节:
第9章. 软件可靠性基础知识
第2节 软件可靠性建模
9.2.3 软件可靠性模型模型分类
一个有效的软件可靠性模型应尽可能地将前文所述的因素在软件可靠性建模时加以考虑,尽可能简明地反映出来。
自1972年第一个软件可靠性分析模型发表的30多年来,见之于文献的软件可靠性统计分析模型将近百种。这些可靠性模型大致分为以下10类:
(1)种子法模型。
(2)失效率类模型。
(3)曲线拟合模型。
(4)可靠性增长模型。
(5)程序结构分析模型。
(6)输入域分类模型。
(7)执行路径分析方法模型。
(8)非齐次泊松过程模型。
(9)马尔可夫过程模型。
(10)贝叶斯分析模型。
下面分别对这些模型进行简单介绍。
1. 种子法模型
种子法模型利用捕获—再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。其优点是简便易行,缺点是诱导错误的“种子”与实际的原始错误之间的类比性估量困难。
2. 失效概率类模型
失效概率类模型用来研究程序的失效率,主要有下列内容:
- Jelinski-Moranda的De-eutrophication模型
- Jelinski-Moranda的几何De-eutrophication模型
- Schick-Wolverton模型
- 改进的Schick-Wolverton模型
- Moranda的几何泊松模型
- Goal和Okumoto不完全排错模型
3. 曲线拟合类模型
曲线拟合类模型用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间、包括参数方法和非参数方法两种。
4. 可靠性增长模型
这类模型预测软件在检测过程中的可靠性改进,用增长函数来描述软件的改进过程。这类模型如下:
- Duane模型
- Weibull模型
- Wagoner的Weibull改进
- Yamada和Osaki的逻辑增长曲线
- Gompertz的增长曲线
5. 程序结构分析模型
程序结构分析模型是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。网络中的每个结点代表一个子程序或一个模块,网络中的每一有向弧代表模块间的程度执行顺序。假定各结点的可靠性是相互独立的,通过对每个结点可靠性、结点间转换的可靠性和网络在结点间的转换概率,得出该持续程序的整体可靠性。这类模型如下:
- Littlewood马尔可夫结构模型
- Cheung的面向用户的马尔可夫模型
更多内容请看下回。