购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 软件质量概述

2.1.1 软件质量层次

软件质量是指软件产品满足用户基本需求及隐式需求的程度。软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,这是软件产品最基本的质量要求;其次是软件产品满足隐式需求的程度。例如,产品界面更美观、用户操作更简单等。

从软件质量的定义,可将软件质量分为 3 个层次,具体如下:

①满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。

②满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。

③满足用户隐式需求:除了满足用户的显式需求,软件产品如果满足用户的隐式需求,即潜在的可能需要在将来开发的功能,将会极大地提升用户满意度,这就意味着软件质量更高。

所谓高质量的软件,除了满足上述需求外,对于内部人员来说,它应该也是易于维护与升级的。软件开发时,统一的符合标准的编码规范、清晰合理的代码注释、形成文档的需求分析、软件设计等资料对于软件后期的维护与升级都有很大的帮助,同时,这些资料也是软件质量的一个重要体现。

现代社会处处离不开软件,为保证人们生活工作正常有序进行,就要严格控制好软件的质量。由于软件自身的特点和目前的软件开发模式使得隐藏在软件内部的质量缺陷无法完全根除,因此每一款软件都会存在一些质量问题。影响软件质量的因素有很多,下面介绍几种比较常见的影响因素。

1)需求模糊

在软件开发之前,确定软件需求是一项非常重要的工作,它是指导软件设计与软件开发的基础,也是决定软件验收的标准。但是软件需求是不可视的,往往也说不清楚,导致产品设计、开发人员与客户存在一定的理解偏差。开发人员对软件的真正需求不明确,结果开发出的产品与实际需求不符合,这势必会影响软件的质量。

除此之外,在开发过程中客户往往会一而再、再而三地变更需求,导致开发人员频繁地修改代码,这可能会导致软件在设计时期存在不能调和的误差,最终影响软件的质量。

2)软件开发缺乏规范性文件指导

现代软件开发,大多数团队都将精力放在开发成本与开发周期上,而不太重视团队成员的工作规范,导致团队队员开发“随意性”比较大,这也会影响软件质量,而且一旦最后软件出现质量问题,也很难定责,导致后期维护困难。

3)软件开发人员问题

软件是由人开发出来的,因此个人意识对产品的影响非常大。除了个人技术水平限制外,开发人员问题还包括人员流动,新来的成员可能会继承上一任的产品接着开发下去,两个人的思维意识、技术水平等都会不同,导致软件开发前后不一致,进而影响软件质量。

4)缺乏软件质量控制管理

在软件开发行业,并没有一个量化的指标去度量一款软件的质量,软件开发的管理人员更关注开发成本和进度,毕竟这是显而易见的,并且是可以度量的。但软件质量则不同,软件质量无法用具体的量化指标去度量,而且软件开发的质量并没有落实到具体的责任人,因此很少有人关心软件最终的质量。

2.1.2 软件质量管理

所有从事软件生产的人员都要学习软件质量,包括软件分析人员、设计人员、开发人员、测试人员及维护人员。在软件质量管理中,主要学习软件质量的定义、软件质量管理体系、软件质量模型、软件质量活动。其中,要着重关注软件质量模型部分。

质量管理在不断发展过程中,经历了三个阶段。

第一阶段,检验质量管理(19 世纪末至 20 世纪初):有专门的质量检验部门和人员,以事后检验为主。其缺点是:产品都生产好了再检查,往往为时已晚,检查出来不合格的产品都将沦为废品。那么怎么提高良品率呢,质量管理的发展来到了第二阶段。

第二阶段,统计质量控制(20 世纪 40 年代至 20 世纪 60 年代):强调统计方法,基于数学上的统计。通过历史数据得出规律,指导将来的项目。根据这些数据以及某些规律,发现质量问题不是只在某一个环节出了问题,而是出现在整个产品的生产周期内。而此时质量管理发展到了第三阶段。

第三阶段,全面质量管理:将质量控制扩展到产品生命周期全过程,强调全体员工参与质量把控。

全面质量管理代表人物:

克劳斯比(Crosby):美国质量之父。著名理论:ZD(Zero Defect)零缺陷。

朱兰(Juran):最著名的一句话,适合使用。著名的质量三部曲:《质量计划》《质量控制》《质量改进》。

戴明(Deming):最著名的就是PDCA循环。PDCA循环是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。全面质量管理的思想基础和方法依据就是PDCA循环。PDCA循环的含义是将质量管理分为四个阶段,即计划(Plan)、执行(Do)、检查(Check)、处理(Act)。在质量管理活动中,要求把各项工作按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。这一工作方法是质量管理的基本方法,也是企业管理各项工作的一般规律。

