第一部分 净室软件工程基础 1
第1章 净室方法概述 2
1.1 经济地生产高质量软件 2
1.1.1 可管理的开发 2
1.1.2 使用中无失效 2
1.2 净室基础 3
1.2.1 函数理论 3
1.2.2 统计理论 3
1.2.3 净室小组的工作 4
1.3.2 基于函数的规范、设计和验证 5
1.3 净室技术 5
1.3.1 在统计过程控制下的增量开发 5
1.3.3 正确性验证 7
1.3.4 统计测试和软件认证 7
1.4 净室过程 8
1.5 净室与其他软件工程惯例的关系 9
1.5.1 面向对象 9
1.5.2 软件复用 9
1.5.4 检查和评审 10
1.5.5 软件测试方法 10
1.5.3 软件体系结构 10
1.6 净室工程实践 11
1.7 参考文献 11
1.8 推荐读物 11
第2章 增量式开发的净室管理 14
2.1 增量式开发的优点 14
2.1.1 进展的可见性 14
2.1.2 智能控制 15
2.1.3 增量系统集成 15
2.1.4 连续质量反馈贯穿统计过程控制 15
2.2 增量式开发的理论基础 16
2.2.1 算术中的引用透明性 16
2.1.5 用户使用中不断的功能反馈 16
2.1.7 进度与资源管理 16
2.1.6 变更的积累 16
2.2.2 软件中的引用透明性 17
2.3 实践中的增量计划 18
2.3.1 用户需求 18
2.3.2 明确需求 18
2.3.3 操作使用概率 18
2.4 实践中的增量开发 19
2.3.6 技术挑战 19
2.3.7 重用的影响与作用 19
2.3.5 系统工程 19
2.3.4 可靠性管理 19
2.5 参考文献 21
第3章 净室软件规范 22
3.1 净室规范和设计的盒子结构 22
3.1.1 黑盒行为 22
3.1.2 状态盒行为 24
3.1.3 明盒行为 25
3.1.4 盒子结构层次 25
3.1.5 盒子结构原则 26
3.1.6 盒子结构的开发过程 27
3.2 基于序列的规范过程 28
3.2.1 黑盒定义 29
3.2.2 状态盒定义 30
3.3 例子:一个安全报警器的规范 30
3.3.1 定义黑盒子 30
3.3.2 状态盒安义 34
3.4 参考文献 39
第4章 明盒开发计划 41
4.1 盒式结构开发 41
4.2 明盒开发 42
4.2.1 明盒结构 42
4.2.2 明盒抽象化和文档化 44
4.2.3 明盒预期函数设计 46
4.3 明盒验证 48
4.3.1 正确性问题 48
4.3.2 一个正确性验证的例子 51
4.3.3 实际验证 54
4.4 例子:安全报警器明盒 55
4.4.1 设计方案 55
4.4.2 产品演化中的灵活的结构 55
4.4.3 安全报警器明盒设计 56
4.4.4 明盒的正确性验证 59
4.5 参考文献 62
第5章 净室软件认证 63
5.1 基于使用模型的统计测试的优点 63
5.2 统计测试的理论基础 64
5.2.1 样本与总体 64
5.2.2 软件使用的随机属性 65
5.3 统计使用测试的实际应用 65
5.3.1 使用规范 65
5.3.2 使用模型的开发 66
5.3.3 使用模型分析和测试计划 66
5.3.4 测试用例生成与测试 66
5.4.1 使用模型 67
5.4 事例:安全警报 67
5.3.5 测试充分性和产品质量的度量 67
5.4.2 测试 70
5.4.3 测试充分性的度量 70
5.4.4 产品质量的度量 73
5.5 参考文献 74
第二部分 净室软件工程参考模型 77
第6章 净室参考模型 78
6.1 净室参考模型CRM简介 78
6.3 共同的净室过程要素 84
6.2 净室过程定义格式 84
6.4 参考文献 86
第7章 净室管理过程 87
7.1 项目规划过程 87
7.2 项目管理过程 89
7.3 行为改进过程 91
7.4 工程变更过程 93
第8章 净室规范过程 95
8.1 需求分析过程 95
8.2 功能规范过程 97
8.3 使用规范过程 99
8.4 体系结构规范过程 102
8.5 增量规划过程 104
8.6 参考文献 106
第9章 净室软件开发过程 107
9.1 软件再工程过程 107
9.2 增量设计过程 109
9.3 正确性验证过程 112
9.4 参考文献 114
第10章 净室认证过程 115
10.1 使用建模和测试规划过程 115
10.2 统计测试和认证过程 119
10.3 参考文献 122
第11章 净室和软件能力成熟度模型 123
11.1 软件能力成熟度模型(CMM) 123
11.2 净室过程映到CMM的关键过程域 125
11.3 集成净室参考模型技术和CMM管理 126
11.4 参考文献 127
第三部分 净室软件工程实例研究 129
第12章 卫星控制系统需求 130
12.1 卫星控制系统实例研究 130
12.2 卫星操作软件需求 130
12.3 参考文献 134
13.1 基于序列的黑盒规范 135
第13章 卫星控制系统的黑盒规范 135
13.2 第一步:定义系统边界 137
13.3 第二步:枚举激励序列 140
13.4 第三步:分析典型序列 154
13.5 第四步:定义规范函数 155
13.6 第五步:构造黑盒表 158
13.7 除去抽象 166
13.8 通用的序列抽象技术 168
13.8.1 非形式化的抽象激励定义 168
13.8.3 基于序列的抽象 169
13.8.2 基于激励的抽象 169
第14章 卫星控制系统状态盒规范 171
14.1 状态盒规范 171
14.2 步骤1:拟定状态数据 171
14.2.1 规范函数 172
14.2.2 抽象 173
14.2.3 响应 175
14.3 步骤2:构造状态盒表 176
15.2.1 开始和中止 185
15.2 第一步:选择一个高层软件结构 185
15.2.2 目标硬件结构 185
第15章 卫星控制系统明盒设计 185
15.1 明盒实现 185
15.2.3 硬件接口 187
15.2.4 软件结构 192
15.3 第二步:为捕获激励选择一种实现 200
15.4 第三步:为产生响应选择一种实现 201
15.5 第四步:为状态数据项选择一种实现 202
15.5.1 对象的数据配置 202
15.5.2 状态测试与更新 203
15.6 第五步:为状态盒表中的每一个入口选择一种实现 203
15.7 第六步:重新组织实现形成可执行代码 216
16.2.1 目标 226
16.2.2 用户、使用和环境 226
第16章 卫星控制系统测试和认证 226
16.2 第一步:定义认证计划 226
16.1 统计测试 226
16.3 第二步:建立模型结构 228
16.4 第三步:确定状态转移概率 248
16.5 第四步:确认使用模型 249
16.6 第五步:产生测试实例,执行和评估结果 251
16.6.1 模型覆盖 251
16.6.2 需求覆盖 251
16.6.3 SOS错误层次(strata) 252
16.6.4 一般现场操作 252