软件质量问题

定义

软件质量问题是软件工程开发的关键问题,也是软件工程生产的核心问题。

软件质量问题是导致软件项目进度延误,预算超支或项目失败,项目终止等软件危机的根本原因。

意义

提高软件质量可以降低项目开发的总成本:

  • 降低维护成本并延长软件的生命期,降低软件失效导致的成本损失。

我们需要通过减少并及早检测纠正实际的软件开发过程和软件开发结果于预期不符的情况,降低错误成本。

软件质量

概念

现代质量管理中,质量代表着用户的满意程度。

ANSI/IEEE std729-1983: 软件质量是与软件产品满足规定和隐含的需求能力有关的特征和特性的全体。

ISO/IEC 9001-1999:软件质量是产品满足需求的能力。

软件质量的不同观点

  • 先验论观点:质量是产品一种可以认识但不可定义的性质
  • 用户观点:质量是产品满足使用目的的衡量指标
  • 制造者观点:质量是产品性能和规格符合要求的符合度
  • 产品观点:质量是联结产品固有性能的纽带
  • 价值观点:质量依赖于顾客愿意付给产品报酬的数量

软件质量范畴 (3A)

  • 可说明性: 用户可以给予产品的描述和定义来使用产品
  • 有效性:产品对大多数用户是有效的
  • 易用性/可用性:产品容易使用,并且具备有用的功能

高质量软件标准体系

产品质量

过程质量控制

软件产品质量标准

  1. 功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度
  2. 可用性:对于一个软件,用户学习,操作,准备输入和理解输出所付出的努力程度
  3. 可靠性:在规定的时间和条件下,软件所能达到保持其正常功能操作,性能水平的程度
  4. 性能:在指定的条件下,用软件实现某种功能所需的计算机资源的有效程度。
  5. 能力/容量:系统的接受力,容纳或吸收的能力,或某项功能的最大量或最大限度
  6. 可测量性:系统某些特性可以通过一些量化的数据指标描述当前状态或理想状态
  7. 可维护性:对于一个运行阶段的软件,当环境改变或软件发生错误时,进行相应修改所需要付出的努力程度
  8. 兼容性:不同版本之间的软件功能存在普适兼容
  9. 可扩展性:在软件功能进行迭代时,优良的可扩展性可减少无谓的工作劳动,减少对已有系统的改动,从而提高效率。

软件的质量特性的定义

软件质量层次模型