软件产品与其他工业产品之间存在有很大的差异,具体表现在:
·软件是智力密集型产品,进行软件生产主要的投入是人力资源而不是设备,现代开发工具虽然提供了部分智能特性,但不能取代人的创造性劳动;
·软件的生产过程是一个创造性的过程,而不是一个重复性劳动生产过程,重复性生产过程可以总结其规律,并提出诸如科学管理之类的管理方法,但创造性过程做不到;
·软件是逻辑产品而不是实物产品,软件的功能只能依赖于硬件和运行环境,以及人们对它的操作,才能得以体现;
·软件产品是在产品设计阶段结束后就直接进入产品销售服务阶段,不存在中间的产品生产阶段;
·软件的需求较之有形产品更加模糊,在整个产品周期中随时都可能面临需求的变化;
·软件功能的实现存在着多样性,在同一个产品当中,相同的功能可以有不同的实现,其他产品不存在这样的问题,相同功能的部件一定是标准实现的。
正因为软件产品与其他工业产品存在有上述差异,所以一般工业产品的质量定义和质量标准并不完全适用于软件产品,关于软件质量的定义有很多。
ANSI/IEEE Std 729—1983定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体。”其含义包括:
·能满足给定需要的性质和特性的全体;
·具有所期望的各种属性的组合程度;
·顾客和用户觉得能满足其综合期望的程度;(www.xing528.com)
·确定软件在使用中将满足顾客预期要求的程度。
M.J.Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合。”
GB/T 6583—ISO 8402(1994)定义软件质量为:“反映实体满足明确和隐含需要的能力和特性总和。”
RUP中,软件质量被定义为具有以下三个维度:功能(Functionality)、可靠(Reliability/Dependability)、性能(Performance)。
软件质量和一般产品质量类似,可以被定义为3A特性:可说明性(Accountability)、有效性(Availability)、易用性(Accessibility)。
软件质量还可以被定义为:客户满意度、一致性准则、软件质量度量、过程质量观。
总之,软件质量是软件一些特性的组合,它依赖软件的本身,可以从以下三方面来反映软件质量:
·用户需求是度量软件质量的基础,不符合需求的软件不具备质量;
·用户需求既有显式的需求也有隐式的需求,如果软件只满足那些精确定义了的需求,而没有满足这些隐含的需求,软件质量也不能保证;
·需要通过工程化的方式来开发软件,软件工程由一系列的规范化标准和开发准则构成,如果不遵守这些,软件质量就得不到保证。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。