第1章 军用软件工程概述 1
1.1 软件的概念及特点 1
1.2 军用软件的分类和作用 2
1.3 软件工程及军用软件工程 4
1.4 软件生存期和软件工程过程 5
1.4.1 软件生存期和软件工程过程 5
1.4.2 典型的软件过程模型 8
复习要点 22
练习题 22
第2章 军用软件需求分析 23
2.1 概述 23
2.2 需求分析的内容 24
2.2.1 需求获取 25
2.2.2 需求分析 28
2.2.3 需求规格说明 30
2.2.4 验证 32
2.3 需求分析的结构化技术 33
2.3.1 概述 33
2.3.2 数据建模 34
2.3.3 结构化分析方法 36
2.3.4 其他具有结构化思想的需求分析方法 46
2.4 快速原型方法 49
2.4.1 概述 49
2.4.2 快速原型方法 50
2.4.3 快速原型的实现途径 52
2.4.4 原型方法的技术与工具 54
复习要点 54
练习题 54
第3章 软件体系结构 56
3.1 研究软件体系结构的意义 56
3.2 软件体系结构定义及发展 57
3.2.1 软件体系结构定义 57
3.2.2 软件体系结构的发展 59
3.2.3 软件体系结构的研究重点 60
3.3 常见的体系结构风格 61
3.3.1 管道和过滤器风格 61
3.3.2 数据抽象和面向对象风格 63
3.3.3 基于事件的风格(隐式调用) 64
3.3.4 分层系统风格 65
3.3.5 仓库风格和黑板系统 66
3.3.6 解释器风格 67
3.3.7 客户—服务器风格 67
3.3.8 特定领域的软件体系结构 69
3.4 软件体系结构分析方法 70
3.4.1 软件体系结构设计和分析的好处 70
3.4.2 软件体系结构分析与评价方法 71
3.5 实例 73
复习要点 77
练习题 77
第4章 军用软件开发 78
4.1 概述 78
4.2 结构化设计方法 79
4.2.1 结构化设计思想 80
4.2.2 结构化设计相关的概念及质量评价标准 83
4.2.3 软件体系结构设计 88
4.2.4 结构化设计实例 93
4.3 面向对象开发方法 95
4.3.1 概述 95
4.3.2 面向对象的软件开发模型 97
4.3.3 面向对象的基本概念 101
4.3.4 面向对象分析 104
4.3.5 面向对象设计 106
4.4 统一建模语言 109
4.4.1 概述 109
4.4.2 UML内容 111
4.4.3 UML应用 116
4.5 面向对象开发中的设计模式 119
4.5.1 概述 119
4.5.2 设计模式 122
4.6 设计模式在机场信息系统软件体系结构中的应用 127
4.6.1 观察者设计模式 128
4.6.2 简单代码 129
复习要点 132
练习题 133
第5章 军用软件测试 135
5.1 引言 135
5.1.1 什么是软件测试 135
5.1.2 软件测试的目的和原则 136
5.1.3 广义的软件测试概念 137
5.1.4 程序错误分类 138
5.1.5 软件测试的费用 142
5.1.6 软件测试的意义 142
5.2 软件测试过程 143
5.2.1 单元测试 143
5.2.2 集成测试 145
5.2.3 确认测试 146
5.2.4 系统测试 148
5.3 测试方法 148
5.4 测试用例设计 150
5.4.1 什么是测试用例 150
5.4.2 测试用例设计生成的基本准则 151
5.4.3 黑盒测试用例设计方法 151
5.4.4 白盒测试用例设计方法 159
5.4.5 控制结构测试的变种 163
5.5 静态测试 166
5.5.1 源程序静态分析 166
5.5.2 人工测试 167
5.6 调试 169
5.6.1 调试的步骤 169
5.6.2 常见调试方法 170
5.6.3 调试原则 172
5.7 面向对象测试 173
5.7.1 面向对象测试概述 173
5.7.2 面向对象测试模型 174
5.7.3 面向对象分析的测试 175
5.7.4 面向对象设计的测试 177
5.7.5 面向对象编程的测试 179
5.7.6 面向对象的单元测试 180
5.7.7 面向对象的集成测试 182
5.7.8 面向对象的系统测试 183
5.8 测试工具 184
5.9 软件测试技术的发展 185
复习要点 187
练习题 187
第6章 军用软件维护 188
6.1 软件维护的概念 188
6.1.1 软件维护的定义 188
6.1.2 软件维护的类型 189
6.1.3 软件维护的策略 190
6.1.4 软件维护工作量 190
6.2 软件维护的组织和过程 191
6.2.1 软件维护的组织 191
6.2.2 软件维护的过程 192
6.3 程序修改的步骤和修改的副作用 194
6.3.1 程序修改的步骤 194
6.3.2 修改程序的副作用 195
6.4 软件可维护性 196
6.4.1 软件可维护性的定义 196
6.4.2 提高可维护性的方法 197
6.5 软件再工程 200
复习要点 204
练习题 204
第7章 军用软件质量 205
7.1 软件质量概述 205
7.1.1 软件质量带来的问题 205
7.1.2 软件质量的问题根源 206
7.1.3 军用软件质量管理现状 208
7.2 软件质量概念 209
7.2.1 软件质量常见概念 209
7.2.2 软件产品质量和过程质量 210
7.3 软件质量模型 212
7.3.1 Boehm软件质量模型 212
7.3.2 McCall质量模型 214
7.3.3 ISO软件质量评价模型 217
7.3.4 全面软件质量模型 220
7.4 软件质量保证技术 220
7.4.1 软件技术评审 220
7.4.2 软件测试 225
7.4.3 GJB 9001A—2001 225
7.4.4 CMM能力成熟度模型 226
7.4.5 ISO 9000族标准 228
7.4.6 Bootstrap 229
7.4.7 SPICE 230
7.5 软件质量保证 232
7.5.1 质量保证的概念 232
7.5.2 软件质量保证活动 232
7.5.3 质量保证的实施 233
7.6 软件配置管理 235
7.6.1 软件配置管理概念 236
7.6.2 软件配置管理过程 237
复习要点 240
练习题 240
第8章 军用软件工程及其标准 241
8.1 概述 241
8.1.1 软件工程标准化的作用及意义 241
8.1.2 软件工程标准分类 242
8.1.3 军用软件工程标准化现状 245
8.2 军用软件项目管理(GJB 2786) 248
8.2.1 软件生存周期概念 249
8.2.2 软件生存周期模型选择原则 249
8.2.3 围绕软件开发工作的活动 251
8.2.4 GJB 2786—1996的实施 251
8.2.5 文档编制 252
8.3 军用软件设计 254
8.3.1 软件设计基础 255
8.3.2 软件设计关键问题 256
8.3.3 软件结构与体系结构 258
8.3.4 软件设计质量的分析与评价 259
8.3.5 软件设计符号 260
8.3.6 软件设计策略与方法 261
8.4 军用软件编程要求 262
8.4.1 军用软件编程的一般准则 262
8.4.2 军用软件编程的特殊要求 265
8.5 军用软件维护 266
8.5.1 软件维护组织 267
8.5.2 软件维护过程 267
8.6 军用软件验收 270
8.6.1 软件验收申请 270
8.6.2 被验收方应交的材料 271
8.6.3 软件验收计划 271
8.6.4 验收组织 271
8.6.5 软件验收测试和验收审查 272
8.7 军用软件标准的实施程序 272
复习要点 275
练习题 275
参考文献 276