故障处理 软件 需求_软件可靠性

在《装备软件质量和可靠性管理》一书中,对John Musa定义的软件可靠性工程过程进行了改进,给出了软件可靠性工程框架——Ruan模型,描述了覆盖软件全生命周期的各项可靠性工程活动。

故障处理 软件 需求_软件可靠性_第1张图片
软件可靠性工程模型-Ruan模型

由于篇幅原因,本文仅简单介绍一下可靠性设计、可靠性参数的内容(其实是因为本人是个二把刀,很多东西也一知半解的原因^_^)。


一、软件可靠性

在《GB/T 11457-2006 信息技术 软件工程术语》中,对软件可靠性的定义如下:

  • a)在规定条件下、在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在的缺陷的函数。系统输入将确定是否会遇到已存在的缺陷(如果有缺陷存在的话);
  • b)在规定的时间周期内所述条件下程序执行所要求的功能的能力。

在《GB/T 16260.1-2006 软件工程 产品质量 第1部分:质量模型》中,作为软件六大质量特性之一,软件可靠性的定义是:在指定条件下使用时,软件产品维持规定的性能级别的能力。

故障处理 软件 需求_软件可靠性_第2张图片
软件可靠性与硬件可靠性的比较

上图中对软件可靠性与硬件可靠性进行了比较,其中有两点要特别说明一下。首先是时间相关性,实际上软件的失效率虽然不是常数,但往往也不会随时间单调下降的(那只是个美好的愿望)。我们在后面介绍软件维护性时,会再说起这个话题;另一个是为什么说软件无标准件?在介绍了可靠性预计后,应该就好理解了。

二、软件失效机理

故障处理 软件 需求_软件可靠性_第3张图片
软件失效机理

在软件开发过程中的疏忽、失误或者错误,导致软件中存在了缺陷;在软件运行过程中,当缺陷被激活(软件运行于某一特定条件,俗称“踩雷”),使软件产生错误状态即出现了故障;而若无适当的处理措施(容错)对故障加以处理,最终使软件无法向用户提供其所期望的服务,即产生了失效。

换一个角度解释:错误是一种从外部输入的行为;缺陷和故障都属于软件内部不希望或不可接受的偏差,区别在于前者是静态的而后者是动态的;失效是一种向外部输出的状态。

因此,软件可靠性设计的实质就是减少缺陷和避免暴露,形象点说就是把门关起来&#x

你可能感兴趣的:(故障处理,软件,需求)