第1章导论 1
1.1什么是软件工程 3
1.2软件开发的过程 7
1.3维护还是革新 10
1.4失败案例 11
1.5软件工程的道德 16
1.6君往何处 17
1.7小结 19
1.8扩展阅读 19
第一部分软件管理 24
第2章软件工程管理概述 24
2.1软件开发项目的计划 25
2.2软件开发项目的控制 27
2.3小结 29
第3章软件生命周期回顾 31
3.1瀑布模型 32
3.2敏捷方法 34
3.3统一软件开发过程 43
3.4模型驱动架构 45
3.5插曲:维护或演进 45
3.6软件产品线 48
3.7过程模型 49
3.8小结 51
3.9扩展阅读 51
第4章配置管理 54
4.1职责与任务 54
4.2配置管理计划 58
4.3小结 59
4.4扩展阅读 59
第5章人员管理与团队组织 61
5.1人员管理 62
5.2团队组织 65
5.3小结 70
5.4扩展阅读 71
第6章软件质量管理 72
6.1度量与数字 73
6.2质量属性的分类 77
6.3软件质量评价 81
6.4软件质量体系 84
6.5软件质量保证 84
6.6能力成熟度模型 85
6.7使用入门 90
6.8小结 92
6.9扩展阅读 93
第7章成本估算 95
7.1算法模型 97
7.2成本估算指南 109
7.3人力资源分配 112
7.4敏捷开发中的成本估计 114
7.5小结 115
7.6扩展阅读 116
第8章项目计划与控制 118
8.1项目控制的系统观念 118
8.2软件开发项目的分类法 120
8.3风险管理 123
8.4项目规划和控制技术 125
8.5小结 129
8.6扩展阅读 130
第二部分软件生命周期 132
第9章需求工程 132
9.1需求获取 136
9.2需求文档和管理 150
9.3需求说明的技术 156
9.4验证和确认 158
9.5小结 159
9.6扩展阅读 160
第10章建模 163
10.1经典建模技术 164
10.2对象及相关材料 168
10.3统一建模语言 172
10.4小结 179
10.5扩展阅读 180
第11章软件体系结构 181
11.1软件体系结构和软件生命周期 183
11.2体系结构设计 184
11.3体系结构视图 188
11.4体系结构风格 190
11.5软件体系结构评估 198
11.6小结 200
11.7扩展阅读 201
第12章软件设计 203
12.1设计依据 205
12.2经典设计方法 219
12.3面向对象分析和设计方法 230
12.4如何选择设计方法 237
12.5设计模式 240
12.6设计文档 244
12.7验证与确认 246
12.8小结 246
12.9扩展阅读 249
第13章软件测试 253
13.1测试目标 256
13.2测试和软件生命周期 261
13.3验证和确认规划以及文档编制 265
13.4人工测试技术 266
13.5基于覆盖率的测试技术 270
13.6基于故障的测试技术 274
13.7基于错误的测试技术 276
13.8测试技术的比较 277
13.9测试阶段 282
13.10软件可靠性评估 283
13.11小结 288
13.12扩展阅读 289
第14章软件维护 293
14.1维护种类回顾 295
14.2维护问题的主要原因 296
14.3逆向工程与重构 299
14.4重温软件演进 306
14.5组织和管理问题 307
14.6小结 316
14.7扩展阅读 317
第15章软件工具 319
15.1工具包 321
15.2以语言为中心的环境 322
15.3集成环境和工作平台 323
15.4以过程为中心的环境 327
15.5小结 328
15.6扩展阅读 329
第16章用户界面设计 332
16.1用户界面在哪里 334
16.2什么是用户界面 335
16.3人机交互中人的因素 336
16.4人机交互中模型的作用 339
16.5交互系统的设计 345
16.6任务分析 347
16.7用户界面的细节规范 351
16.8评价 352
16.9小结 355
16.10扩展阅读 356
第17章软件重用性 358
17.1重用的维度 359
17.2中级产品重用 361
17.3重用和软件的生命周期 365
17.4重用工具和技术 367
17.5软件重用前景 370
17.6软件重用的非技术因素 373
17.7小结 376
17.8扩展阅读 377
第18章基于组件的软件工程 379
18.1为什么要有基于组件的软件工程 380
18.2组件模型和组件 381
18.3基于组件开发过程和组件生命周期 387
18.4基于组件的开发中的架构方法 391
18.5小结 392
18.6扩展阅读 392
第19章面向服务 394
19.1服务、服务描述和服务通信 395
19.2面向服务的架构(SOA) 398
19.3Web服务 399
19.4面向服务软件工程 405
19.5小结 406
19.6扩展阅读 407
第20章全球化软件开发 409
20.1全面系统开发的挑战 410
20.2如何克服差距 414
20.3小结 417
20.4扩展阅读 418
中英文术语对照表 419
参考文献 426