第一章 软件质量保证的基本概念 1
1.1 软件生产率 1
1.1.1 软件生产率和影响生产率的因素 1
1.1.2 软件质量和软件生产率之间的关系 5
1.1.3 提高软件生产率 6
1.2 软件工程和软件质量保证 9
1.2.1 软件工程的概念 9
1.2.2 软件工程原理 9
1.2.3 软件工程的规范 12
1.2.4 软件工程和软件质量保证 13
1.2.5 软件工程中的度量 14
1.2.6 软件复杂性度量法 21
1.3 软件质量和软件质量保证 26
1.3.1 软件质量 26
1.3.2 软件质量保证的基础 29
1.3.3 软件质量模型 39
第二章 软件质量保证的工程方法 49
2.1 软件质量保证的工程基础 49
2.1.1 原理 49
2.1.2 方法 50
2.1.3 语言 51
2.1.4 工具 51
2.1.5 原型技术 51
2.2 软件质量保证的过程模型 55
2.2.1 过程模型的类型 56
2.2.2 质量保证对过程模型的要求 59
2.2.3 定义和维护过程模型时的需求 60
2.2.4 评价过程模型的质量特征 61
2.3 软件质量保障中的文档管理 61
2.3.1 建立文档中存在的问题 61
2.3.2 从质量保证的角度对编制和建立文档提出的需求 62
2.3.3 文档的类型和编制文档的原则 63
2.3.4 支持项目文档的措施 64
2.4 编程语言的选择 66
2.4.1 编程语言的重要性 66
2.4.2 编程语言与质量保证的关系 67
2.4.3 选择编程语言的标准 67
2.5 软件工具和生产环境 68
2.5.1 CASE工具 69
2.5.2 软件生产环境 72
2.5.3 质量保证对软件生产环境的要求 76
2.6 系统中的软件配置和软件配置管理 77
2.6.1 软件配置 77
2.6.2 软件配置管理的原则 79
2.6.3 配置管理的辅助方法和手段 83
2.7 维护过程中的质量保证 85
2.7.1 执行维护的原则 86
2.7.2 实现可维护性的措施 86
2.7.3 维护活动 87
2.7.4 维护与质量保证的关系 89
2.8 人的因素对质量的影响 91
2.8.1 公司文化 91
2.8.2 人际关系 92
2.8.3 工作环境的影响 93
第三章 软件质量的测试和评价 95
3.1 确认、验证和认证 95
3.2 静态测试 97
3.2.1 审计 97
3.2.2 评审 99
3.2.3 开发过程的评审 102
3.2.4 静态分析 107
3.2.5 正确性证明 108
3.2.6 符号程序执行 109
3.3 动态测试 110
3.3.1 动态测试的内容 111
3.3.2 动态测试的过程和方法 113
3.3.3 通用的软件测试工具 119
3.3.4 动态测试过程的组织和管理 120
第四章 软件质量保证的标准和规范 132
4.1 ISO-9000国际标准及其在软件中的应用 132
4.1.1 ISO9000系列 132
4.1.2 ISO 9001概述 132
4.1.3 ISO 9000-3概述 133
4.1.4 ISO9004-2 133
4.1.5 ISO-9000国际标准的应用 134
4.1.6 ISO-9000认证 134
4.1.7 鉴定 135
4.2 软件工程过程评估和改进方法 135
4.2.1 美国软件工程研究所的能力成熟度模型 135
4.2.2 国际标准化组织的软件过程评估标准 138
4.3 软件质量特性的标准定义 139
4.3.1 功能度 139
4.3.2 可靠性 139
4.3.3 可用性 140
4.3.4 效率 140
4.3.5 可维护性 140
4.3.6 可移植性 141
4.4 SPARDAT质量模型 141
4.4.1 SPARDAT质量模型的特性 142
4.4.2 SPARDAT质量模型的应用和评价 153
4.5 计算机软件工程规范国家标准汇编 154
第五章 工程中软件质量保证系统的建立与实践 155
5.1 软件质量保证系统的结构组成 155
5.1.1 软件质量保证机构的类型 155
5.1.2 软件质量保证组织的组织原则 157
5.2 软件质量保证系统的执行 157
5.2.1 质量保证与开发活动的相互影响过程 158
5.2.2 软件质量保证措施的类型 158
5.3 质量保证系统的文档 159
5.3.1 质量保证政策 159
5.3.2 质量保证手册、标准和规程 159
5.3.3 与项目有关的质量保证计划 160
5.4 质量报告 160
5.4.1 完成度量 161
5.4.2 生产率度量 161
5.4.3 验证质量保证措施 162
5.4.4 有关错误和问题的数据 162
5.4.5 质量成本 162
5.5 软件质量保证部门的任务 163
5.5.1 项目外的任务 163
5.5.2 参与项目开发任务 163
5.5.3 对质量保证部门工作人员的要求 163
5.6 建立软件质量保证系统的过程 164
5.6.1 准备工作过程 164
5.6.2 基本系统的建立和扩充 164
5.6.3 审计质量保证系统 164
5.6.4 建立质量保证工作组 164
5.7 控制和监测成本 165
5.7.1 质量保证对成本的影响 165
5.7.2 成本和质量保证的有效性的关系 165
5.8 实例一:SPARDAT项目中质量保证系统的建立 166
5.8.1 建立步骤 166
5.8.2 组织特征 166
5.8.3 SPARDAT系统中存在的问题 166
5.9 实例二:某软件系统的测试计划 167
5.9.1 简介 167
5.9.2 文件编写者 167
5.9.3 资源需求 167
5.9.4 测试策略 168
5.9.5 测试案例范围 168
5.9.6 限制 170
5.9.7 问题与考虑 170
5.9.8 版本历史 170
附录A 171
附录B 176
附录C 178
参考文献 180