第1章 软件工程基本概念 1
1.1 软件危机与软件工程 1
1.1.1 核心知识 1
1.1.2 能力目标 3
1.1.3 任务驱动 3
1.1.4 实践环节 3
1.2 软件生命周期 3
1.2.1 核心知识 3
1.2.2 能力目标 5
1.2.3 任务驱动 6
1.2.4 实践环节 6
1.3 常用的软件开发模型 6
1.3.1 核心知识 6
1.3.2 能力目标 7
1.3.3 任务驱动 7
1.3.4 实践环节 8
1.4 小结 9
习题1 10
第2章 可行性研究 12
2.1 可行性研究概述 12
2.1.1 核心知识 12
2.1.2 能力目标 15
2.1.3 任务驱动 15
2.1.4 实践环节 15
2.2 可行性研究报告 15
2.2.1 核心知识 15
2.2.2 能力目标 16
2.2.3 任务驱动 16
2.2.4 实践环节 16
2.3 系统流程图 17
2.3.1 核心知识 17
2.3.2 能力目标 19
2.3.3 任务驱动 19
2.3.4 实践环节 19
2.4 数据流图及数据字典 20
2.4.1 核心知识 20
2.4.2 能力目标 24
2.4.3 任务驱动 25
2.4.4 实践环节 27
2.5 成本/效益分析 28
2.5.1 核心知识 28
2.5.2 能力目标 29
2.5.3 任务驱动 29
2.5.4 实践环节 29
2.6 小结 29
习题2 29
第3章 需求分析 34
3.1 需求分析概述 34
3.1.1 核心知识 34
3.1.2 能力目标 36
3.1.3 任务驱动 36
3.1.4 实践环节 37
3.2 需求获取方法 37
3.2.1 核心知识 37
3.2.2 能力目标 38
3.2.3 任务驱动 39
3.2.4 实践环节 39
3.3 需求分析与建模 40
3.3.1 核心知识 40
3.3.2 能力目标 43
3.3.3 任务驱动 43
3.3.4 实践环节 44
3.4 软件需求规格说明 45
3.4.1 核心知识 45
3.4.2 能力目标 46
3.4.3 任务驱动 46
3.4.4 实践环节 46
3.5 需求验证与管理 46
3.5.1 核心知识 46
3.5.2 能力目标 47
3.5.3 任务驱动 47
3.5.4 实践环节 47
3.6 案例分析——图书管理系统需求分析 47
3.7 小结 52
习题3 52
第4章 概要设计 56
4.1 设计概述 56
4.1.1 核心知识 56
4.1.2 能力目标 57
4.1.3 任务驱动 57
4.1.4 实践环节 58
4.2 设计原理 58
4.2.1 核心知识 58
4.2.2 能力目标 62
4.2.3 任务驱动 62
4.2.4 实践环节 63
4.3 设计工具 64
4.3.1 核心知识 64
4.3.2 能力目标 67
4.3.3 任务驱动 67
4.3.4 实践环节 67
4.4 设计方法 67
4.4.1 核心知识 68
4.4.2 能力目标 75
4.4.3 任务驱动 75
4.4.4 实践环节 76
4.5 设计文档 76
4.5.1 核心知识 76
4.5.2 能力目标 77
4.5.3 任务驱动 77
4.5.4 实践环节 77
4.6 案例分析——图书管理系统概要设计 77
4.7 小结 79
习题4 79
第5章 详细设计 82
5.1 设计概述 82
5.1.1 核心知识 82
5.1.2 能力目标 83
5.1.3 任务驱动 83
5.1.4 实践环节 83
5.2 设计工具 83
5.2.1 核心知识 83
5.2.2 能力目标 87
5.2.3 任务驱动 87
5.2.4 实践环节 88
5.3 设计方法 88
5.3.1 核心知识 88
5.3.2 能力目标 93
5.3.3 任务驱动 93
5.3.4 实践环节 94
5.4 设计文档 95
5.4.1 核心知识 95
5.4.2 能力目标 95
5.4.3 任务驱动 95
5.4.4 实践环节 95
5.5 McCabe方法 95
5.5.1 核心知识 96
5.5.2 能力目标 96
5.5.3 任务驱动 97
5.5.4 实践环节 98
5.6 案例分析——图书管理系统详细设计 98
5.7 小结 100
习题5 100
第6章 编码与测试 102
6.1 编码 102
6.1.1 核心知识 102
6.1.2 能力目标 104
6.1.3 任务驱动 104
6.1.4 实践环节 104
6.2 测试概述 104
6.2.1 核心知识 104
6.2.2 能力目标 107
6.2.3 任务驱动 107
6.2.4 实践环节 107
6.3 单元测试 107
6.3.1 核心知识 107
6.3.2 能力目标 110
6.3.3 任务驱动 110
6.3.4 实践环节 111
6.4 集成测试 111
6.4.1 核心知识 111
6.4.2 能力目标 114
6.4.3 任务驱动 114
6.4.4 实践环节 114
6.5 白盒测试技术 115
6.5.1 核心知识 115
6.5.2 能力目标 119
6.5.3 任务驱动 119
6.5.4 实践环节 120
6.6 黑盒测试技术 120
6.6.1 核心知识 121
6.6.2 能力目标 124
6.6.3 任务驱动 124
6.6.4 实践环节 125
6.7 JUnit单元测试 125
6.7.1 核心知识 125
6.7.2 能力目标 136
6.7.3 任务驱动 136
6.7.4 实践环节 137
6.8 案例分析——图书管理系统测试 138
6.9 小结 138
习题6 139
第7章 维护 144
7.1 维护概述 144
7.1.1 核心知识 144
7.1.2 能力目标 146
7.1.3 任务驱动 146
7.1.4 实践环节 147
7.2 维护实施过程 147
7.2.1 核心知识 147
7.2.2 能力目标 149
7.2.3 任务驱动 150
7.2.4 实践环节 150
7.3 软件的可维护性 150
7.3.1 核心知识 150
7.3.2 能力目标 151
7.3.3 任务驱动 151
7.3.4 实践环节 151
7.4 小结 152
习题7 152
第8章 面向对象方法学 154
8.1 面向对象方法概述 154
8.1.1 核心知识 154
8.1.2 能力目标 157
8.1.3 任务驱动 157
8.1.4 实践环节 157
8.2 面向对象分析建模 157
8.2.1 核心知识 157
8.2.2 能力目标 159
8.2.3 任务驱动 159
8.2.4 实践环节 159
8.3 建立对象模型 160
8.3.1 核心知识 160
8.3.2 能力目标 163
8.3.3 任务驱动 163
8.3.4 实践环节 163
8.4 建立动态模型 164
8.4.1 核心知识 164
8.4.2 能力目标 166
8.4.3 任务驱动 166
8.4.4 实践环节 167
8.5 建立功能模型 167
8.5.1 核心知识 167
8.5.2 能力目标 169
8.5.3 任务驱动 169
8.5.4 实践环节 170
8.6 设计模式简介 170
8.6.1 核心知识 171
8.6.2 能力目标 183
8.6.3 任务驱动 183
8.6.4 实践环节 185
8.7 面向对象的程序设计与实现 185
8.7.1 核心知识 185
8.7.2 能力目标 188
8.7.3 任务驱动 188
8.7.4 实践环节 193
8.8 案例分析——图书管理系统分析与设计 193
8.8.1 图书管理系统分析 193
8.8.2 图书管理系统设计 199
8.9 小结 202
习题8 202
第9章 软件项目管理 203
9.1 软件项目管理概述 203
9.1.1 核心知识 203
9.1.2 能力目标 206
9.1.3 任务驱动 207
9.1.4 实践环节 207
9.2 软件项目成本管理 207
9.2.1 核心知识 208
9.2.2 能力目标 213
9.2.3 任务驱动 214
9.2.4 实践环节 215
9.3 软件项目进度管理 215
9.3.1 核心知识 215
9.3.2 能力目标 219
9.3.3 任务驱动 219
9.3.4 实践环节 220
9.4 软件项目配置管理 220
9.4.1 核心知识 220
9.4.2 能力目标 224
9.4.3 任务驱动 224
9.4.4 实践环节 224
9.5 软件项目风险管理 224
9.5.1 核心知识 225
9.5.2 能力目标 232
9.5.3 任务驱动 232
9.5.4 实践环节 233
9.6 CMM与CMMI 233
9.6.1 核心知识 233
9.6.2 能力目标 236
9.6.3 任务驱动 236
9.6.4 实践环节 236
9.7 项目管理工具Microsoft Project及使用 236
9.7.1 核心知识 236
9.7.2 能力目标 245
9.7.3 任务驱动 245
9.7.4 实践环节 245
9.8 小结 245
习题9 246
第10章 软件工程实验 248
10.1 结构化分析实验 248
10.1.1 实验目的 248
10.1.2 实验环境 248
10.1.3 实验内容 248
10.1.4 实验成果 250
10.2 数据库概念结构设计实验 250
10.2.1 实验目的 250
10.2.2 实验环境 250
10.2.3 实验内容 250
10.2.4 实验成果 250
10.3 结构化设计实验 251
10.3.1 实验目的 251
10.3.2 实验环境 251
10.3.3 实验内容 251
10.3.4 实验成果 251
10.4 软件测试实验 251
10.4.1 实验目的 251
10.4.2 实验环境 252
10.4.3 实验内容 252
10.4.4 实验成果 254
10.5 软件项目管理实验 254
10.5.1 实验目的 254
10.5.2 实验环境 254
10.5.3 实验内容 255
10.5.4 实验成果 255
10.6 综合实例——网上书店系统 255
10.6.1 问题定义 255
10.6.2 系统需求分析 256
10.6.3 软件设计 260
10.6.4 系统测试 264
参考文献 267