第1章 软件工程学概述 1
1.1 软件发展史与软件危机 1
1.2 软件工程学的概念 6
1.3 软件生命周期 8
1.4 软件过程模型 10
1.5 传统软件工程与面向对象软件工程 16
1.6 软件开发工具 19
1.7 小结 23
习题1 23
参考文献 24
第2章 软件需求分析 25
2.1 软件需求分析的前期工作 25
2.2 软件需求分析的重要性 28
2.3 软件需求获取的常用方法 29
2.4 分析建模 30
2.5 结构化分析方法 31
2.6 其他图形工具 43
2.7 软件需求规格说明和需求验证 45
2.8 应用案例 46
2.9 小结 51
习题2 52
参考文献 53
第3章 软件设计 54
3.1 软件设计概述 54
3.2 软件概要设计 55
3.3 软件设计的基本原理 56
3.4 软件设计的准则 63
3.5 用户界面设计 66
3.6 概要设计工具 70
3.7 结构化设计方法——面向数据流的设计方法 72
3.8 详细设计 81
3.9 设计文档及其复审 91
3.10 小结 93
习题3 94
参考文献 96
第4章 编码与语言选择 98
4.1 编码语言的选择 98
4.2 编码的风格 104
4.3 程序设计方法 110
4.4 小结 115
习题4 116
参考文献 118
第5章 软件测试 119
5.1 软件测试概述 119
5.2 黑盒测试 123
5.3 白盒测试 132
5.4 软件测试的过程 142
5.5 软件纠错 153
5.6 小结 157
习题5 158
参考文献 160
第6章 软件维护 161
6.1 软件维护的定义和分类 161
6.2 软件维护的特点 162
6.3 软件可维护性 164
6.4 维护过程与维护活动 167
6.5 软件维护的副作用 170
6.6 软件再工程 170
6.7 小结 172
习题6 173
参考文献 174
第7章 面向对象方法 175
7.1 面向对象方法概述 175
7.2 面向对象的分析 189
7.3 面向对象的设计 200
7.4 面向对象的实现 208
7.5 统一建模语言 216
7.6 基于UML的统一过程RUP简介 233
7.7 应用案例 238
7.8 小结 254
习题7 255
参考文献 260
第8章 软件复用 261
8.1 软件复用技术概述 261
8.2 构件库的构造 266
8.3 面向对象的软件复用技术 270
8.4 小结 271
习题8 271
参考文献 272
第9章 软件项目管理与软件质量保证简介 273
9.1 软件项目管理的目的与内容 273
9.2 软件质量保证 294
9.3 能力成熟度模型简介 300
9.4 小结 306
习题9 306
参考文献 309
第10章 软件工程环境 310
10.1 软件工具 310
10.2 集成化的计算机辅助软件工程(CASE)环境 312
10.3 集成化CASE环境系统简介 315
10.4 小结 317
习题10 317
参考文献 317
附录A 课程设计 319
附录B 软件工程文档规范 328