第1篇 面向过程的软件工程 3
第1章 软件工程概述 3
1.1 软件工程的发展历程 3
1.2 软件危机 4
1.2.1 软件的概念、特点及分类 4
1.2.2 软件危机 7
1.2.3 产生软件危机的原因 8
1.2.4 解决软件危机的方法 9
1.3 软件工程 10
1.3.1 软件工程概述 10
1.3.2 软件工程原理 11
1.3.3 常用的软件工程开发方法 13
1.3.4 软件过程与模型 14
1.4 软件工程的相关规范 20
1.4.1 软件项目的开发流程 20
1.4.2 软件工程的标准化 21
1.4.3 软件工程文档编写 23
1.4.4 软件知识产权及道德规范 24
小结 27
习题1 28
第2章 结构化方法、工具和过程 30
2.1 结构化方法与过程 30
2.2 常用结构化建模工具 31
2.2.1 Visio 31
2.2.2 PowerDesigner 35
小结 43
习题2 44
第3章 可行性与计划研究 45
3.1 可行性研究 45
3.1.1 可行性研究的任务 45
3.1.2 可行性研究的步骤 46
3.1.3 成本—效益分析 48
3.2 项目开发计划 52
3.3 业务流程建模 53
3.3.1 系统流程图 53
3.3.2 数据流图 55
3.3.3 数据字典 59
3.4 项目案例 60
小结 67
习题3 68
第4章 需求分析 70
4.1 需求分析的任务和步骤 70
4.1.1 需求分析的任务 71
4.1.2 需求分析的步骤 72
4.2 获取需求的方法 75
4.3 结构化分析方法的策略 77
4.4 结构化分析图形工具 78
4.4.1 数据流图 78
4.4.2 输入/处理/输出图 82
4.4.3 实体—联系图 85
小结 89
习题4 90
第5章 软件设计 92
5.1 概要设计 92
5.1.1 概要设计步骤及任务 92
5.1.2 概要设计原理 96
5.1.3 软件体系结构设计 104
5.1.4 概要设计图形工具 107
5.1.5 面向数据流的设计方法 110
5.2 接口设计 119
5.2.1 模块间接口设计 119
5.2.2 用户界面设计 119
5.3 详细设计的任务 124
5.3.1 详细设计的基本任务 124
5.3.2 详细设计的表示方法 124
5.3.3 面向数据结构的设计方法 132
5.3.4 程序复杂程度的定量度量 136
5.4 项目案例 138
5.4.1 软件功能设计 138
5.4.2 软件数据库设计 140
小结 143
习题5 143
第6章 软件实现 146
6.1 软件编码 146
6.1.1 程序设计语言 146
6.1.2 程序设计风格 148
6.2 软件测试 151
6.2.1 软件测试目的 151
6.2.2 软件测试模型 153
6.2.3 软件测试阶段 154
6.2.4 软件测试类型及方法 156
6.2.5 软件测试过程 161
6.3 软件测试技术与工具 171
6.3.1 软件测试技术与工具概述 171
6.3.2 QC 174
6.3.3 QTP 175
6.3.4 LR 177
6.3.5 国产测试软件 179
小结 180
习题6 181
第7章 软件运行与维护 183
7.1 软件维护概述 183
7.1.1 软件的可维护性 183
7.1.2 软件维护的类型 184
7.1.3 软件维护工作流程 186
7.1.4 软件维护过程文档 187
7.1.5 软件维护的困难及应对策略 187
7.2 软件运行维护管理 189
7.3 软件运行维护的关键 191
7.3.1 运行维护平台 191
7.3.2 文档管理 192
7.3.3 水波效应 193
小结 193
习题7 194
第8章 软件过程管理 195
8.1 软件工程项目管理 195
8.1.1 项目启动管理 196
8.1.2 项目计划管理 196
8.1.3 人员组织与管理 199
8.1.4 变更管理 201
8.1.5 风险管理 202
8.2 软件过程管理及能力成熟度模型 207
8.2.1 软件能力成熟度与SW-CMM 207
8.2.2 CMMI的发展 209
8.2.3 CMMI开发模型1.3版介绍 210
8.3 软件配置管理 214
8.3.1 软件配置管理作用 214
8.3.2 软件配置管理过程 215
8.3.3 常用的软件配置管理工具 218
小结 222
习题8 222
第2篇 面向对象的软件工程 225
第9章 面向对象的软件工程概述 225
9.1 面向对象思想及概念 225
9.2 面向对象方法与过程 228
9.3 常用面向对象建模语言及工具 233
9.3.1 统一建模语言 233
9.3.2 Rational Rose 237
9.3.3 StarUMI 247
小结 252
习题9 252
第10章 面向对象分析 254
10.1 面向对象的需求获取 254
10.1.1 需求获取概述 255
10.1.2 需求获取 255
10.2 面向对象的需求分析 260
10.2.1 面向对象方法概述 260
10.2.2 需求分析阶段的任务 266
10.2.3 需求规格说明的评审 272
10.3 项目案例 273
小结 286
习题10 286
第11章 面向对象设计与实现 288
11.1 面向对象设计准则 288
11.2 面向对象设计 290
11.3 面向对象实现 296
11.3.1 面向对象程序设计语言 296
11.3.2 面向对象的测试策略 302
11.3.3 面向对象的测试步骤 302
11.3.4 面向对象测试用例设计 304
11.4 项目案例 306
小结 308
习题11 309
附录A 软件工程知识体系 310
附录A 软件工程国家标准 314
附录C 软件工程文档撰写国家标准 316
C.1 可行性研究报告 316
C.2 开发计划 321
C.3 需求规格说明书 322
C.4 概要设计说明书 324
C.5 详细设计说明书 326
C.6 测试计划 328
C.7 用户操作手册 330
参考文献 334