《软件质量与可靠性保证技术》采用以软件的正确性和可靠性为中心的质量观点,关注与缺陷作斗争的技术和方法,包含了软件工程中与缺陷预防、缺陷检测相关的技术,如静态测试技术、动态测试技术、配置管理技术等,同时突出加强了软件可靠性工程相关技术,如可靠性分析技术FMEA、FTA、软件可靠性测试技术、度量技术等,体现了以软件工程为基础,加强软件可靠性工程技术的软件可靠性保证理念。
《软件质量与可靠性保证技术》是质量、可靠性专业、计算机软件专业的本科生教材,也可供相关专业自学或从业人员查阅使用。
随着计算机系统越来越广泛地应用于日常工作和生活的各个方面,个人、组织和社会对于组成计算机系统的核心部分——计算机软件的依赖无所不在。人们除了要求计算机系统提供更加快速、强大的功能外,还要求其具有正确、易用、不易出错、出错后可快速恢复、安全等多种质量特性。计算机软件不正确、不可靠、不安全会带来许多不利,甚至引发灾难性的后果,因此软件工程师、软件质量保证人员、可靠性工程师对此要特别予以重视。
本书的特点是采用以软件正确性和可靠性为中心的质量观点,关注与缺陷作斗争的技术和方法。事实上,与缺陷作斗争也是大多数软件开发组织质量保证的中心工作。因此,本书融合了软件工程中与缺陷预防、缺陷检测相关的技术,如静态测试技术、动态测试技术、配置管理技术等;同时突出加强了软件可靠性工程相关技术,如可靠性分析技术FMEA、FTA、软件可靠性测试技术、度量技术等,体现了以软件工程为基础、加强软件可靠性工程技术的软件可靠性保证理念。突出加强的软件可靠性工程技术也是编者所在研究团队多年来的研究和应用成果的总结。
本书可作为质量与可靠性专业、计算机软件专业的本科生的教材,也可供自学或从业人员查阅使用。
本书的教学目标是:为软件工程师、软件质量保证人员、可靠性工程师提供在软件开发过程的各个阶段以预防、减少和遏制缺陷为目的的技术和方法。为此,本书分为四部分内容:
第一部分:缺陷预防技术。缺陷预防目的是减少缺陷注入的机会,从而减少检测和排除注入缺陷的费用。
第二部分:缺陷检测技术。对于绝大多数当前使用的软件来说,期望通过前面所述的缺陷预防活动就能百分之百地预防偶然故障的引入是不现实的。因此,必须采用有效的技术在项目资源限定范围内尽可能多地发现并消除引入的故障。
第三部分:缺陷遏制技术。采用缺陷检测和排除技术只能将软件故障数降低到相当低的程度,不能做到完全消除引入的软件故障。因此,需要增加额外的保证措施阻断故障和失效之间的因果关系。
第四部分:缺陷度量技术。从缺陷的角度对软件的产品和过程进行质量度量来实现对质量的评价,为产品和过程的质量改进提供决策依据。
第1章 引言
1.1 有关软件质量与可靠性保证的常见问题
1.1.1 软件质量及其相关概念
1.1.2 有关软件可靠性及软件可靠性工程
1.1.3 软件质量、可靠性与软件工程、软件质量工程及软件可靠性工程
1.2 软件质量与可靠性保证技术
1.2.1 以正确性和可靠性为中心的软件质量观点
1.2.2 软件正确性、可靠性和缺陷
1.2.3 以正确性、可靠性为中心的软件质量与可靠性保证技术
本章要点
本章习题
本章参考资料
第一部分 缺陷预防技术
第2章 软件配置管理技术
2.1 软件配置管理要义
2.2 基本概念介绍
2.2.1 软件配置管理
2.2.2 软件配置项
2.2.3 版本及版本树
2.2.4 基线
2.2.5 软件配置
2.3 软件配置控制
2.3.1 访问控制和同步控制
2.3.2 分支与合并控制
2.3.3 高级别的变更控制
2.4 相关补充说明
2.5 配置管理标准与工具
本章要点
本章习题
本章参考资料
第3章 软件避错设计技术
3.1 软件避错设计原理
3.1.1 简单原理
3.1.2 同型原理
3.1.3 对称原理
3.1.4 层次原理
3.1.5 线型原理
3.1.6 易证原理
3.1.7 安全原理
3.2 软件需求分析阶段的避错分析准则
3.2.1 一般准则
3.2.2 功能需求分析准则
3.2.3 非功能需求分析准则
3.3 软件设计阶段的避错设计准则
3.3.1 程序结构设计
3.3.2 软件简化设计
3.3.3 软件健壮性设计
3.3.4 软件冗余设计
3.4 软件编码阶段的避错编码准则
3.4.1 程序设计语言选择
3.4.2 程序设计风格
3.4.3 C语言程序设计避错准则
本章要点
本章习题
本章参考资料
……
第二部分 缺陷检测技术
第三部分 缺陷遏制技术
第四部分 缺陷度量技术