接前一篇文章:软考 系统架构设计师系列知识点之软件可靠性基础知识(9)
所属章节:
第9章. 软件可靠性基础知识
第2节 软件可靠性建模
9.2.2 软件可靠性模型的建模方法
一个软件可靠性模型通常(但不是绝对)由以下几部分组成:
(1)模型假设
(2)性能度量
(3)参数估计方法
(4)数据要求
绝大多数的模型包含3个共同假设。这些假设至今主宰着软件可靠性建模的研究与发展,人们尚未找到克服这些假设局限性的有效方法。这3个假设为:
(1)代表性假设
(2)独立性假设
(3)相同性假设
人们常常通过估计或预测的方法来确定模型的参数。
- 估计
估计是通过对收集到的失效数据进行统计分析,利用一定的推导过程归纳出模型的参数。
- 预测
预测则是使用软件产品自身的属性和开发过程来确定模型的参数。这种方法可以在开始执行程序前完成。
确定了模型的参数后,就可以来表示失效过程的很多不同的特性。例如,大多数模型都会对如下的内容进行解析表达:
(1)任何时间点所经历的平均失效数;
(2)一段时间间隔内的平均失效数;
(3)任何时间点的失效强度;
(4)失效区间的概率分布。
在对将来的故障行为进行预测时,应保证模型参数的值不发生变化。如果在进行预测时发现引入了新的错误、或修复行为使新的故障不断发生,就应停止预测,并等足够多的故障出现后,再重新进行模型参数的估计。否则,这样的变化会因为增加问题的复杂度而使模型的实用性降低。
一般来说,软件可靠性模型是以再固定不变的运行环境中运行的不变的程序作为估测实体的。这也就是说,程序的代码和运行剖面都不发生变化,但它们往往总是要发生变化的,于是在这种情况下,就应该采取分段处理的方式来进行工作。因此,模型主要集中注意力于排错。但是,也有的模型具有能处理缓慢地引进错误情况的能力。
对一个已发行并正在运行的程序,应暂缓安装新的功能和对下一次发行的版本的修复。如果能保持一个不变的运行剖面,则程序的故障密度将显示为一个常数。
一般来说,一个好的软件可靠性模型增加了关于开发项目的交流,并对了解软件开发过程提供了一个共同工作的基础。它也增加了管理的透明度和其它令人感兴趣的东西。即使在特殊的情况之下,通过模型做出的预测并不是很准确,上面的这些优点也仍然是明显而有价值的。
要建立一个有用的软件可靠性模型必须有坚实的理论研究工作、有关工具的建造和实际工作经验的积累。通常这些工作需要许多人一年的工作量;相反,要应用一个好的软件可靠性模型,则要求以极少的项目资源就可以在实际工作中产生好的收益。
一个好的软件可靠性模型应该具有如下特性:
(1)基于可靠的假设。
(2)简单。
(3)计算一些有用的量。
(4)给出未来失效行为的好的映射。
(5)可广泛应用。
至此,“9.2.2 软件可靠性模型的建模方法”的全部内容就讲解完了。更多内容请看下回。