第1章 软件工程概述 1
1.1软件工程的背景 1
1.2软件工程知识体系 3
1.3软件工程的三段论 4
1.4软件工程模型 5
1.4.1软件项目开发路线图 7
1.4.2软件项目管理路线图 8
1.4.3软件过程改进路线图 9
1.5软件开发模型 12
1.5.1瀑布模型 12
1.5.2 V模型 12
1.5.3原型模型 13
1.5.4增量式模型 13
1.5.5螺旋式模型 13
1.5.6喷泉模型 15
1.5.7智能模型 15
1.6软件工程中的复用原则 15
1.7小结 17
1.8练习题 17
第2章 结构化方法和面向对象方法 19
2.1软件工程方法比较 19
2.2结构化软件工程方法 20
2.2.1结构化需求分析 21
2.2.2结构化概要设计与详细设计 21
2.2.3结构化编码 22
2.2.4结构化测试 22
2.2.5结构化维护 22
2.3面向对象软件工程方法 22
2.3.1面向对象需求分析 23
2.3.2面向对象设计 24
2.3.3面向对象编程 24
2.3.4面向对象测试 24
2.3.5面向对象维护 24
2.4软件逆向工程 25
2.5小结 25
2.6练习题 25
第3章 软件项目的需求分析 26
3.1软件项目需求概述 26
3.1.1需求定义 26
3.1.2需求类型 27
3.1.3需求的重要性 28
3.2需求工程 28
3.2.1需求获取 28
3.2.2需求分析 31
3.2.3需求规格说明 31
3.2.4需求验证 32
3.2.5需求变更 32
3.3需求分析模型 33
3.3.1关联模型 34
3.3.2行为模型 34
3.3.3数据模型 35
3.3.4原型模型 37
3.4需求建模的方法 37
3.4.1结构化分析方法 37
3.4.2面向对象分析方法 39
3.4.3其他方法 49
3.5需求规格说明文档 51
3.6项目案例 53
3.7小结 63
3.8练习题 63
第4章 软件项目的概要设计 65
4.1软件设计定义 65
4.2概要设计方法概论 66
4.3设计模型 66
4.3.1体系结构设计 66
4.3.2数据设计 69
4.3.3接口设计 78
4.3.4构件设计 80
4.4结构化的设计方法 85
4.4.1功能模块划分 85
4.4.2面向数据流的设计 86
4.4.3输入/输出设计 87
4.5面向对象的设计方法 87
4.5.1识别对象 88
4.5.2确定属性 89
4.5.3定义操作 89
4.5.4确定对象之间的通信 90
4.5.5完成对象定义 90
4.6关于软件模式和框架的概念 96
4.6.1体系结构模式 96
4.6.2设计模式 98
4.6.3体系结构框架 99
4.7软件设计指导原则 102
4.8概要设计文档 103
4.9项目案例 106
4.10小结 119
4.11练习题 119
第5章 软件项目的详细设计 121
5.1关于详细设计的概念 121
5.2详细设计的内容 122
5.3结构化的详细设计方法 122
5.3.1面向数据结构的设计 122
5.3.2结构化详细设计的例子 125
5.4面向对象的详细设计方法 126
5.4.1面向对象的详细设计 126
5.4.2面向对象详细设计的例子 127
5.5表达详细设计的工具 129
5.5.1图形符号的设计方式 129
5.5.2表格的设计方式 129
5.5.3过程设计语言PDL 130
5.6详细设计文档 132
5.7项目案例 133
5.8小结 145
5.9练习题 145
第6章 软件项目的编码 147
6.1编码概述 147
6.2编码方法 147
6.2.1结构化编程 148
6.2.2面向对象编程 152
6.3编码策略 153
6.3.1自顶向下的开发策略 153
6.3.2自底向上的开发策略 153
6.3.3自顶向下和自底向上相结合的开发策略 153
6.3.4线程模式的开发策略 153
6.4编码语言与编码标准和规范 154
6.4.1编码语言 154
6.4.2编码标准和规范 154
6.5关于重构理念和重用原则 161
6.5.1重构理念 161
6.5.2重用原则 161
6.6编码文档 162
6.7项目案例 162
6.8小结 172
6.9练习题 172
第7章 软件项目的测试 174
7.1软件测试概述 174
7.2软件测试方法概论 175
7.3静态测试 176
7.3.1文档审查 176
7.3.2代码检查 178
7.3.3技术评审 178
7.4动态测试 180
7.4.1白盒测试方法 180
7.4.2黑盒测试方法 185
7.4.3灰盒测试方法 196
7.5软件测试级别 196
7.5.1单元测试 197
7.5.2集成测试 199
7.5.3系统测试 201
7.5.4验收测试 204
7.5.5上线测试 204
7.5.6回归测试 204
7.6面向对象的测试 204
7.6.1面向对象分析的测试 205
7.6.2面向对象设计的测试 205
7.6.3面向对象的单元测试 206
7.6.4面向对象的集成测试 207
7.6.5面向对象的系统测试方法 207
7.7测试过程管理 208
7.7.1软件测试计划 208
7.7.2软件测试设计 209
7.7.3软件测试开发 210
7.7.4软件测试执行 210
7.7.5软件测试跟踪 211
7.7.6软件测试评估与总结 211
7.8自动化测试 211
7.9软件测试过程的文档 213
7.9.1测试计划文档 213
7.9.2测试设计文档 214
7.9.3软件测试报告 222
7.10项目案例 224
7.10.1集成测试设计案例 224
7.10.2系统测试设计案例 230
7.10.3系统测试报告案例 238
7.11小结 250
7.12练习题 250
第8章 软件项目的提交 252
8.1软件项目验收与移交 252
8.2验收测试 253
8.3培训 254
8.3.1培训对象 254
8.3.2培训方式 254
8.3.3培训指南 255
8.4用户文档 255
8.4.1用户手册 255
8.4.2系统管理员手册 255
8.4.3其他文档 256
8.5软件项目提交文档 256
8.5.1验收测试报告 256
8.5.2用户手册 259
8.5.3系统管理员手册 260
8.5.4产品提交文档 261
8.6项目案例 262
8.7小结 265
8.8练习题 265
第9章 软件项目的维护 267
9.1软件项目维护概述 267
9.2试运行 267
9.3软件的可维护性 268
9.4软件项目维护的类型 268
9.5软件再工程过程 269
9.6软件项目维护的过程 271
9.6.1维护申请 271
9.6.2维护实现 272
9.6.3维护产品发布 272
9.7软件维护过程文档 272
9.8项目案例 272
9.9小结 273
9.10练习题 273
参考文献 275