《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-01-软件可靠性基本概念

1. 软件可靠性的概述

1.1 定义

  • 定义:在规定的时间周期内,规定的条件下,程序执行所要求的功能的能力

下边对高亮部分详细阐述:

1.1.1 规定的时间

  • 规定时间的量度:运行时间
  • 运行时间:
    • 包括软件系统运行后工作挂起的累计时间
    • 属于随机变量

由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量

1.1.2 规定的条件

  • 指软件的运行环境。

    • 包括:硬件环境、软件支持环境、确定的软件输入域
  • 主要是描述:

    • 软件系统运行时计算机的配置情况及对输入数据的要求
    • 并假定其他一切因素都是理想的
  • 可有效地判断软件失效的责任在用户方还是开发方

  • 软件运行剖面(规定条件的另一种描述)

    • 对系统使用条件的定义,即,关于软件可靠性描述中的规定条件

1.1.3 所要求的功能

  • 功能不同导致可靠性不同的原因:
    功能不同 —> 调用子模块不同 —> 可靠性不同

1.2 定义的特点和意义

  • 其定义描述的特点:
    • 内在缺陷外在失效来描述可靠性
    • 概率的方法去描述可靠性
  • 意义:使人们对软件可靠性进行量化评估成为可能

1.3 注意点

  • 描述的软件对象必须明确(指明界限)
  • 软件失效必须明确定义
  • 必须假设硬件无故障、软件有关变量的输入值正确
  • 规定的时间必须指明时间基准(见2.1)

2. 软件可靠性的定量描述

2.1 规定时间

  • 系统处于稳定工作状态时,可根据经验,按比例换算以下三种时间基准

2.1.1 自然时间

  • 概念
    • 即我们日历、时钟的显示的时间
    • 如:9:00 开始 17:30 结束

2.1.2 运行时间

  • 概念:
    • 软件从启动到结束的时间
    • 如,软件运行了8 小时

执行时间

  • 概念
    • 软件运行过程中,中央处理器 (CPU) 执行程序指令所用的时间总和
  • 该方法度量软件可靠性最为准确
    • 使用方法:系统处于稳定工作状态时,根据经验,按比例换算

2.2 失效概率 F(t)

  • 概述:

    • 从软件运行开始,到某一时刻 t为止,出现失效的概率
    • 可以看作是关于软件运行时间的一个随机函数
    • 表示:F(t)
  • 特征

    • F(0)=0:软件运行初始时刻失效概率为0
    • F(t) 在时间域(0, + ∞ +\infty +) 上是单调递增的
    • F( + ∞ +\infty +)=1:失效概率在运行时间不断增长时趋向于1

    即,任何软件都存在缺陷

  • 为了简化分析,把F(t) 看作关于时间 t 的一个连续函数,并且可导。

  • 替代:可用模糊数学中的可能性替代

2.3 可靠度 R(t)

  • 概述:

    • 软件系统在规定的条件下、规定的时间内不发生失效的概率
    • 直接反映软件可靠性的度量指标
    • 是一种动态度量
  • 工式:R(t)=1-F(t)

  • 特征:

    • R(0)=1
    • R( + ∞ +\infty +)=0
  • 另一中表述:表示软件成功执行一个回合的概率

  • 软件回合 (Run):

    • 软件在规定环境下的一个基本执行过程

    即,定一组输入数据,到软件给定相应的输出数据这一过程

    • 是软件运行最小的、不可分的执行单位

2.4 失效强度 f(t)

  • 概述:(公式需要和书上对比
    • Failure Intensity
    • 单位时间软件系统出现失效的概率
    • 表示:f(t)
  • 公式:
    在这里插入图片描述

说明:- t 到 t+△t时刻,软件系统出现失效的平均概率为 (F(t+△t)-f(t))/△t, 当△t趋于很小时,就表现为 t时刻的失效强度

2.5 平均失效前时间(MTTF)

  • 概念:

    • Mean Time To Failure
    • 定义为从t=0时到故障发生时系统的持续运行时间的值
  • 公式:
    在这里插入图片描述

  • 不可修复系统的系统平均寿命:系统在失效前的平均时间

2.6 平均恢复前时间 (MTTR)

  • 概念
    • Mean Time To Restoration
    • 出现故障到修复成功的时间
    • 包括:
      • 确认失效发生所必需的时间
      • 记录所有任务的时间
      • 将设备重新投入使用的时间
  • MTTR越短表示易恢复性越好

2.7 平均故障间隔时间(MTBF)

  • 概念:
    • Mean Time Between Failures
    • 失效或维护中所需的平均时间
    • 包括:
      • 故障时间
      • 检测和维护设备的时间
  • 特点:MTBF=MTTF+MTTR

3. 可靠性目标

  • 对软件运行的影响程度不仅取决于软件失效发生的概率,还和软件失效的严重程度有很大关系

3.1 失效严重程度类

  • 概念:
    • Failure Severity Class
    • 对用户具有相同程度影响的失效集合

3.1.1 按对成本影响分类

  • 其影响包括:

    • 失效引起的额外运行成本
    • 修复和恢复成本
    • 现有或潜在的业务机会的损失等
  • 示例
    在这里插入图片描述

3.1.2 按对系统能力的影响分类

  • 其影响包括:
    • 关键数据的损失
    • 系统异常退出、系统崩溃
    • 导致用户操作无效等
  • 示例

在这里插入图片描述

3.2 可靠性目标

  • 概述:

    • 指客户对软件性能满意程度的期望
    • 描述:一般用可靠度、故障强度、平均失效时间等指标
    • 确定可靠性目标:失效严重程度 + 失效强度
  • 示例(可靠性目标参考表)

失效严重程度可靠性要求(%)失效强度平均无失效时间
199.999910-6114年
299.9910-4417天
39910-14天
49019小时

4. 可靠性测试

4.1 可靠性测试的意义

  • 软件失效可能造成灾难性的后果

  • 软件的失效在整个计算机系统失效中的比例较高

    • 原因:
    • 软件系统的复杂性
    • 无法用全路径方式测试
    • 计算机系统的失效中,有80%和软件有关
  • 4.3 软件可靠性技术不成熟

  • 4.4 软件可靠性问题造成软件费用增长

    软件可靠性问题是造成费用增长的主要原因之一

  • 4.5 系统对软件的依赖性增强,使得可靠性测试更重要

4.2 广义的可靠性测试

  • 概述:
    • 指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和评价等一系列手段对软件系统实施的一种测试
  • 完整过程:

在这里插入图片描述

4.3 狭义的软件可靠性测试

  • 概述:

    • 即,我们通常所说的可靠性测试(Software Reliability Test)
    • 概念:
      • 指为了获取可靠性数据
      • 针对软件的某个重要质量特性,按预先确定的测试用例
      • 在软件的预期使用环境中,对软件实施的一种测试
    • 是面向缺陷的测试
  • 目的

    • 发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷
    • 为软件的使用和维护提供可靠性数据
    • 确认软件是否达到可靠性的定量要求

在这里插入图片描述

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值