思想的碰撞,产生了各种体系,这就是质量管理体系的诞生。质量管理体系给控制质量、管理质量提供了支撑的框架。常用的质量管理体系:

ISO9000 系列,通用的质量管理体系。如ISO9126 质量模型就说明了怎样从不同的角度去考察软件的质量。ISO9000 质量管理体系是国际标准化组织(ISO)制定的国际标准之一,在 1987 年提出的概念,是指“由ISO/TC176(国际标准化组织质量管理和质量保证技术委员会)制定的所有国际标准”。该标准可帮助组织实施并有效运行质量管理体系,是质量管理体系通用的要求和指南。我国在 20 世纪 90 年代将ISO9000 系列标准转化为国家标准,随后,各行业也将ISO9000 系列标准转化为行业标准。

ISO9000 族 2000 版标准主要由ISO9000、ISO9001 和ISO9004 三个核心标准组成。

ISO9000 阐明了ISO9000:2000 版标准制定的管理理念和原则,确定了新版标准的指导思想和理论基础,规范和确定了新版ISO9004 族标准所使用的概念和术语。

ISO9001 标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一步补充。

ISO9004 是组织进行持续改进的标准指南。

ISO9000:2000 版的八项质量管理原则见表 2.1。

表 2.1 ISO9000:2000 版的八项质量管理原则

续表

八项质量管理原则的意义:

①是质量管理的理论基础。

②用高度概括、易于理解的语言所表述的质量管理的最基本、最通用的一般性规律。

③为组织建立质量管理体系提供了理论依据。

④是组织的领导者有效地实施质量管理工作必须遵循的原则。

CMM质量体系。其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好地实现商业目标。

软件行业要遵循ISO9000,但是应该根据软件行业的特点和特殊性,有更具体的体系标准,这就是CMM(Capability Maturity Model,能力成熟度模型)。

既然是模型,就有对应的实体:软件组织,解决按时、按计划、高质量完成软件开发。

CMM用途是多样性的:流程成熟度内部评估、第三方评估、流程的改进。

CMM的用途:

①评估组用来识别组织中的强项和弱点。

②评价组用来识别不同的业务承包商的风险和监督合同。

③管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动。

④技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件的过程。

六西格玛质量体系是非常精密的质量管理体系,适合大规模的生产,并且保证极低的废品率。

这里的西格玛指的是统计学的偏差,表示数据的离散程度。那六西格玛就是六倍的西格玛,也就是六倍的标准偏差。

六西格玛管理法:

①六西格玛管理法是以质量作为主线,以客户需求为中心,利用对事实和数据的分析,改进提升一个组织的业务流程能力,从而增强企业竞争力,是一套灵活、综合性的管理方法体系。

②六西格玛要求企业完全从外部客户角度,而不是从自己的角度来看待企业内部的各种流程。

③利用客户的要求来建立标准,设立产品与服务的标准与规格,并以此来评估企业流程的有效性与合理性。

④它通过提高企业流程的绩效来提高产品服务的质量和提升企业的整体竞争力。

⑤通过贯彻实施来整合塑造一流的企业文化。

六西格玛模式的本质是一个全面管理概念,而不仅仅是质量提高手段。

软件项目质量管理的目标无疑是保证软件产品的质量。但是,对于一个具体的软件项目来说,保证软件产品的质量并不意味着追求“完美的质量”。

对于绝大多数普通软件来说,没有必要付出巨大代价追求“零缺陷”,如果由于追求完美质量而造成严重的成本超支和进度拖延,而获得的质量提升为用户所带来的效益又极为有限,就得不偿失了。

在软件项目中,软件的各种质量属性并不是同等重要,项目组织应该把关注点放在那些用户最关心的、对软件整体质量影响最大的质量属性上,这些质量属性称为“质量要素”。

软件项目质量管理的目标是在项目整体目标的约束之下,使软件质量满足用户需求。

质量管理计划就是为了实现项目的质量目标,对项目的质量管理工作所做的全面规划。软件项目质量管理计划一般应满足以下要求:

①确定项目应达到的质量目标和所有特性的要求。

②确定项目中的质量活动和质量控制程序。

③确定项目采用的控制手段及合适的验证手段和方法。

④确定和准备质量记录。 E3MaawhkLntK56sN21Svgf4m7G6Gdq5pBqpBJehaFgYW2xoswlhQM6G/yymrtC+u

点击中间区域
呼出菜单
上一章
目录
下一章
×