- 什么是软件质量
软件质量:应用有效的软件过程,创造有用的产品,为生产者和使用者提供明显的价值。
有效的软件过程为生产高质量的软件产品奠定了基础,能够使得软件开发过程变得有序。
有用的产品是指交付最终用户要求的内容、功能和特征,满足利益相关者明确提出的需求和其它隐性需求(例如,易用性)。
高质量软件为软件组织和最终用户群体带来收益。 - McCall的质量因素
-
正确性:程序满足需求规格说明和完成用户任务目标的程度。
- 可追踪性:从一个设计表示或实际程序追踪到需求的能力。
- 完备性:所需功能完全实现的程度 。
- 一致性:设计文档与系统实现的一致性。
-
可靠性:程序以所要求的精度完成预期功能的程度。
- 准确性:计算和控制的精度
- 容错性:在各种异常条件下继续提供操作的能力
- 与正确性的区别
正确性:它按我的需要工作吗?
可靠性:在任何时候它都能适当地响应吗?
-
完整性:对未授权人员访问软件或数据的可控程度。
-
易用性(易培训性):对程序学习、操作、准备输入和解释输出所需要的工作量
-
效率:程序完成其功能所需的资源
- 计算效率
- 存储效率
-
可维护性:定位和修复程序中的一个错误所需要的工作量
- 简单性:理解程序的难易程度
- 简明性:程序源代码的紧凑与简洁性
- 检测性:系统能监视自身的运行,一旦发生错误,能明确地标识出产生错误的位置
-
灵活性(适应性):修改一个可正常运行的程序所需的工作量
- 模块化:程序部件的独立性
- 通用性:程序部件潜在应用范围的广泛性,即可重用性
- 软件系统独立性:程序与非标准的程序设计语言特征、操作系统特征以及其他环境限制无关的程度。
- 硬件独立性:软件同支持它运行的硬件系统不相关的程度。
- 与可维护性的区别
可维护性:我能修复它吗?
灵活性:我能改变它吗?
-
可移植性:将软件从一个硬件和软件系统环境移植到另一个所需要的工作量
-
可复用性:软件的各个构件可以在另一个软件中使用的程度
-
互操作性:将一个系统连接到另一个系统所需要的工作量
-
软件质量保证(SQA):参照一定的质量标准、目标及各项软件流程、规范来监督、管理软件产品的质量
-
SQA的目的:是使软件过程对于管理人员来说是可见的。核实产品遵从于对应的需求、过程描述、标准及规程。
例题:
可移植性是反映出把一个原先在某种硬件或软件环境下正常运行的软件移植到另一个硬件或软件环境下,使该软件也能正确地运行的难易程序。为了提高软件的可移植性,应注意提高软件的( D)。
A、使用方便性
B、简洁性
C、可靠性
D、设备不依赖性
在软件特性中,程序能够满足规格说明书和用户目标的程度,称为(A )
A、正确性
B、移植性
C、可靠性
D、完整性
软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(C )。
A、可用性
B、正确性
C、可靠性
D、完整性