目录 1
第1章 软件工程概述 1
1.1 什么是软件工程 2
1.2 软件工程取得了哪些进展 4
1.3 什么是好的软件 7
1.4 谁来做软件工程 12
1.5 系统方法 13
1.6 工程的方法 18
1.7 开发团队的成员 21
1.8 软件工程有哪些变化 23
1.9 信息系统的例子 30
1.10 实时系统的例子 32
1.11 本章对你意味着什么 33
1.12 本章对开发小组意味着什么 34
1.13 本章对研究人员意味着什么 34
1.14 学期项目 34
1.16 练习 36
1.15 主要参考文献 36
第2章 过程和生命周期的建模 39
2.1 过程的含意 39
2.2 软件过程模型 41
2.3 过程建模工具和技术 51
2.4 实际的过程建模 57
2.5 信息系统的例子 60
2.6 实时系统的例子 61
2.7 本章对你意味着什么 62
2.8 本章对开发小组意味着什么 63
2.9 本章对研究人员意味着什么 63
2.10 学期项目 63
2.11 主要参考文献 65
2.12 练习 66
第3章 项目的计划和管理 68
3.1 跟踪项目进展 68
5.2 分解和模块性 1 73
5.3 技术风格和策略 1 75
3.2 项目人员 79
3.3 工作量估计 87
3.4 风险管理 99
3.5 项目计划 103
3.6 过程模型和项目管理 105
3.7 信息系统的例子 111
3.8 实时系统的例子 113
3.9 本章对你意味着什么 114
3.10 本章对开发小组意味着什么 114
3.12 学期项目 115
3.13 主要参考文献 115
3.11 本章对研究人员意味着什么 115
3.14 练习 116
第4章 需求获取 119
4.1 需求定义过程 119
4.2 需求的类型 125
4.3 需求的特征 127
4.4 如何表达需求 129
4.5 其他需求方法 141
4.6 原型化需求 147
4.7 需求文档 149
4.8 参与需求过程的人员 151
4.9 需求确认 152
4.10 需求的度量 155
4.11 需求规格说明技术的选择 156
4.12 信息系统的例子 159
4.13 实时系统的例子 161
4.14 本章对你意味着什么 162
4.15 本章对开发小组意味着什么 163
4.16 本章对研究人员意味着什么 164
4.17 学期项目 164
4.18 主要参考文献 167
4.19 练习 168
第5章 系统设计 170
5.1 什么是设计 170
5.4 创建设计中的问题 182
5.5 优秀设计的特征 191
5.6 改进设计的技术 200
5.7 设计的评估和确认 208
5.8 设计归档 216
5.9 信息系统的例子 217
5.10 实时系统的例子 219
5.12 本章对开发小组意味着什么 220
5.13 本章对研究人员意味着什么 220
5.11 本章对你意味着什么 220
5.14 学期项目 221
5.15 主要参考文献 221
5.16 练习 221
第6章对 象 224
6.1 什么是OO 225
6.2 OO开发过程 228
6.3 用例 230
6.4 OO的表示:一个UML示例 234
6.5 OO系统设计 235
6.6 OO程序设计 248
6.7 OO度量 254
6.8 信息系统的例子 261
6.9 实时系统的例子 262
6.10 本章对你意味着什么 263
6.11 本章对开发小组意味着什么 263
6.12 本章对研究人员意味着什么 263
6.13 学期项目 264
6.14 主要参考文献 264
6.15 练习 264
第7章 程序的编写 265
7.1 编程标准和过程 265
7.2 编程的指导方针 267
7.3 文档 276
7.4 信息系统的例子 280
7.6 本章对你意味着什么 282
7.5 实时系统的例子 282
7.7 本章对开发小组意味着什么 283
7.8 本章对研究人员意味着什么 283
7.9 学期项目 283
7.10 主要参考文献 284
7.11 练习 284
第8章 程序的测试 286
8.1 软件故障(错误)和失效 286
8.2 测试的有关事项 291
8.3 单元测试 295
8.4 集成测试 307
8.5 测试面向对象的系统 313
8.6 测试计划 316
8.7 自动测试工具 317
8.8 何时停止测试 320
8.9 信息系统的例子 325
8.10 实时系统的例子 325
8.11 本章对你意味着什么 326
8.12 本章对开发小组意味着什么 327
8.13 本章对研究人员意味着什么 327
8.14 学期项目 327
8.15 主要参考文献 328
8.16 练习 328
第9章 系统的测试 331
9.1 系统测试的原则 331
9.2 功能测试 342
9.3 性能测试 347
9.4 可靠性、可用性和可维护性 349
9.5 验收测试 357
9.6 安装测试 359
9.7 自动系统测试 360
9.8 测试文档 361
9.9 测试安全攸关的系统 370
9.10 信息系统的例子 380
9.11 实时系统的例子 382
9.12 本章对你意味着什么 383
9.13 本章对开发小组意味着什么 383
9.14 本章对研究人员意味着什么 383
9.16 主要参考文献 384
9.15 学期项目 384
9.17 练习 385
第10章 系统的交付 389
10.1 培训 389
10.2 文档 393
10.3 信息系统的例子 399
10.4 实时系统的例子 400
10.5 本章对你意味着什么 400
10.6 本章对开发小组意味着什么 400
10.7 本章对研究人员意味着什么 401
10.8 学期项目 401
10.9 主要参考文献 401
10.10 练习 402
11.1 变化的系统 403
第11章系统的维护 403
11.2 维护的本质 409
11.3 与维护有关的问题 412
11.4 度量维护特性 419
11.5 维护技术和工具 424
11.6 软件再生 430
11.7 信息系统的例子 436
11.8 实时系统的例子 437
11.9 本章对你意味着什么 437
11.10 本章对开发小组意味着什么 438
11.11 本章对研究人员意味着什么 438
11.13 主要参考文献 439
11.14 练习 439
11.12 学期项目 439
第12章 产品、过程和资源的评价 441
12.1 评价的方法 441
12.2 选择评价技术 445
12.3 评价和预测 449
12.4 评价产品 453
12.5 评价过程 467
12.6 评价资源 480
12.7 信息系统的例子 485
12.8 实时系统的例子 485
12.9 本章对你意味着什么 485
12.10 本章对开发小组意味着什么 486
12.11 本章对研究人员意味着什么 486
12.13 主要参考文献 487
12.12 学期项目 487
12.14 练习 488
第13章 预测、产品、过程和资源的改进 489
13.1 改进预测 489
13.2 改进产品 497
13.3 改进过程 501
13.4 改善资源 507
13.5 总的改进建议 510
13.6 信息系统的例子 511
13.7 实时系统的例子 512
13.8 本章对你意味着什么 512
13.11 学期项目 513
13.10 本章对研究人员意味着什么 513
13.9 本章对开发小组意味着什么 513
13.12 主要参考文献 514
13.13 练习 514
第14章 软件工程的前景 515
14.1 已经取得的进展 515
14.2 技术传播 518
14.3 软件工程中的决策 524
14.4 软件工程的前景 535
14.5 学期项目 535
14.6 主要参考文献 536
14.7 练习 536
参考书目注释 537