功能性:与一组功能及其指定的性质有关的一组属性
可靠性:与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性
易用性:与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性
效率:与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性
可维护性:与进行指定的修改所需的努力有关的一组属性
可移植性:与软件可从某一环境转移到另一环境的能力有关的一组属性
软件质量特性– 功能性
适合性:与规定任务能否提供一组功能以及这组功能的适合程度有关的软件属性准确性:与能否得到正确或相符的结果或效果有关的软件属性互用性:与同其他指定系统进行交互的能力有关的软件属性
依从性:使软件遵循有关的标准,约定,法规及类似规定的软件属性
安全性:与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性
软件质量特性– 可靠性
成熟性:与由软件故障引起失效的频度有关的软件属性
容错性:与在软件故障或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性
易恢复性:与在失效发生后,重建其性能水平并恢复直接受影响数据的能力以及为达此目的所需的时间和能力有关的软件属性
软件质量特性– 易用性
易理解性:与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性
易学性:与用户为学习软件应用所花的努力有关的软件属性
易操作性:与用户为操作和运行控制所花努力有关的软件属性
软件质量特性– 效率
时间特性:与软件执行其功能时响应和处理时间以及吞吐量有关的软件属性
资源特性:与在软件执行其功能时所使用的资源数量及其使用时间有关的软件属性
软件质量特性– 可维护性
易分析性:与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件属性
易改变性:与进行修改,排除错误或适应环境变化所需努力有关的软件属性
稳定性:与修改所造成的未预料结果的风险有关的软件属性易测试性:与确认已修改软件所需的努力有关的软件属性
软件质量特性– 可移植性
适应性:与软件无需采用有别于为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性
易安装性:与在指定环境下安装软件所需努力有关的软件属性
遵循性:使软件遵循与可移植性有关的标准或约定的软件属性
易替换性:与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性
软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
通常把“质量”理解为“用户满意程度”。为了使得用户满意,有以下两个必要条件:
1)设计规格说明书符合用户的要求,这成为设计质量。
2)程序按照设计规格说明所规定的情况正确执行,这称为程序质量
1)评价软件的规格说明是否合乎用户的要求;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。
2)评审的可靠性
3)评审保密措施实施情况;是否对特定数据、特定功能的使用资格进行检查;说服哦提供对系统内重要数据加密的功能等;
4)操作命令和操作信息的恰当性;输入数据与输出控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。
5)评审性能的实现情况,即是否达到所规定性能的目标值
6)评审软件是否具有可修改性、可扩充性、可互换性和可移植性
7)评审软件是否具有可复用性
8)评审软件是否具有可测试性
1)功能结构
a.数据结构 b.功能结构 c.数据结构和功能结构之间的对应关系
2)功能的通用性
3)模块的层次
4)模块的结构
5)处理过程结构
1)与硬件的接口:根据硬件的使用说明等所作出的规定;硬件故障时的处理和超载时的处理
2)与用户的接口:输入数据的结构;输出数据的结构;异常输入时的处理,超载输入时的处理;用户存取资格的检查等。
提高软件质量和可靠性的技术大致分为两类,一类是避开错误(fault-avoidance)技术,即在开发的过程中不让差错潜入软件的技术;另一类是容错(fault-tolerance)技术,即对某些无法避开的差错,使其影响减少至最小的技术。
归纳容错软件的定义,有以下四种:
(1)规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。
(2)规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。
(3)规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。
(4)规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。
1、结构冗余
(1)静态冗余。常用的有:三模冗余TMR(Triple Moduler Redundancy)和多模冗余。
(2)动态冗余。动态冗余的主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。
(3)混合冗余。它兼有静态冗余和动态冗余的长处。
2、信息冗余
为检测或纠正信息在运算或传输中的错误须外加一部分信息,这种现象称为信息冗余。
3、时间冗余
时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。
4、冗余附加技术
冗余附加技术是指实现上述冗余技术所需的资源和技术。
容错系统的设计过程包括以下设计步骤:
(1)按设计任务要求进行常规设计,尽量保证设计的正确。
按常规设计得到非容错结构,它是容错系统构成的基础。在结构冗余中,不论是主模块还是备用模块的设计和实现,都要在费用许可的条件下,用调试的方法尽可能提高可靠性。
(2)对可能出现的错误分类,确定实现容错的范围。
对可能发生的错误进行正确的判断和分类,例如,对于硬件的瞬时错误,可以采用指令复执和程序复算;对于永久错误,则需要采用备份替换或者系统重构。对于软件来说,只有最大限度地弄清错误和暴露的规律,才能正确地判断和分类,实现成功的容错。
(3)按照“成本——效率”最优原则,选用某种冗余手段(结构、信息、时间)来实现对各类错误的屏蔽。
(4)分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此反复,直到有一个满意的结果为止。