目 录
第1章 软件工程过程 1
1.1 软件过程定义 1
1.1.1 软件过程管理 2
1.1.2 软件过程框架 2
1.2 软件生命周期 5
1.2.1 软件过程分类 6
1.2.2 软件生命周期模型 8
1.2.3 软件过程适应 18
1.2.4 实践考虑 18
1.3 软件过程评估与改进 18
1.3.1 软件过程评估与改进模型 19
1.3.2 软件过程评估方法 19
1.3.3 连续式和阶段式软件过程评估 19
1.4 软件过程工具 32
习题1 33
第2章 软件工程模型与方法 34
2.1 建模 34
2.1.1 建模的原则 34
2.1.2 模型的性质与表达 35
2.1.3 语法、语义和语用 35
2.1.4 前置条件、后置条件和不变量 36
2.2 模型的类型 36
2.3 模型分析 37
2.4 软件工程方法 38
2.4.1 启发式方法 38
2.4.2 形式化方法 39
2.4.3 原型方法 39
2.4.4 敏捷方法 40
习题2 40
第3章 软件需求 41
3.1 基本概念 41
3.1.1 软件需求定义 41
3.1.2 软件需求层次 42
3.1.3 软件需求分类 43
3.1.4 需求工程 45
3.1.5 启动步骤 46
3.2 需求获取 48
3.2.1 软件需求来源 49
3.2.2 需求获取技术 50
3.3 软件需求分析 54
3.3.1 分析模型概述 55
3.3.2 建立分析模型 57
3.3.3 分析技术 59
3.3.4 架构设计 60
3.3.5 需求协商 61
3.4 软件需求规格说明 61
3.4.1 意义 62
3.4.2 分类 62
3.4.3 描述方法 63
3.5 软件需求确认 65
3.5.1 软件需求评审 65
3.5.2 原型法 67
3.5.3 软件需求测试 68
3.5.4 验收测试 68
3.6 软件需求管理 69
3.6.1 需求基线 70
3.6.2 需求跟踪 72
3.6.3 需求变更 74
3.7 软件需求工具 76
习题3 77
第4章 软件设计 78
4.1 软件设计基础 78
4.1.1 软件设计过程 81
4.1.2 软件设计原则 82
4.2 软件架构设计 86
4.2.1 软件架构风格 87
4.2.2 软件架构设计方法 88
4.2.3 软件架构设计步骤 92
4.3 用户界面设计 95
4.3.1 通用用户界面设计原则 96
4.3.2 用户交互模式设计 98
4.3.3 用户界面设计流程 99
4.3.4 用户界面设计方法 100
4.4 软件设计质量 102
4.4.1 软件设计质量的意义 102
4.4.2 软件设计质量的评估 104
4.5 软件设计符号 105
4.5.1 结构描述 106
4.5.2 行为描述 115
4.6 软件设计策略和方法 124
4.7 软件设计工具 125
习题4 126
第5章 软件构造 127
5.1 软件构造基础 127
5.1.1 复杂性最小化 127
5.1.2 多维视角的软件构造 127
5.2 软件构造过程 128
5.2.1 生命周期模型 128
5.2.2 构造语言 129
5.2.3 开发者测试 131
5.2.4 重构 132
5.3 软件构造管理 133
5.3.1 变更管理 133
5.3.2 版本控制 133
5.4 软件构造技术 134
5.5 软件构造工具 136
习题5 137
第6章 软件测试 138
6.1 软件测试基础 139
6.1.1 软件测试目的 139
6.1.2 软件测试定义 139
6.2 软件测试级别 140
6.2.1 测试阶段级别 140
6.2.2 测试对象级别 144
6.3 软件测试技术 147
6.3.1 静态测试 147
6.3.2 动态测试 150
6.3.3 白盒测试 150
6.3.4 黑盒测试 153
6.3.5 自动化测试 158
6.4 软件测试过程 159
6.4.1 测试计划阶段 160
6.4.2 测试设计阶段 163
6.4.3 测试执行阶段 165
6.4.4 测试监控阶段 166
6.4.5 测试结束阶段 167
6.5 软件测试工具 168
6.5.1 静态分析工具 168
6.5.2 黑盒测试工具 168
6.5.3 单元测试工具 169
6.5.4 负载测试工具 169
习题6 170
第7章 软件维护 171
7.1 软件维护基本概念 171
7.1.1 软件维护定义 172
7.1.2 软件维护特点 172
7.1.3 软件维护目的 173
7.1.4 软件维护组织 173
7.2 软件维护关键问题 174
7.2.1 软件维护技术问题 174
7.2.2 软件维护管理问题 175
7.2.3 软件维护成本预算 176
7.2.4 软件的可维护性 177
7.3 软件维护过程 179
7.3.1 软件维护过程概述 179
7.3.2 软件维护活动 180
7.4 软件维护技术 181
7.4.1 程序理解 181
7.4.2 再工程 182
7.4.3 逆向工程 184
7.4.4 迁移 185
7.4.5 退役 186
7.5 软件维护工具 186
习题7 187
第8章 软件配置管理 188
8.1 软件配置管理的过程管理 189
8.1.1 软件配置管理的组织背景 189
8.1.2 软件配置管理涉及的人员 189
8.1.3 软件配置管理计划 190
8.1.4 软件配置管理的监管 191
8.2 软件配置标识 192
8.2.1 被管控项目的识别 192
8.2.2 软件库 199
8.3 软件配置控制 201
8.3.1 软件变更请求 201
8.3.2 跟踪并控制变更 202
8.3.3 软件配置偏差和弃用 203
8.4 软件配置状态统计 203
8.5 软件配置审计 204
8.5.1 配置库审计 205
8.5.2 基线审计 205
8.6 软件构建和发布管理 206
8.6.1 软件构建 206
8.6.2 软件发布 207
8.7 软件配置管理工具 208
习题8 208
第9章 软件项目管理 209
9.1 软件项目管理概述 210
9.1.1 项目与软件项目 210
9.1.2 项目管理 210
9.1.3 软件生命周期与项目管理 211
9.2 软件项目启动 212
9.2.1 软件项目启动任务 212
9.2.2 软件项目可行性分析 214
9.2.3 制订项目任务书 215
9.3 软件项目计划 216
9.3.1 软件范围计划 217
9.3.2 项目进度计划 217
9.3.3 项目成本计划 222
9.3.4 项目风险计划 228
9.3.5 项目合同计划 231
9.3.6 人员与沟通计划 232
9.4 软件项目执行控制 235
9.4.1 软件项目控制方法 235
9.4.2 软件项目控制过程 236
9.5 软件项目收尾 237
9.5.1 软件项目收尾概述 237
9.5.2 软件项目收尾过程 237
9.5.3 软件项目验收 238
9.6 软件项目管理工具 238
习题9 239
第10章 软件质量 240
10.1 软件质量概述 241
10.1.1 软件质量概念 241
10.1.2 软件质量成本 242
10.1.3 软件质量模型 242
10.2 软件质量管理过程 245
10.2.1 软件质量计划 245
10.2.2 软件质量保证 246
10.2.3 软件质量控制 248
10.2.4 软件过程改进 249
10.3 软件质量度量 249
10.3.1 软件质量度量概述 250
10.3.2 软件项目质量度量 251
10.3.3 软件产品质量度量 252
10.3.4 软件过程质量度量 253
10.3.5 软件缺陷度量 255
10.4 软件质量工具 256
习题10 256
参考文献 257