第1章 软件工程概述 1
1.1 软件的概念、特点和分类 1
1.2 软件的发展和软件危机 6
1.3 软件工程过程和软件生存期 9
1.4 软件生存期模型(Software Life Cycle Model) 10
1.5 软件工程的基本目标 15
第2章 系统分析 17
2.1 基于计算机的系统 17
2.2 计算机系统工程 18
2.3 系统需求识别 23
2.4 可行性研究 24
2.5 成本-效益分析 25
2.6 技术分析 29
2.7 分配与权衡 30
2.8 系统结构的模型化 31
2.9 系统定义与评审 34
第3章 软件需求分析 36
3.1 软件需求分析的任务 36
3.2 需求分析的过程 37
3.3 软件需求分析的原则 41
3.4 分析员和用户的责任 42
3.5 软件需求分析方法 43
3.6 原型化方法(Protoyping) 45
3.7 结构化分析方法(Structured Analisys,SA) 53
3.8 系统动态分析 64
3.9 数据及数据库需求 69
3.10 软件需求分析工具 73
第4章 软件设计 77
4.1 软件设计的目标和任务 77
4.2 软件设计基础 81
4.3 模块的独立性 89
4.4 结构化设计方法(Structured Design,SD) 96
4.5 数据设计及文件设计 109
4.6 过程设计 116
第5章 Jackson系统开发(JSD)方法 129
5.1 进程模型 129
5.2 JSD方法的步骤 130
5.3 实体动作分析 130
5.4 实体结构分析 131
5.5 定义初始模型 132
5.6 功能描述 134
5.7 决定系统时间特性 138
5.8 实现 138
第6章 用户界面设计 144
6.1 用户界面应具备的特性 144
6.2 用户界面设计的任务分析 145
6.3 用户界面任务和工作设计 149
6.4 界面设计的基本类型 151
6.5 数据输入界面设计 157
6.6 数据显示界面设计 162
6.7 控制界面的设计 166
第7章 程序编码 174
7.1 对源程序的质量要求 174
7.2 结构化程序设计(Structured Programming) 175
7.3 程序设计风格(Programming Style) 180
7.4 程序效率 188
7.5 程序设计语言 190
7.6 程序复杂性度量 196
第8章 软件测试 203
8.1 软件测试的基础 203
8.2 测试用例设计 207
8.3 白盒测试的测试用例设计 209
8.4 黑盒测试的测试用例设计 219
8.5 软件测试的策略 232
8.6 程序的静态分析方法 246
8.7 调试(Debug,排错) 249
8.8 软件测试工具 254
第9章 面向对象技术 262
9.1 面向对象的概念 262
9.2 开发过程 266
9.3 面向对象分析与高层设计 273
9.4 类的设计 288
9.5 实现与测试 295
9.6 Coad与Yourdon面向对象分析与设计技术 306
9.7 CRC卡片 312
9.8 Booch的方法 314
第10章 软件质量保证 319
10.1 软件质量的概念 319
10.2 软件质量的度量和评价 325
10.3 软件质量保证 327
10.4 软件质量保证体系 331
10.5 质量保证的实施 334
10.6 软件的质量设计 336
10.7 技术评审 343
10.8 软件可靠性 352
10.9 测试中的可靠性分析 355
10.10 软件容错技术 362
第11章 软件维护 369
11.1 软件维护的概念 369
11.2 软件维护活动 372
11.3 程序修改的步骤及修改的副作用 375
11.4 软件可维护性 380
11.5 提高可维护性的方法 382
11.6 维护“老化代码” 388
11.7 逆向工程和再工程 388
11.8 软件配置管理(Software Configuration Management) 393
12.1 什么是软件工程标准 404
第12章 软件工程标准化与软件文档 404
12.2 软件工程标准化的意义 405
12.3 软件工程标准的制定与推行 406
12.4 软件工程标准的层次 407
12.5 我国的软件工程标准化工作 409
12.6 ISO9000-3标准及软件质量认证 410
12.7 在开发机构中推行软件工程标准化 416
12.8 文档的作用与分类 417
第13章 软件项目管理与计划 425
13.1 项目管理过程 425
13.2 软件生产率和质量的度量 426
13.3 在软件工程过程中使用度量 432
13.4 软件项目估算 437
13.5 软件开发成本估算 445
13.6 风险分析 455
13.7 进度安排 458
13.8 软件项目的组织与计划 464
13.9 软件过程成熟度模型(CMM,Capatility Maturity Model) 473
附录 计算机软件开发文档编写指南 478
一、可行性研究报告 478
二、项目开发计划 480
三、需求规格说明书 481
四、概要设计说明书 482
五、详细设计说明书 483
六、用户操作手册 483
七、测试计划 485
八、测试分析报告 486
九、开发进度月报 486
十、项目开发总结报告 487
十一、程序维护手册 487
十二、软件问题报告 489
十三、软件修改报告 490
参考文献 492