1.软件可靠性定义
软件可靠性(Software Reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供的服务,软件产品所必须具备的功能。
2.软件可靠性的定量描述
2.1规定时间
对于“规定时间”有3种概念:一种是自然时间,也就是日历时间,指人们日常计时用的年、月、周、日等自然流逝的时间段;一种是运行时间,指软件从启动开始,到运行结束的时间段;最后一种是执行时间,指软件运行过程中,中央处理器(CPU)执行程序指令所用的时间总和。在这三种时间中,人们使用执行时间来度量软件的可靠性最为准确,效果也最好。
2.2失效概率
从软件运行开始,到某一时刻t为止,出现失效的概率可以看作是关于软件运行时间的一个随机函数,用F(t)表示。函数有如下特征:
(1)F(0)=0,即软件运行初始时刻失效概率为0;
(2)F(t)在时间域(0,+∞)上是单调递增的。
(3)F(+∞)=1,即失效概率在运行时间不断增长时趋向于1,这也和“任何软件都存在缺陷”的思想相吻合。
2.3可靠度
人们用来表示可靠性最为直接的方式就是可靠度,根据可靠性的定义,可靠度就是软件系统在规定的条件下、规定的时间内不发生失效的概率。如果用F(t)来表示到t时刻止,软件不出现失效的概率,则可靠度的公式为R(t)=1-F(t)。同样,我们知道R(0)=1,R(+∞)=0。
2.4失效强度
失效强度(Failure Intensity)的物理解释就是单位时间软件系统出现失效的概率。在t时刻到t+Δt时刻之间软件系统的平均概率为(F(t+Δt)-F(t))/Δt),则当Δt趋于很小时,就表现为t时刻的失效强度。用f(t)表示失效强度函数,则
2.5平均失效前时间
可靠度为R(t)的系统平均失效前时间(Mean Time To Failure,MTTF)定义为从t=0时到故障发生时系统的持续运行时间的期望值:
对于不可修复系统,系统的平均寿命指系统发生失效前的平均工作(或存储)时间或工作次数,也称为系统在失效前的平均时间。MTTF的长短,通常与使用周期中的产品有关,其中不包括老化失效。
2.6平均恢复前时间
平均恢复前时间(Mean Time To Restoration,MTTR)是随机变量恢复时间的期望值,就是从出现故障到修复成功中间的这段时间,它包括确认失效发生所必需的时间,记录所有任务的时间,还有将设备重新投入使用的时间。MTTR越短表示易恢复性越好。
2.7平均故障间隔时间
MTBF(Mean Time Between Failures,平均故障间隔时间)定义为:失效或维护中所需的平均时间,包括故障时间以及检测和维护设备的时间。
对于可靠度服从指数分布的系统,从任一时刻到达故障的期望时间都是相等的,因此有: