软件体系结构-软件质量

质量的定义

CMM对质量的定义:

  1. 一个系统、组件或过程符合特定需求的程度
  2. 一个系统、组件或过程符合客户或者用户需求或期望的程度

软件需求规格说明书包括:功能需求、非功能需求、约束三部分

外部质量

外部质量对于用户而言是可见的:

  1. **正确性:**软件按照需求正确执行任务的能力
  2. **健壮性:**在异常情况下,软件能够正常运行的能力
  3. **可靠性:**在一定环境下、给定时间内,系统不发生故障的概率
  4. **性能:**时间-空间效率,不仅仅是运行速度
  5. **安全性:**防止系统被非法入侵的能力
  6. **易用性:**用户使用软件的容易程度
  7. **兼容性:**不同产品、新老产品互相交换信息的能力

内部质量

内部质量只有开发人员关心:

  1. **易理解性:**开发人员理解软件产品的能力
  2. **可测试性:**测试软件组件或集成产品时查找缺陷的简易程度
  3. 可维护性:在软件中纠正一个缺陷或做一次更改的简易程度
  4. **可扩展性:**反映软件适应变化的能力
  5. **可移植性:**不经或稍加修改就可以运行于不同软硬件的能力
  6. **可复用性:**一个软件的组成部分可以在同一个项目的不同地方甚至不同的项目中重复使用的能力

过程质量

过程质量与开发活动相关:过程必须可靠、稳定、高效、可扩展、可重用

img