APP下载

论软件质量保证模型

2012-08-15西安外事学院工学院雷家骏

电子世界 2012年7期
关键词:质量保证软件过程

西安外事学院工学院 雷家骏

1.引言

计算机软件需求的多样化、规模化,使得软件质量愈显重要。尽管软件工程的研究和实践取得了巨大的成果,但软件危机依然存在。软件企业面临的最大的问题是顾客对产品不满意,究其原因,软件质量保证技术的不完善是主要原因之一。软件的质量管理和质量保证工作应该不断创新,以适应形势发展的需要,因此应主动将全面质量管理和质量改进思想纳入质量管理和质量保证计划,以促使软件质量不断提高。就整体而言,我国的软件质量管理和质量保证工作仍处于创建阶段,国外的软件质量管理和质量保证工作也不尽完善,因此在此只介绍和分析一些业已成熟的软件质量管理与保证理论。

2.ISO9001与CMM的比较分析

现有的软件质量保证是在软件开发过程中的每一步都进行“保护性活动”。主要内容包括对方法和工具应用的规程、技术复审、测试策略、保证与标准符合的规程,以及度量和报告机制。在技术上的主要手段是测试和复审,它们的作用是作为软件开发过程的过滤器,在发现及改正错误的成本相对较小时就排除错误,但软件技术不能从根本上防止错误和缺陷的出现。软件开发项目超期、超预算、最终的软件产品质量满足用户需求等仍是困扰软件开发机构的重大问题。

2.1 ISO9001与CMM的联系

CMM和ISO9001都涉及质量管理和过程管理,并且都受到类似的利害关系驱动,两者之间的相似之处总结为以下四点:

(1)它们的精神一致,都有一个基本思想:“言所行,行所言”;

(2)二者都强调管理、过程、规范化和文档化;

(3)ISO9001与CMM的出发点都是通过对生产过程进行管理来确保产品的质量;

(4)都源自以戴明为首的管理专家的制度管理思想。

首先,不管是CMM还是ISO9001都强调对产生应用软件之过程的管理,提高软件产品的生产效率和软件的质量,同时,软件工程理论的广泛运用也推动了软件产业由小规模生产到集成自动化生产迈进。这也充分说明,软件产品的质量不仅表现在最终产品的质量,还应该包含软件产生过程的质量,只有这样,才能使软件组织连续不断地生产出高质量的软件产品。

2.2 ISO9001与CMM的区别

a.保证质量的方式不同

ISO9001作为质量保证标准,只论述了质量体系的最小需求,即合格质量体系的最低可接受水平。

它是一种“静态”标准,企业只要符合它要求的条件并通过权威机构的审核,就可以通过认证,证明企业的内部管理已经达到一定水平,符合该标准规范的要求。而CMM则强调过程控制、过程管理、持续的过程改进。CMM不仅仅是对产品质量的认证,更是一种改善软件过程的模型,它以一种结构化的成熟度框架描述了软件管理和工程实践,指出了软件过程不断改进的科学途径。它所定义的5个级别就像5个台阶,企业必须一步一步地“攀登”。每一个成熟度级别,既是企业发展的阶段性目标,又是评价企业能力水平的一个标准。当通过某一级CMM评估后,企业还必须持续不断地改进过程,其目标是要达到可持续发展、可优化的程度,以此来实现高质量、高效率、低成本的生产软件。因此,可以认为CMM是一个“动态”模型。

需要强调的是,ISO9001着重于考核产品的质量和产品过程的受控状态,给企业提供一种PASS/FAIL的检查体系,即企业的过程能力只有两种状态,虽然在缺陷预防和内审管理中涉及到了过程改进,但是并没有对改进的目标和方法进行指导和控制。CMM则重点考核软件组织的工程能力,而且突出不断改进、升级的要求。显然过程不断的改进、能力不断的增强,新技术的应用就会收到更好与更快的成效,产品的质量就会不断的得到提高和保障。

b.认证审核过程不同

ISO的认证过程分为两个情况——机构或者通过了ISO认证,或者没有。如果机构通过了ISO认证,其过程已满足ISO9000的标准要求。与此不同的是,CMM给出的是过程改进的体系。CMM将软件过程划分成5个成熟度级别——从原始级(第一级)到优化级(第五级)。软件机构可处在其中的任何一个级别,它的每一级对所要实现的关键过程域都有详细的要求,并且强制企业能自我更新和持续改进,以实现缺陷预防。这对于提高软件企业自身质量管理素质是非常有利的。

但CMM毕竟是一个在学术报告基础上建立起来的一套评估体系,它的认证结果是由SEI授权的首席评估员寄一封带有本人签名的信给被评估者,并在SEI备案,没有任何证书,终生受用,中间不再审查。而通过ISO9000认证的企业,要在中国技术监督局备案,并且发证给企业,并要求每年审查,所有参加多边认可协议的国家必须认可,适用性强。

c.适用范围不同

ISO9001标准是一个适用于提供各种产品/服务企业的通用型的企业标准,而且主要是针对制造业制定的。正是由于ISO9001的通用性,使得它无法满足软件企业更深层次的专业化管理需求。而CMM是专门针对软件开发企业设计的,可以帮助软件企业有效地管理软件过程。

ISO是通用的,并且是从客户和外部审计者的角度来写的,它提出的是最基本的要求,所以不是十分具体。而CMM是面向软件的,即面向软件开发人员的,它提供了机构内部过程改进的指南,而且CMM对每个级别的关键过程域都有很详细的说明,光CMM的关键实现的说明就有500页之多。

3.ISO9001、CMM及要构建的软件质量模型的特点分析

在软件组织中,可以将ISO和CMM结合起来应用,即:把ISO作为软件质量管理的指导性框架,把CMM作为具体实施层的应用,这样就可以充分利用二者的优势来共同完成对软件开发过程的质量控制,从而达到既提高软件开发效率又保证所开发的软件具有较高的质量。

目前,虽然ISO和CMM在国外的应用已经有了十几年的历史,是一套比较实用的质量控制和保证方法,但其在国内应用也只有5、6年的光景,并且应用水平不高,原因是多方面的,其中一个主要原因就是没有形成一套适合我国软件组织的软件质量控制方法,这也是阻碍我国软件企业发展的瓶颈之一。

4.结论

本文对基于CMM的软件质量管理保证模型体系方法和基于ISO9000的软件质量保证模型的基本概念、原理、应用现状及发展状况等进行了比较分析,并提出了更适合我国中小软件企业的质量保证模型所应具备的特点。基于以上基础,我国中小软件企业在建立软件质量保证模型时,应该考虑以下几个方面的因素:

(1)某种程度上市场目标决定质量目标,只有能满足客户需求的软件才可以称为好的软件。

(2)在考虑最终软件成品的同时,要考虑软件过程的质量保证。

(3)全面质量管理及CMM思想的集成,要关注软件过程控制能力以及过程持续改进能力。

[1]朱三元等.软件工程技术概论[M].北京:科学出版社,2002:25-36.

[2]秦现生,梁工谦.质量管理学[M].北京:科学出版社,2002:190-223.

[3]冯玉琳,赵保华.软件工程—方法、工具和实践[M].合肥:中国科学技术大学出版社,1992:78-88.

猜你喜欢

质量保证软件过程
田湾核电站运行阶段质量保证分级管理
田湾核电站运行阶段质量保证分级管理
禅宗软件
关于如何做好水质环境监测的质量保证研究
描写具体 再现过程
临终是个怎样的过程
软件对对碰
质量保证监查在AP1000依托项目中的应用
在这个学习的过程中收获最大的是哪些,为什么?
即时通讯软件WhatsApp