定义
ANSI/IEEE Std 729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。
M.J.Fisher定义软件质量为“所有描述计算机软件优秀程度的特性的组合”
特性
◆软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。
◆定义一个软件的质量,就等价于为该软件定义一系列质量特性。
◆人们通常把影响软件质量的特性用软件质量模型来描述。
软件质量模型
◆软件质量特性定义成分层模型
◆最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。
◆1976年 Boehm质量模型
◆1979年 McCall质量模型
◆1985年 ISO质量模型
ISO的软件质量评价模型
◆按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型有三层组成
◆软件质量需求评价准则(SQRC)
◆软件质量设计评价准则(SQDC)
◆软件质量度量评价准则(SQMC)
◆高层和中层建立国际标准,底层可有各使用单位视实际情况指定。
McCall质量模型
软件质量的度量和评价
◆软件质量特性度量有两类:预测型和验收型
◆预测度量是利用定量或定性的方法估算软件质量的评价值,以得到软件质量的比较精确的估算值
◆验收度量是在软件开发各个阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价
◆预测度量有两种:尺度度量,定量度量
质量保证
◆什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。
◆质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户的立场上来掌握产品的质量
◆软件的质量保证就是向用户及社会提供满意的高质量的产品。
质量保证的任务
◆用户要求定义
◆力争不重复劳动
◆掌握老发软件的方法
◆组织外部力量协作的方法
◆排除无效劳动
◆发挥每个开发者的能力
◆提高软件开发的工程能力
◆提高计划和管理能力
质量检验的原则
◆用户要求的是产品具有的功能,这是“真质量”。靠质量检验,一般检查的是“真质量”的质量特性
◆能靠质量检验的质量特性,即使全检验,也只是代表产品的部分质量特性
软件质量保证规程和技术准则
◆规定杂项目的哪个阶段进行评审及如何评审
◆规定在项目的哪个阶段应当产生哪些报告和计划
◆规定产品各个方面测试应达到的水平
◆在每次评审和测试中发现的错误如何修正
软件质量度量和保证的条件
◆适应性
◆易学性
◆可靠性
◆针对性
◆可观性
◆经济性
实施步骤
◆Target:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定质量目标
◆Plan:设定适合于被开发软件的评测检查项目(质量评价标准)。研讨实现质量目标的方法或手段
◆Do:制作高质量的规格说明和程序,在接受质量检查前先做自我检查
◆Check:以Plan阶段设定的质量评价准则进行评价,计算结果用质量图的表示出来
◆Action:对评价发现的问题进行改进活动,如果实现达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程。直到整个开发项目完成。
软件可靠性
◆软件可靠性:是软件在给定的时间间隔内给定的环境条件下,按设计要求,成功的运行程序的概率
◆在软件开发过程中,利用测试的统计数据,估算软件的可靠性,以控制软件的质量是至关重要的。
◆推测错误的产生频率,即推测错误产生的时间间隔
◆推测残留在程序中的错误数
◆评价测试的精确度和覆盖率
推测错误的产生频率
◆估算错误产生频率的一种方法是估算平均失效等待时间MTTF(Mean Time To Failure)
◆MTTF估算公式(Shooman模型)