第9章 软件可靠性基础知识
核心知识点
1. 软件可靠性基本概念
- 定义:软件在规定的条件下和规定的时间内,完成规定功能的能力
- 与硬件可靠性区别:软件不会"磨损老化",故障主要是设计缺陷
- 三大属性:
- 规定的条件:运行环境、使用方法
- 规定的时间:时间区间
- 规定的功能:需求规格
2. 可靠性相关时间指标
- MTTF(Mean Time To Failure):平均无故障时间
- MTTR(Mean Time To Repair):平均修复时间
- MTBF(Mean Time Between Failures):平均故障间隔时间 = MTTF + MTTR
- MTTD(Mean Time To Detect):平均故障检测时间
- 考试角度:选择题常考这些指标的区分和计算
3. 可用性计算
- 公式:可用性 = MTTF / (MTTF + MTTR) = MTTF / MTBF
- 含义:可用性是系统正常工作时间占比
4. 软件可靠性模型
- 硬件可靠性:浴盆曲线(早期故障期→偶然故障期→损耗故障期)
- 软件可靠性模型分类:
- 故障率模型:Jelinski-Moranda模型、Goel-Okumoto模型
- 错误植入模型:Mills模型
- 基于输入域模型:Nelson模型
5. 软件可靠性管理
- 各阶段工作:
- 需求分析阶段:确定可靠性需求、制定可靠性计划
- 设计阶段:可靠性设计(容错、冗余)、可靠性分配
- 编码阶段:代码审查、单元测试
- 测试阶段:可靠性建模、可靠性测试、可靠性增长
- ⚠️ 可靠性建模不在需求分析阶段(2024上考)
6. 容错技术
- N版本程序设计:N个独立团队开发相同功能,投票表决
- 恢复块方法:主块+后备块,主块失败切换后备块
- 防卫式程序设计:输入检查、异常处理
7. 软件可靠性评价
- 评价过程:
- 确定可靠性目标
- 选择可靠性模型
- 收集故障数据
- 参数估计
- 可靠性预测
- 验证达标情况
真题考点映射
| 真题 | 考点 | 章节 | |------|------|------| | 2024上选择题第43题 | 可靠性建模不在需求分析阶段 | 09-可靠性 | | 2024上选择题第56题 | MTTD是平均故障检测时间 | 09-可靠性 | | 2023下论文 | 软件可靠性评价 | 09-可靠性 | | 2024上选择题第41题 | 可用性=正常工作时间占比 | 09-可靠性 |
易错点/陷阱
- 可靠性建模不在需求分析阶段——常作为错误选项
- MTBF = MTTF + MTTR,不要混淆
- 软件不会"磨损老化",不要和硬件浴盆曲线混淆
- 可用性计算公式中分子是MTTF不是MTBF
记忆口诀
- 三个时间指标:TF故障发生、TR故障修复、BF故障间隔(BF=TF+TR)
- 可用性:TF/(TF+TR)
- 容错方法:N版投票、恢复块切换、防卫式检查