目 录
第1章 软件工程综述 1
1.1 软件工程的背景 1
1.1.1 软件及其特性 1
1.1.2 软件危机 4
1.2 软件工程概述 5
1.2.1 软件工程的基本概念 5
1.2.2 软件工程的目标 6
1.2.3 软件工程三要素 6
1.2.4 软件工程的多样性 9
1.2.5 软件工程与Web 10
1.2.6 软件工程的通用原则 13
1.2.7 软件工程人员的职业道德 14
本章小结 15
思政园地 15
本章练习题 16
第2章 软件过程 17
2.1 软件过程概述 17
2.1.1 软件描述 17
2.1.2 软件设计与实现 18
2.1.3 软件有效性验证 20
2.1.4 软件进化 21
2.1.5 软件开发团队组成 22
2.2 软件过程模型概述 23
2.2.1 软件过程模型 23
2.2.2 应对变更 26
2.2.3 统一软件开发过程 29
2.3 敏捷软件开发 31
本章小结 34
思政园地 34
本章练习题 35
第3章 可行性研究 37
3.1 可行性研究的任务 37
3.2 可行性研究的重要性 38
3.3 可行性研究过程 39
3.4 系统流程图与工作流程 40
3.4.1 系统流程图规范 41
3.4.2 系统流程图分析案例 42
3.4.3 分层 42
3.5 数据流图与系统功能 42
3.5.1 数据流图规范 43
3.5.2 数据流图分析案例 43
3.5.3 命名 45
3.5.4 用途 45
3.6 成本/效益分析 45
3.6.1 成本估算 46
3.6.2 成本/效益分析的方法 47
本章小结 48
思政园地 49
本章练习题 49
第4章 结构化需求分析 51
4.1 需求 51
4.1.1 需求的定义 51
4.1.2 需求的层次 52
4.1.3 需求的分类 54
4.2 需求工程 55
4.2.1 需求工程的任务 55
4.2.2 需求工程的活动 55
4.3 需求获取 56
4.3.1 需求获取中的常见困难 56
4.3.2 定义项目前景和范围 58
4.3.3 选择信息的来源 60
4.3.4 需求获取的方法 61
4.4 需求分析 62
4.4.1 过程建模 63
4.4.2 数据建模 74
4.4.3 过程模型与数据模型的联系 80
4.4.4 结构化分析的局限性 81
4.5 需求规格说明 81
4.5.1 需求规格说明文档的类型 81
4.5.2 软件需求规格说明文档的读者 82
4.5.3 软件需求规格说明文档模板 83
4.6 需求验证 83
4.6.1 需求验证的概念 83
4.6.2 需求验证的方法 83
4.7 需求管理 85
4.7.1 建立和维护需求基线 85
4.7.2 建立需求跟踪信息 85
4.7.3 进行变更控制 86
4.8 结构化需求分析方法案例 87
本章小结 92
思政园地 92
本章练习题 92
第5章 结构化软件设计 96
5.1 软件设计的相关概念 96
5.1.1 软件设计的任务 96
5.1.2 软件设计的原则 97
5.1.3 结构化设计图形工具 101
5.1.4 软件设计的启发规则 104
5.2 体系结构设计 107
5.2.1 数据流类型 107
5.2.2 变换流的映射方法 107
5.2.3 事务流的映射方法 112
5.3 数据设计 115
5.3.1 文件设计 115
5.3.2 数据库设计 115
5.4 接口设计 118
5.4.1 接口设计概述 118
5.4.2 人机界面的交互设计 119
5.5 过程设计 120
5.5.1 结构化程序设计 120
5.5.2 过程设计工具 120
5.6 软件设计规格说明书文档 122
本章小结 122
思政园地 123
本章练习题 123
第6章 面向对象的需求分析 128
6.1 面向对象的基本概念 128
6.1.1 对象与类 128
6.1.2 封装、继承和多态性 130
6.1.3 面向对象分析概述 134
6.2 案例说明 135
6.3 上下文模型 136
6.4 活动图与业务流程 136
6.4.1 活动图规范 136
6.4.2 活动图建模 138
6.5 用例图与系统需求 139
6.5.1 用例规范 140
6.5.2 从业务流程到用例图建模 142
6.6 静态结构与类图 146
6.6.1 静态结构与类图的分类 146
6.6.2 类图规范 147
6.6.3 类图建模 149
6.7 时序图与交互模型 153
6.7.1 时序图规范 154
6.7.2 时序图验证 155
6.8 状态图与事件驱动模型 157
6.8.1 状态图规范 157
6.8.2 识别状态空间 159
6.8.3 状态图建模 160
本章小结 160
思政园地 161
本章练习题 161
第7章 面向对象的设计 163
7.1 面向对象软件设计概述 163
7.1.1 面向对象设计的过程 163
7.1.2 面向对象设计准则 165
7.2 体系结构设计 166
7.2.1 分层体系结构 166
7.2.2 三层架构 167
7.2.3 采用MVC模式的Web体系结构 168
7.2.4 系统逻辑结构与类包图 171
7.2.5 系统物理体系结构与构件图 173
7.2.6 系统物理体系结构与部署图 175
7.3 构件级设计 177
7.3.1 从分析类到设计类 177
7.3.2 从用例场景到设计类 178
7.3.3 构件详细类图建模 181
7.4 用户界面设计 183
7.4.1 把控制权交给用户 183
7.4.2 减轻用户的记忆负担 184
7.4.3 保持界面一致 184
本章小结 185
思政园地 185
本章练习题 185
第8章 基于构件的开发 187
8.1 实施阶段的准备工作 187
8.2 基于构件的编码 188
8.2.1 开发环境 188
8.2.2 从雇员管理构件设计类图到编码 189
8.2.3 雇员管理构件编码 190
8.3 实现问题 202
8.3.1 复用 203
8.3.2 配置管理 203
8.3.3 宿主机-目标机开发 204
本章小结 205
思政园地 205
本章练习题 205
第9章 软件项目的测试 207
9.1 软件测试概述 207
9.2 软件测试技术 210
9.2.1 黑盒测试 210
9.2.2 白盒测试 214
9.2.3 灰盒测试 218
9.3 软件测试过程 218
9.3.1 单元测试 218
9.3.2 集成测试 219
9.3.3 确认测试 220
9.3.4 系统测试 221
9.3.5 验收测试 222
9.3.6 回归测试 223
本章小结 223
思政园地 224
本章练习题 224
第10章 软件实施、维护与进化 226
10.1 软件实施概述 226
10.2 软件维护概述 228
10.2.1 软件维护的类型 228
10.2.2 软件维护存在的问题 229
10.2.3 软件维护的风险 230
10.2.4 软件维护的过程 231
10.2.5 软件的可维护性 231
10.3 软件进化概述 233
10.3.1 进化过程 233
10.3.2 遗留系统 234
10.3.3 软件再工程 235
本章小结 238
思政园地 238
本章练习题 238
第11章 软件工程标准与文档 240
11.1 软件工程标准 240
11.2 软件工程国家标准 241
11.3 软件工程文档标准(GB/T 8567 —2006) 243
11.3.1 软件生命周期与各种文档的编制 243
11.3.2 文档编制中的考虑因素 245
11.3.3 可行性分析(研究)报告 247
11.3.4 软件开发计划 248
11.3.5 系统/子系统需求规格说明 253
11.3.6 系统/子系统设计(结构设计)说明 260
11.3.7 数据库(顶层)设计说明 266
11.3.8 测试计划 268
11.3.9 测试报告 272
11.3.10 项目开发总结报告 274
11.3.11 用户手册 276
11.3.12 面向对象软件文档的编制 279
本章小结 288
本章练习题 288