软件质量的内涵

什么是质量?哈佛商学院的David Garvin给出了建议:“质量是一个复杂多面的概念”,不同的人从各自的视角会有不同的理解和要求。对于用户来说,他们更关心的是系统的功能质量,比如说,是否满足了自己的需求,是否存在影响使用的缺陷,软件性能如何,以及是否容易使用等。对于开发人员,他们更多关心的是系统的结构质量,主要包括代码的可读性、可测试性、可维护性以及效率和安全等方面的因素。对于投资者,他们更为关心软件开发的过程质量,例如,项目是否可以在规定的时间和预算内交付,最终产品的交付质量是否可以保证等。从产品的观点来说,质量是产品的固有属性,比如功能特性。

一般意义上,软件质量定义为:在一定程度上应用有效的软件过程,创造出有用的产品,为使用者提供明显的价值。即:软件质量应该涵盖软件过程、软件产品和产品效用三个方面。软件过程用过程质量来衡量,软件产品包括内在质量和外在质量两部分,产品效用,用使用质量来衡量。三者相辅相成,过程质量会影响到软件产品内在的代码质量,而代码质量的好坏决定了产品的外在质量,外在质量最终影响到用户的使用质量,因此必须用有效的方法来检验整个开发过程、程序代码和最终产品,并对用户的使用质量进行监测。

质量大师杰温伯格在《质量·软件·管理系统思维》说到:“质量就是软件产品对于某个(或某些)人的价值”(某个或某些人,统称之为用户),这里面包含两个层次的质量含义,即“正确的软件”和“软件运行正确”。

“正确的软件”是说,一个软件要能够满足用户的需求,为用户创造价值。此处的价值可以体现在两个方面,一是为用户创造利润,二是减少成本。如果一个软件能够满足的用户群体越大、创造的利润越大或减少的成本越大,则该软件产品的质量越高。反之,一个产品尽管运行良好,没有Bug,扩展性很强,性能很好,但如果没有用户,没有为用户创造价值,则这样的软件尽管运行良好,也无任何质量可言。举个例子,曾经引发全球热潮的谷歌眼镜,从2015年1月19日开始不再接受订单,与此同时谷歌还关闭了“探索者”(Explorer)这个软件开发项目,除了销售策略欠佳方面的原因,由于需求调研不足,谷歌自己也不清楚谷歌眼镜存在的目的,产品过于超前,再加上价格昂贵等因素,使得这款看起来酷的产品很快失去了用户。

“软件运行正确”是指软件没有或有很少Bug、扩展性很强、性能良好、易用性高等,这样的软件是一个运行良好的软件,但还不能称之为高质量的软件。只有在软件符合用户的需求的基础上,运行良好的软件,才是一个高质量的软件。当然,如果软件完全符合用户需求,但不易使用,经常出错,性能很差,这样的软件也不是一个高质量的软件。举个例子,微软的Vista系统,这是一个典型的“运行不正确”的软件,Vista系统应该说是用户非常期待的,也是满足用户需求的,但是由于莫名其妙的死机,以及很差的运行效率等一系列缺陷,最终导致许多用户弃用,微软不得不在两年之后用Window 7取代了Vista。

“正确的软件”及“软件运行正确”二者相辅相成,前者关系到软件的成败,后者关系到软件的好坏。现实的很多开发团队,特别是偏重技术的开发团队中,往往过分注重后者(软件的Bug率、性能、可扩展性、架构等),经常陷入在软件开发过程的细节之中,而忽略了前者(软件需要符合用户的需求),开发出的软件经常能用但无用,不是最终用户期望的软件,这样的软件虽然能用但无用,是零质量软件。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/486.html
返回顶部