软件质量是指软件产品满足用户要求的程度。可以从多个方面来理解此处所指的用户要求,包括用户期望的软件系统的功能、性能、可维护性、可操作性、可重用性等等。在软件项目实施过程中,经常会听到用户关于软件系统的以下一组质量评价。
- 软件系统没有某些方面的功能
- 软件系统运行速度太慢
- 软件系统有太多的错误
- 软件不好改动
- 软件系统的界面不美观
- 软件系统不好使用
- 软件系统安装过于复杂等等
上述评价揭示了软件系统的质量有内在和外在两方面的表现形式。所谓软件系统质量的外在形式是指那些直接展示给用户的质量要素,如软件系统提供的功能是否完整、性能是否高效、人机交互界面是否美观、是否易于操作、安装是否简单等等。软件系统质量的内在形式是指那些不直接展示给用户,但是与用户的需求息息相关的因素,如软件系统的模块化程度、软件系统的可维护性等等。在软件开发过程中,软件开发人员不仅要关注软件系统的外在质量要素,而且还要关注其内在的质量要素。
McCall软件质量模型
影响软件系统质量的要素往往是多方面的。
McCall定义的软件质量要素。它从三个不同的视点来理解和分析软件系统的质量,包括:产品转移性、产品修正性和产品运行性。对于每一个视点,McCall提出了一组质量因素来描述从该视点所观察到的质量特性。比如,产品的转移性主要体现为产品的可移植性、可重用性和可互操作性三个因素。针对每个质量因素,McCall进一步定义了25个质量准则,来对基于该要素的质量特性进行分析和度量。比如,判断