目录 1
第1章 数字计算系统可信性及属性 1
1.1 可信性定义及问题的提出 1
1.2 影响可信性计算的主要因素 2
1.2.1 失效的定义及后果 3
1.2.2 故障的定义及性质 4
1.2.3 错误的定义及传递性 6
1.3 可信性的评估测度和提高可信性的措施 9
1.4 小结 10
1.5 思考题 10
参考文献 10
第2章 故障及故障模型 11
2.1 故障模型及分类 11
2.2 硬件结构类/功能类故障模型 13
2.2.1 逻辑电路的结构类/功能类故障模型 14
2.2.2 CMOS门电路的结构类/功能类故障模型 14
2.3 软件结构类/功能类故障模型 15
2.3.1 软件结构类故障模型 15
2.3.2 软件功能类故障模型 16
2.3.3 软件功能类故障的一个实例 18
2.4 故障模型的建立标准 19
2.4.1 建立故障模型的标准 20
2.4.2 故障模型的不足 21
2.5 小结 22
2.6 思考题 22
参考文献 23
3.1.1 可信性的数量测度 24
3.1 数字系统的可信性测度 24
第3章 可信性测度和评估 24
3.1.2 可信性的质量测度 25
3.2 硬件系统的可靠性及其测度 25
3.2.1 可靠性函数和失效函数 26
3.2.2 MTTF,MTTR和MTBF的定义 30
3.3 组合系统的可靠性 33
3.3.1 串行系统的可靠性 33
3.3.2 并行系统的可靠性 34
3.3.3 串并/并串系统的可靠性 35
3.3.4 非串行/非并行系统的可靠性 37
3.4 软件系统可靠性及其测度 39
3.5 可测性及其测度 39
3.6.1 维护及其定义 40
3.6 可维护性及其测度 40
3.6.2 可维护性及其定义 41
3.7 可用性及其测度 43
3.8 安全性及其测度 45
3.9 保密性及其测度 46
3.10 可信性的综合评价标准 47
3.11 小结 48
3.12 思考题 49
参考文献 50
第4章 软件可靠性及其测度 53
4.1 软件可靠性的重要意义 53
4.2 软件开发的生命周期 55
4.2.1 启动和结束阶段 56
4.2.2 需求条件和规格说明 56
4.2.3 建立原型样本 57
4.2.4 设计 58
4.2.5 编程 59
4.2.6 测试 60
4.3 软件可靠性及其测度 62
4.4 软件错误及其对软件可靠性模型的影响 63
4.4.1 软件错误与排错曲线 64
4.4.2 软件错误与排错模型 66
4.5 软件可靠性模型 70
4.5.1 常数排错率的软件可靠性模型 70
4.5.2 线性递减型排错率的软件可靠性模型 73
4.5.3 指数递减型排错率的软件可靠性模型 75
4.6 软件可靠性模型中常数估算 77
4.6.1 常数型排错率的参数估算方法 78
4.6.2 线性递减型排错率的参数估算方法 79
4.6.3 指数递减型排错率的参数估算方法 80
4.7 小结 80
4.8 思考题 81
参考文献 82
第5章 冗余技术及其应用 85
5.1 功能性冗余 85
5.1.1 静态功能性冗余 85
5.1.2 动态功能性冗余 88
5.2 结构性冗余 89
5.2.1 软硬件系统的结构性冗余 89
5.2.2 主动冗余 90
5.2.3 被动冗余 95
5.2.4 混合冗余 100
5.2.5 时间冗余 110
5.3 编码技术及其应用 111
5.3.1 检错编码和纠错编码的基本原理 112
5.3.2 线性分组码 116
5.3.3 汉明纠一检二编码 120
5.3.4 萧纠一检二编码 124
5.4 小结 126
5.5 思考题 126
参考文献 128
第6章 避错技术 132
6.1 规格说明阶段应用的避错技术 133
6.1.1 确信技术 134
6.1.2 验证技术 135
6.2 在设计阶段应用的避错技术 138
6.2.1 故障预防——设计过程中的确信技术 139
6.2.2 故障检测——设计过程中的验证技术 141
6.3 设计阶段应用的功能测试 147
6.4 小结 149
6.5 思考题 149
参考文献 149
第7章 防错技术 151
7.1 故障防止应注意的事项 151
7.2 防止故障的措施 152
7.2.1 硬件系统采取的防止故障措施 152
7.2.2 软件系统采取的防止故障措施 154
7.3 小结 157
7.4 思考题 157
参考文献 157
8.1 测试的基本概念 158
第8章 硬件系统排错技术 158
8.1.1 产品测试 159
8.1.2 维护性测试 160
8.2 逻辑测试的基本概念 165
8.2.1 逻辑测试的基本类型 165
8.2.2 逻辑测试中测试生成的基本参数 167
8.2.3 逻辑测试的基本分类 167
8.2.4 逻辑测试的实施步骤 169
8.3 组合电路的测试和测试生成 169
8.3.1 布尔差分 170
8.3.2 D算法 178
8.3.3 九值算法 186
8.3.4 PODEM算法 188
8.3.5 可控性和可观察性 191
8.3.6 FAN算法 194
8.3.7 面向测试码的Poage算法及压缩算法 197
8.4 时序逻辑电路的测试生成 202
8.4.1 时序电路测试的基本概念 203
8.4.2 状态表验证和I/O校验序列 204
8.4.3 利用鉴别序列生成的校验序列 206
8.4.4 无鉴别序列时序电路的校验序列 211
8.5 桥接故障模型及其测试生成 214
8.5.1 桥接故障的类型 214
8.5.2 非反馈型桥接故障的测试生成方法 215
8.5.3 反馈型桥接故障的测试生成 216
8.6 小结 219
8.7 思考题 219
参考文献 222
9.1 软件测试的故障覆盖率 225
第9章 软件系统排错技术 225
9.2 语句测试 227
9.3 分支和路径测试 228
9.4 条件和决策测试 229
9.5 变异测试法 230
9.5.1 变异测试基本概念 230
9.5.2 变异测试的实施 231
9.6 软件内建自测试的基本思想及实施框架 233
9.7 常用的测试用例生成方法简介 234
9.7.1 黑盒测试用例生成方法 234
9.7.2 白盒测试的测试用例生成方法 234
9.7.3 二叉化基本路径测试的分析法 235
9.8 两种值得注意的软件故障模型的分析 239
9.7.4 基本路径二叉化的路径覆盖率分析 239
9.8.1 变量未初始化 240
9.8.2 空指针 240
9.9 小结 242
9.10 思考题 242
参考文献 243
第10章 可测性设计 246
10.1 可测性设计思想的提出 246
10.2 可测性设计的基本原理 248
10.2.1 测试质量和可测性属性 248
10.2.2 可测性的属性 248
10.3 随机应变法 249
10.3.1 设置附加测试点 249
10.3.2 便于初始化设置 251
10.3.3 将大规模组合电路进行分解的方法 252
10.3.4 提高对时序电路的可控性 253
10.3.5 软件系统测试点设置和异常检测技术 255
10.4 专用可测性电路及可测性软件设计方法 258
10.4.1 Reed-Muller电路扩展技术 258
10.4.2 控制逻辑插入技术 261
10.4.3 专用可测性设计在软件中的应用 263
10.5 组合电路BIT设计方法 264
10.5.1 PLA电路的结构及基本故障模型 265
10.5.2 PLA电路的可测性设计 271
10.6 时序电路BIT设计方法 274
10.6.1 扫描通路设计思想 274
10.6.2 隔离(切换)部件的设计 275
10.6.3 电平触发扫描设计 277
10.6.4 扫描设计对系统开发成本的影响 279
10.7 边界扫描BIT技术 280
10.7.1 边界扫描问题的提出 280
10.7.2 边界扫描设计的基本原理 280
10.8 BIST方法 283
10.8.1 BIST的基本概念 283
10.8.2 线性反馈移位寄存器的基本理论 284
10.8.3 一个可测性设计实例 288
10.9 小结 291
10.10 思考题 292
参考文献 294
第11章 容错设计技术 297
11.1 结构性冗余技术 300
11.1.1 软件的N版本(模)冗余的基本概念 300
11.1.2 软件的N版本冗余技术的实现 302
11.2.1 向后恢复技术 303
11.2.2 向后恢复技术中的高速缓存 303
11.2 卷回和向后恢复技术 303
11.2.3 向后恢复技术中恢复点的确定 304
11.2.4 向后恢复技术中运行环境的恢复 305
11.3 向前恢复技术 306
11.3.1 恢复模块式 306
11.3.2 终结模式技术 307
11.4 各种容错技术的比较 307
11.4.1 容错设计技术的相似性 307
11.4.2 容错设计技术的相异性 308
11.5 运用容错技术与系统可信性的关系 310
11.6 小结 310
参考文献 311
11.7 思考题 311
第12章 故障安全技术 313
12.1 故障安全系统 313
12.1.1 利用固有的安全性 314
12.1.2 利用结构冗余技术的安全性 314
12.1.3 应用结构冗余设计故障安全系统实例 315
12.2 自校验技术 318
12.2.1 双轨校验电路 319
12.2.2 n取m码自校验电路 320
12.3 故障安全系统与自校验系统的比较 322
12.4 小结 323
12.5 思考题 323
参考文献 324