第1章 软件工程概述 1
1.1 软件与软件危机 1
1.2 软件工程 3
1.3 软件生命周期 8
1.4 软件开发工具 11
1.5 本章小结 12
第2章 软件过程 15
2.1 软件过程概述 15
2.2 软件过程模型 16
2.3 RUP统一过程 22
2.4 敏捷过程与极限编程 26
2.5 软件过程标准 29
2.6 本章小结 30
第3章 可行性分析与项目计划 33
3.1 可行性分析概述 33
3.2 技术可行性 35
3.3 经济可行性 37
3.4 项目计划 39
3.5 本章小结 41
第4章 软件需求分析 45
4.1 需求分析概述 45
4.2 需求获取 50
4.3 需求建模 54
4.4 需求规格说明与需求验证 68
4.5 本章小结 72
第5章 总体设计 81
5.1 软件设计概述 81
5.2 设计原则 87
5.3 设计方法 90
5.4 软件架构基础 92
5.5 架构风格 100
5.6 面向数据流的设计 107
5.7 数据设计 113
5.8 本章小结 115
第6章 详细设计 121
6.1 详细设计概述 121
6.2 设计准则 122
6.3 设计模式 124
6.4 过程设计 127
6.5 人机界面设计 130
6.6 设计评审 135
6.7 本章小结 136
第7章 编码 140
7.1 程序设计语言 140
7.2 编码规范 141
7.3 代码审查 143
7.4 重构 144
7.5 程序的复杂性度量 147
7.6 本章小结 148
第8章 软件测试 151
8.1 软件测试概述 151
8.2 软件测试技术 154
8.3 测试过程 164
8.4 调试 170
8.5 测试管理 172
8.6 软件可靠性 174
8.7 优化 179
8.8 本章小结 182
第9章 软件维护 187
9.1 软件维护概述 187
9.2 软件维护的特点 188
9.3 软件维护过程 192
9.4 软件的可维护性 195
9.5 软件再工程 200
9.6 本章小结 202
第10章 面向对象方法学 207
10.1 面向对象方法学概述 207
10.2 UML 212
10.3 面向对象分析 221
10.4 软件重用 228
10.5 面向对象设计 230
10.6 框架 233
10.7 面向对象实现 236
10.8 本章小结 238
第11章 软件项目管理 244
11.1 项目估算 244
11.2 项目进度安排 252
11.3 项目管理 260
11.4 质量保证 269
11.5 软件评审 273
11.6 配置管理 278
11.7 本章小结 280
附录 客户关系管理系统 287
参考文献 289