第一部分 概览 1
第1章 概述 1
1.1 软件与软件危机 2
1.2 软件工程 5
1.3 软件生命周期 6
1.4 软件工程方法学 8
【习题】 10
第2章 软件过程 11
2.1 软件过程概述 11
2.2 软件过程模型 12
2.3 计算机辅助软件工程 18
【习题】 19
第3章 项目管理 20
3.1 软件项目管理概述 20
3.2 人员组织与管理 25
3.3 软件项目规划 30
3.4 进度管理 44
3.5 风险管理 46
3.6 软件配置管理 51
【习题】 55
第二部分 需求 57
第4章 需求分析基础 57
4.1 需求概述 58
4.2 需求工程过程 59
4.3 需求获取技术 70
【习题】 72
第5章 结构化分析方法 73
5.1 结构化分析概述 73
5.2 数据流图与数据字典 74
5.3 实体—关系图 78
5.4 状态—迁移图 79
5.5 实例 81
【习题】 87
第6章 面向对象分析方法 88
6.1 面向对象分析概述 88
6.2 面向对象的分析 90
6.3 领域分析 93
6.4 面向对象分析过程 96
6.5 对象—关系模型 105
6.6 对象—行为模型 106
6.7 UML及用例图 107
【习题】 116
第三部分 设计 117
第7章 软件设计基础 117
7.1 软件设计概述 117
7.2 软件设计的原则 121
【习题】 127
第8章 结构化设计方法 129
8.1 结构化设计——总体设计 129
8.2 结构化设计——详细设计 135
8.3 编码实现 139
8.4 实例 141
【习题】 144
第9章 面向对象设计 145
9.1 面向对象系统的设计 146
9.2 面向对象设计模型的类属成分 151
9.3 系统设计过程 152
9.4 对象设计过程 155
9.5 设计模式 156
9.6 UML模型的性质和目标 157
9.7 UML视图 162
9.8 面向对象系统设计方法及实例 183
【习题】 194
第四部分 软件验证和进化 195
第10章 软件验证基础 195
10.1 软件验证概述 195
10.2 软件测试 197
10.3 软件测试说明书 202
【习题】 208
第11章 结构化软件测试技术 209
11.1 白盒测试 209
11.2 黑盒测试 215
【习题】 218
第12章 面向对象测试 219
12.1 扩大测试的视角 220
12.2 测试OOA和OOD模型 220
12.3 面向对象的测试策略 221
12.4 面向对象软件的测试用例设计 225
12.5 面向对象的测试过程 231
12.6 在类级别上的测试方法 233
12.7 类间测试用例设计 235
12.8 面向对象的系统测试 236
【习题】 237
第13章 软件进化 238
13.1 遗留系统 238
13.2 软件变更 240
【习题】 244
参考文献 245