软件设计师考试 | 第五章 软件工程基础知识 | 软件质量
2020-12-21 本文已影响0人
Levi_moon
软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。
(一)软件质量特性
1.ISO/IEC 9126软件质量模型
由三个层次组成:
- 质量特性
- 质量子特性
- 度量指标
各质量特性和质量子特性的含义:
- 功能性(与一组功能及其特定的性质的存在有关的一组属性,功能是指满足规定或隐含需求的那些功能)
- 适应性
- 准确性
- 互用性
- 依从性
- 安全性
- 可靠性(与在规定的一段时间内和规定的条件下软件维持在其性能水平有关的能力)
- 成熟性
- 容错性
- 易恢复性
- 易使用性(与为使用所需的努力和由一组规定或隐含的用户对这样使用所做的个别评价有关的一组属性)
- 易理解性
- 易学性
- 易操作性
- 效率(在规定条件下,与软件的性能水平与所用资源量之间的关系有关的软件属性)
- 时间特性
- 资源特性
- 可维护性(与进行规定的修改所需要的努力有关的一组属性)
- 易分析性
- 易改变性
- 稳定性
- 易测试性
- 可移植性(与软件可从某一环境转移到另一环境的能力有关的一组属性)
- 适应性
- 易安装性
- 一致性
- 易替换性
2.Mc Call软件质量模型
由三层模型组成:
- 质量特性
- 评价准则
- 度量指标
(二)软件质量保证
软件质量保证是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。
要点:
- 软件必须满足用户规定的需求,与用户需求不一致的软件无质量可言
- 软件应遵循规定标准所定义的一系列开发准则,不遵循这些准则的软件,其质量难以得到保证
- 软件还应满足某些隐含的需求,例如希望有好的可理解性、可维护性等
包括:
- 应用技术方法
- 进行正式的技术评审
- 测试软件
- 标准的实施
- 控制变更
- 度量
- 记录保存和报告
(三)软件评审
使得用户满意的必要条件:
- 设计的规格说明书符合用户的要求,称为设计质量
- 程序按照设计规格说明书所规定的情况正确执行,称为程序质量
1.设计质量的评审内容
对象: 在需求分析阶段产生的软件需求规格说明、数据需求规格说明,及在软件概要设计阶段产生的软件概要设计说明书等
评审内容:
- 评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等
- 评审可靠性,即是否能避免输入异常、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代提手段或恢复手段
- 评审保密措施实现情况,即是否对系统使用资格进行检查;是否对特定数据、特定功能的使用资格进行检查;在检查出有违反使用资格的情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等
- 评审操作特性实施情况,即操作命令和操作信息的恰当性;输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等
- 评审性能实现情况,即是否达到所规定性能的目标值
- 评审软件是否具有可修改性、可扩充性、可互换性和可移植性
- 评审软件是否具有可测试性
- 评审软件是否具有复用性
2.程序质量的评审内容
程序质量评审通常是从开发者的角度进行评审,与开发技术直接相关。
软件的结构:
- 功能结构,需要检查的项目如下:
- 数据结构(包括数据名和定义;构成该数据的数据项;数据与数据之间的关系)
- 功能结构(包括功能名和定义;构成该功能的子功能;功能与子功能之间的关系)
- 数据结构和功能结构之间的对应关系(包括数据元素与功能元素之间的对应关系;数据结构与功能结构的一致性)
- 功能的通用性
- 模块的层次
- 模块的结构,需要检查的项目如下:
- 控制流结构
- 数据流结构
- 模块结构与功能结构之间的对应关系
- 处理过程的结构
3.与运行环境的接口
检查项目如下:
- 与硬件的接口(包括与硬件的接口约定,即根据硬件的使用说明等所做出的规定;硬件故障时的处理和超载时的处理)
- 与用户的接口(包括与用户的接口约定,即输入数据的结构;输出数据的结构;异常输入时的处理,超载输入时的处理;用户存取资格的检查等)
(四)软件容错技术
1.容错软件的定义
定义:
- 规定功能的软件,在一定程度上对自身错误的作用具有屏蔽能力,则称该软件具有容错功能的软件,即容错软件
- 规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为容错软件
- 规定功能的软件,在因错误发生错误时仍然能在一定程度上完成预期的功能,则称该软件为容错软件
- 规定功能的软件,在一定程度上具有容错能力,则称该软件为容错软件
2.容错的一般方法
实现容错的主要手段是冗余。
冗余是指对于实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。
冗余技术分类:
- 结构冗余
- 静态冗余
- 动态冗余
- 混合冗余
- 信息冗余
- 时间冗余
- 冗余附加技术