如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章软件可靠性度量§5.1引言软件可靠性工程处理以下问题:确定某过程能否提供满足可靠性要求的代码为过程改进提供度量预测软件维护阶段的失效率,确定软件维护工作量帮助进行安全性认证确定交付软件产品的时间或停止测试的时机估计下次故障的可能时间为软件更新或升级,标识需要重新设计的主要部件测定软件的可靠性软件可靠性可靠性是软件的13个质量因素中最关键、最重要的软件可靠性是指在规定时间和条件下软件无故障运行的概率,是系统功能或软件产品中存在的缺陷的函数软件故障产生的原因是软件缺陷,但缺陷并不一定导致故障的产生,高缺陷率的软件的可靠性不一定就差软件失效意味着软件运行中断或者无法完成所规定的任务几个值得关注的问题:软件的运行环境:软件可靠性与运行环境密切相关软件运行的时间间隔:商业软件需要较高的运行时间间隔(较长的运行寿命),而任务关键软件则需要在短时间内高效运行软件失效的时机是随机的,与硬件失效类似不同于软件的正确性,对于持续运行的软件其可靠性最终将归于零(以失效结束);但正确性是软件的特定的某次运行结果,要么为1,要么为05.1.2软件的缺陷、故障和失效缺陷(Error,错误):设计和构造进产品总数是不可预知的,只能估计缺陷分为已知和未知(新发现)的缺陷分为已发现的和未发现的已发现的缺陷包括已纠正的和未纠正的故障(Fault):运行结果错误故障是缺陷的表现形式,是由存在的缺陷产生的但缺陷并不一定导致故障,或者条件不具备,或者不会产生故障失效(Failure):系统不能完成所需要的功能而失败失效是故障在软件运行时所产生的后果软件质量度量与软件过程有什么关系?失效5.1.3软件失效软件失效是随机发生的描述失效的方法有三个:累计失效函数:即与某时间点相关的平均累计失效数失效率函数:用累计失效函数的变化率表示平均失效时间MTTF函数:对于一个时间段,表示若干相邻失效时间间隔的平均值;对某个时间点,表示到下次失效的期望时间软件失效率如果没有缺陷,软件失效率为0如果发现的缺陷能被及时、完全修复,失效率会趋向0实际上,发现的缺陷数会递增,而纠正一个缺陷会引入更多的缺陷,因而失效率会增加§5.2软件可靠性度量和建模5.2.2软件可靠性度量参数软件可靠性R(t)可定义为:在给定条件下,在时间[0,t]内,软件无故障运行的概率若用T表示软件无故障运行的时间间隔,F(t)为T的累积分布函数,则软件可靠性可表示为:R(t)=1-F(t)t≥0故障率函数λ(t)为:其中,f(t)为F(t)的函数密度,即:λ(t)Δt是在时间[0,t]内软件正常运行,在[t,t+Δt]内发生故障的条件概率,可得:密度函数f(t)、累积分布函数F(t)、可靠性函数R(t)和故障率函数λ(t)紧密相关,一般可由任一个惟一地确定另外三个,例如若λ(t)给定,则:根据f(t)或R(t)可计算平均失效时间函数MTTF,从而预测故障时间5.2.3软件可靠性度量模型指数分布密度函数为分布函数为故障率函数为(常数)具有指数寿命分布的软件产品(故障率为常数)没有老化现象,符合不需要维护的软件的运行情况Weibull分布Weibull是更常用的分布,在许多工程领域的可靠性分析中都广泛应用,如轴承磨损、河流泛滥等Weibull分布有两个参数α、β(β为1时变为指数函数)函数密度为:分布函数为:故障率函数为:β>1数据收集和分析是度量软件可靠性的最重要的先决条件,任何可靠性度量的有效性都与数据收集的有效性直接相关,数据收集过程必须有计划、有组织地进行与软件可靠性相关的数据包括:缺陷数据过程数据产品数据:如规模、功能、性能等5.3.1缺陷数据的收集5.3.2过程数据的收集§5.4软件的运行剖面5.4.1软件新系统的运行剖面运行剖面对软件可靠性工程极具价值:可为开发过程的资源分配提供参考,有利于提高生产率、可靠性和加快开发速度有利于测试,可确保常用功能获得更多测试有利于设计测试用例,以发现影响可靠性最大的故障根据功能的使用频度可确定开发的优先级使功能描述更清晰,便于交流有助于用户培训5.4.2软件运行剖面与可靠性的关系软件可靠性度量、评估和预测与软件的某个特定的运行剖面密切相关软件测试期间,为节省时间和成本,通常每个运行剖面只测试一次,因而不能反映每个剖面的出现概率,由此获得的可靠性数据也不能反映实际情况要将测试期间获得的可靠性值变换为实际值,可用以下公式:其中,λu是实际的用户环境下的故障密度,λT是测试值,C为测试压缩系数C的含义是:在覆盖全部输入空间条件下,使用期间所要求的执行时间与测试阶段所要求的执行时间之比C的计算公式为: