1 软件工程引论 1
1.1 软件困境 1
1.2 软件工程 4
1.3 某些广泛使用的过程模型 7
1.4 小结 10
练习题一 11
2 软件工程管理技术 12
2.1 软件特征量 12
2.2 软件规模估计 16
2.3 软件工作量的估计 20
2.4 软件项目的调度 25
2.5 人员组织 29
2.6 软件质量管理 32
2.7 软件配置管理 37
2.8 小结 43
练习题二 43
3 可行性研究 46
3.1 可行性研究的基础 46
3.2 可行性研究的任务 47
3.3 成本/效益分析 49
3.4 可行性研究的步骤 52
3.5 小结 59
练习题三 59
4.1 用户需求分析的任务 61
4 需求分析和规范 61
4.2 需求规范 65
4.3 数据流程图 67
4.4 数据字典 73
4.5 判定表与判定树 76
4.6 有限状态机 79
4.7 Petri网 80
4.8 形式化规范技术 82
4.9 用户需求规范的评审 90
4.10 小结 91
练习题四 91
5.1 总体设计的概念与原则 93
5 总体设计 93
5.2 模块化原理 98
5.3 总体设计中的特征量 107
5.4 图形工具 110
5.5 软件结构的设计方法 113
5.6 程序结构的优化设计 120
5.7 大型软件系统设计中的可集成性问题 125
5.8 小结 127
练习题五 127
第6章 详细设计 129
6.1 数据设计 129
6.2 人-机接口的设计 130
6.3 模块逻辑的设计 135
6.4 表示程序逻辑的工具 138
6.5 结构程序设计 141
6.6 详细设计的特征量 152
6.7 小结 159
练习题六 159
7 程序设计 163
7.1 程序设计语言 163
7.2 程序设计风格 166
7.3 反缺陷程序设计 171
7.4 小结 175
练习题七 175
8 测试 176
8.1 白盒测试 176
8.2 黑盒测试 183
8.3 单元测试 185
8.4 集成测试 188
8.5 调试 191
8.6 集成测试的特征量 195
8.7 小结 198
练习题八 199
9 面向对象方法学引论 201
9.1 传统方法的缺点 201
9.2 面向对象的概念 202
9.3 面向对象的程序设计 205
9.4 面向对象的系统分析和设计 210
练习题九 215
9.5 小结 215
10 面向对象的系统分析 217
10.1 领域分析 217
10.2 OO分析模型的一般过程和部件 219
10.3 OOA过程 220
10.4 对象行为模型 235
10.5 OO分析模型的进一步讨论 242
10.6 小结 249
练习题十 249
11 面向对象的系统设计 251
11.1 子系统设计 251
11.2 系统设计部件及其相互作用结构 262
11.3 对象设计 283
11.4 设计模板 288
11.5 小结 289
练习题十一 289
12 面向对象系统的测试 291
12.1 拓宽测试的观点 291
12.2 测试OOA和OOD模型 292
12.3 面向对象的测试策略 293
12.4 OO软件的测试案例设计 295
12.5 适用于类级的测试方法 299
12.6 类间测试案例设计 300
12.7 小结 302
练习题十二 303
参考文献 304