软考高级系统架构设计师系列之:可靠性设计
一、可靠性的主要影响因素
- 运行环境
- 软件的可靠性投入
- 软件的开发方法和开发环境
- 软件规模
- 软件内部结构
二、可靠性设计需要遵循的原则
-
- 软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
-
- 软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
-
- 软件可靠性设计应确定软件的可靠性目标,不能无限扩大,并且排在功能、用户需求、开发费用之后考虑。
三、可靠性设计技术
可靠性设计技术:
一般来说,被认可的且具有应用前景的软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。
1.容错设计技术
对于软件失效后果特别严重的场合,如尤机的飞行控制系统、空中交通管制系统及核反应堆安全控制系统等,可采用容错设计方法。常用的软件容错技术主要有恢复块设计、N版本程序设计和冗余设计三种方法。
- [ ] (1)恢复块设计
恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本,每一时刻有一个文本处于运行状态。一旦该文本出现故障,则用备份文本加以替换,从而构成“动态冗余”。
- [ ] (2)N版本程序设计
N版本程序的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果&#