第一章 绪论 1
1.1 引言 1
1.2 几个基本概念 4
1.2.1 组织及受益者 4
1.2.2 过程及产品 5
1.2.3 产品质量 7
1.2.4 效能 10
1.2.5 可靠性、维修性、保障性、测试性 12
1.2.6 软件的质量特性 14
1.3 软件的缺陷、故障、失效 16
1.3.1 软件的缺陷、故障、失效的关系 17
1.3.2 软件的运行剖面(情景) 18
1.3.3 软件寿命的指数分布规律 20
1.3.4 软件缺陷的故障率的规律 22
1.4 软件的可靠性和可维护性指标 27
第二章 软件工程 32
2.1 从软件危机到软件工程 32
2.2 软件的寿命周期 35
2.2.1 软件的寿命周期阶段 36
2.2.2 软件寿命周期的活动 39
2.3 软件开发的方法学 42
2.3.1 几种软件开发方法学 42
2.3.2 结构化方法 45
2.4 软件开发管理 56
2.4.1 软件开发管理的要点 56
2.4.2 软件开发策略 59
2.4.3 风险管理 60
2.4.4 软件评价 65
2.4.5 软件费用估算 77
2.5 软件测试 79
2.5.1 静态分析 81
2.5.2 动态测试 87
2.5.3 程序测试过程 99
2.6 软件工程规范 111
2.7 软件开发工具 115
2.8 净室软件工程法 118
2.8.1 净室软件工程法原理 119
2.8.2 净室过程 121
2.8.3 净室软件工程法的特点 123
2.9 软件工厂的等级评估 125
2.9.1 软件工厂的五个等级 125
2.9.2 软件工厂上等级应做的工作 128
附录2-1 大型软件开发环境青鸟系统 137
附录2-2 嵌入式软件开发环境 140
第三章 软件的可靠性和可维护性管理 142
3.1.1 软件可靠性和可维护性大纲要求 144
3.1 软件可靠性和可维护性大纲 144
3.1.2 软件可靠性和可维护性 146
3.1.3 承制方对软件转承制方的软件可靠性和可维护性监督及控制 148
3.1.4 软件设计评审 149
3.1.5 软件可靠性和可维护性大纲的其他工作项目 150
3.1.6 非开发软件 154
3.2 软件文档 156
3.3 软件的配置管理 159
3.4 软件可靠性和可维护性管理准则 161
3.4.1 软件可靠性和可维护性管理总则 161
3.4.2 软件可靠性和可维护性设计管理准则 162
3.4.3 软件实现的可靠性和可维护性管理准则 164
3.4.4 软件测试的可靠性和可维护性管理准则 165
3.4.5 软件维护管理准则 167
3.4.6 对嵌入式软件开发管理的补充准则 167
3.5.1 软件设计评审的类型 168
3.5 软件设计评审及评审检查单 168
3.5.2 软件设计评审组织 171
3.5.3 软件设计评审内容 174
3.5.4 软件设计评审检查单 185
3.6 软件故障、失效报告、分析和纠正措施系统 196
3.6.1 软件问题报告 196
3.6.2 软件纠正措施过程 198
3.6.3 软件故障、失效报告、分析和纠正措施系统报告 198
3.6.4 软件异常的分类及编码 204
第四章 软件的可靠性和可维护性 218
4.1 系统总体设计中的软件可靠性和可维护性工作 218
4.1.1 论证阶段的软件可靠性和可维护性工作 218
4.1.2 方案阶段的软件可靠性和可维护性工作 219
4.1.3 计算机软件配置项的分解 221
4.1.4 软件平均故障间隔时间的确定 223
4.2.1 软件需求分析 224
4.2 软件的可靠性需求分析 224
4.2.2 软件可靠性需求分析 228
4.2.3 实时嵌入式软件需求分析 229
4.3 用于开发可靠软件的度量 231
4.3.1 度量过程 232
4.3.2 软件的复杂性度量 234
4.3.3 软件过程控制及其度量 242
4.3.4 有关软件可靠性的度量 248
4.4 软件的关键件、重要件、软件故障模式影响分析,软件故障树分析及Petri网分析 250
4.4.1 软件的关键件和重要件 250
4.4.2 软件故障模式影响分析与软件故障模式影响及危害度分析 251
4.4.3 软件故障树分析 256
4.4.4 用Petri网进行软件可靠性分析 257
4.5 软件容错设计 268
4.5.1 软件容错的基本概念 268
4.5.2 容错软件 274
4.5.3 实现软件容错的基本结构 282
4.5.4 容错软件的独立性和设计相异性 292
4.6 检错及纠错编码 300
4.6.1 检错及纠错编码的概念 300
4.6.2 几种常用的简单检错码 302
4.6.3 循环码及Hamming码 306
4.7 软件可靠性和可维护性设计准则 312
4.7.1 软件可靠性和可维护性一般设计准则 312
4.7.2 冗余软件的设计准则 323
4.7.3 编程语言格式规定示例 325
4.8 软件安全性 332
4.8.1 安全性的基本概念 332
4.8.2 安全性参数 336
4.8.3 软件安全性设计准则 338
5.1 软件可靠性试验的概念 348
第五章 软件可靠性试验 348
5.2 软件可靠性增长试验模型 352
5.2.1 软件可靠性增长的一般特性 354
5.2.2 Duane模型的理论基础 356
5.2.3 ?lap?OB过程模型 358
5.2.4 软件可靠性增长的NHPP模型 364
5.2.5 种子撒播与加标记法 371
5.2.6 Bayes方法 372
5.2.7 关于软件可靠性增长试验模型的建议 375
5.3 软件的可靠性增长试验 376
5.3.1 软件可靠性增长试验过程的必要性 376
5.3.2 软件可靠性试验平台 377
5.4 软件的可靠性验证试验 378
5.5 软件的无失效考核交付试验 380
参考文献 382
符号表 384
缩略语 387