关于软件质量模型,业界已经有很多成熟的模型定义,比较常见的质量模型有 McCall 模型、Boehm 模型、FURPS 模型、Dromey 模型和 ISO9126 模型。
- Jim McCall 软件质量模型(1977 年)
- Barry W. Boehm 软件质量模型(1978 年)
- FURPS/FURPS+ 软件质量模型
- R. Geoff Dromey 软件质量模型
- ISO9126 软件质量模型(1993 年)
Jim McCall 软件质量模型(1977 年)
Jim McCall 的软件质量模型,也被称为 GE 模型(General Electrics Model)。其最初起源于美国空军,主要面向的是系统开发人员和系统开发过程。McCall 试图通过一系列的软件质量属性指标来弥补开发人员与最终用户之间的沟壑。
McCall 质量模型使用 3 中视角来定义和识别软件产品的质量:
- Product revision (ability to change).
- Product transition (adaptability to new environments).
- Product operations (basic operational characteristics).
McCall 模型通过层级的要素、标准和指标来详述这 3 个视角定义(产品修改、产品转移、产品运行)。
- 11 Factors (To specify):描述软件的外部视角,也就是客户或使用者的视角。
- 23 Criterias (To build):描述软件的内部视角,也就是开发人员的视角。
- Metrics (To control):定义衡量指标和方法
下图中,左侧为 11 个质量要素,右侧为 23 个质量标准。
Barry W. Boehm 软件质量模型(1978 年)
Boehm 软件质量模型试图通过一系列的属性的指标来量化软件质量。Boehm 的质量模型包含了 McCall 模型中没有的硬件属性。Boehm 模型也类似于 McCall 的质量模型,采用层级的质量模型结构,包括高层属性、中层属性和原始属性。
高层属性主要关注 3 个问题:
- As-is utility
- Maintainability
- Portability
中层属性包含了 7 个质量要素:
- Portability (General utility characteristics)
- Reliability (As-is utility characteristics)
- Efficiency (As-is utility characteristics)
- Usability (As-is utility characteristics, Human Engineering)
- Testability (Maintainability characteristics)
- Understandability (Maintainability characteristics)
- Flexibility (Maintainability characteristics, Modifiability)
可以看出,Boehm 模型和 McCall 模型有些相似,区别在于 McCall 模型主要关注于高层属性("As-is utility")的精确度量上,而 Boehm 模型则基于更广泛的属性,并且对可维护性做了更多的关注。
FURPS/FURPS+ 软件质量模型
FURPS 模型最初由 Robert Grady 提出,后来由 Rational Software 进行扩展至 FURPS+。
FURPS 模型包括:
- Functionality
- Usability
- Reliability
- Performance
- Supportability
FURPS 包括两种不同的类型:功能性和非功能性。
R. Geoff Dromey 软件质量模型
Dromey 软件质量模型由 3 个主要元素组成:
- Product properties that influence quality
- High level quality attributes
- Means of linking the product properties with the quality attributes.
构建该质量模型包括以下 5 个步骤:
- Chose a set of high-level quality attributes necessary for the evaluation.
- List components/modules in your system.
- Identify quality-carrying properties for the components/modules (qualities of the component that have the most
- impact on the product properties from the list above).
- Determine how each property effects the quality attributes.
- Evaluate the model and identify weaknesses.
ISO9126 软件质量模型(1993 年)
ISO 9126: Software Product Evaluation: Quality Characteristics and Guidelines for their Use-standard
ISO9126 模型是建立在 McCall 和 Boehm 模型之上的,同时加入了功能性要求,还包括识别软件产品的内部和外部质量属性。
软件的 6 个质量特征:
- 功能性(Functionality):软件是否满足客户功能要求;
- 可靠性(Reliability):软件是否能够保持稳定的状态上满足可用性;
- 使用性(Usability):衡量用户能够使用软件需要多大的努力;
- 效率(Efficiency):衡量软件正常运行需要耗费多少物理资源;
- 可维护性(Maintainability):衡量对已经完成的软件进行调整需要多大的努力;
- 可移植性(Portability):衡量软件是否能够方便地部署到不同的运行环境中。
下面是 ISO9126 模型与ISO9126 模型与 McCall 模型 和 Boehm 模型的对比: