美国软件工程研究所(SEI)开发的软件成熟度模型和国际标准化组织(ISO)开发的ISO9000标准系列,都共同着眼于质量和过程管理.两者都为了解决同样的问题,直观上是相关的。但是它们的基础是不同的:ISO9001(ISO9000标准系列中关于软件开发和维护的部分)确定一个质量体系的最少需求,而CMM模型强调持续过程改进。当然,这种陈述有点主观性,一些国际标准团体坚持,如果深入地读ISO9001,而不停留在表面,ISO9001的确解决持续过程改进的问题。例如,矫正行为可以被解释成持续的改进。然而,CMM模型比ISO9001更明确地致力于持续过程改进的问题。
通过将ISO9001的条款映射到CMM模型的关键实践,下面将说明两者如何相关。这种映射基于ISO9001,ISO9000-3,Ticklt(一种使用ISO9001和ISO9000-3的英国指导读本)和Ticklt培训材料。ISO9000-3是ISO9001的详细阐述,而Ticklt培训材料帮助解释ISO9000-3和ISO9001。
本文讨论下列经常问到的问题,包括:
·遵循ISO9001的机构将处于CMM模型的哪一个等级?
·第2(或第3)等级的机构可以被认为遵循了ISO9001标准了吗?
·软件质量管理和过程改进能力应该基于ISO9001标准还是CMM模型吗?
我们将ISO9001的20个条款映射到CMM模型关键实践的子实践层次。诚然,这种分析是主观性的——其他人可能对ISO 9001和CMM模型有不同的解释(事实上,对于基于CMM模型评估和ISO9001认证,可靠的、一致的解释和评估都是一个挑战)——但是幸运的是这里有足够的客观性,使得这种分析对于理解ISO9001认证怎样适用于持续质量改进策略有些帮助。
二、ISO9000标准概述
最初的软件质量保证系统是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002。这一系列现已成为全球的软件质量标准。除了ISO9000标准系列外,许多工业部门、国家和国际团体也颁布了特定环境中软件运行和维护的质量标准,如:IEEE标准729-1983、730-1984、Euro Norm EN45012等。
由于软件开发与一般产品制造有显著的差别,因此必须注意软件过程的特点,为了表明制造业和软件业的差别,通过下图给出了两种产业活动的形象对比。
制造业:
由此可以看出制造业或硬件的质量问题主要反映在生产和储运过程中,而软件的质量问题主要来自开发过程。所以,ISO9000国际标准在软件中的应用主要体现在以下内容:
(1)ISO9001质量体系是在软件设计、开发、生产、安装和维护时的质量保证的参考文件。此标准应用于所有软件产品和满足各种技术需求的软件维护活动中。它是评价软件质量的首要标准。
(2)ISO9000-3是对ISO90001进行改造后,将其应用到软件工业中对软件开发、供应和维护活动的知道文件。
(3)ISO9004-2是指导软件维护和服务的质量系统标准。它指导和支持软件产品的维护。
(4)ISO9004-4是近年公布的很有用的附加标准,是用做改善软件质量的质量管理系统文件。
另外还有两个作为评价软件的标准:(1)ISO9002 适用于评价设计需求。此标准可以代替ISO9001,作为面向软件维护而不涉及设计的,为某些咨询公司、计算机培训及服务公司使用的基本标准。(2)ISO9003适用于汇编及测试运行情况的标准。目前已经不再使用。
三、ISO9001标准条款到CMM模型的映射
表1是ISO9001条款到CMM模型关键过程区域和关键实践映射的概述。标出强相关性的列表示相关性较直接的关键过程区域和共同特征。标着判断相关性的列,包括在确定合理相关性时,需要一定程度主观性理解的关键过程区域和共同特征。
表1 ISO9001与 CMM模型映射
ISO9001条款 强相关性 判断相关性
1、管理职责 履行的承诺 软件项目规划 软件项目追踪和监督软件质量标准 履行的能力 实现矫正 软件质量管理
2、质量体系 实现矫正 软件项目规划 软件质量标准 软件产品工程 组织工程定义
3、合同评估 需求管理 软件项目规划 软件子合同管理
4、设计控制 软件项目规划 软件项目追踪和监督软件配置管理 软件产品工程 软件质量管理
5、文档和数据控制 软件配置管理 软件产品工程
6、采购 软件子合同管理
7、客户-供货产品的控制 软件子合同管理
8、产品确认和追踪 软件配置管理 软件产品工程
9、工程控制 软件项目规划 软件质量帮助 软件产品工程 定量工程管理 技术改变管理
10、检查和测试 软件产品工程 伙伴审查
11、检查控制、度量和测 试设备 软件产品工程
12、检查和测试状态 软件配置管理 软件产品工程
13、不合格产品的控制 软件配置管理 软件产品工程
14、矫正和预防措施 软件质量保证 软件配置管理 缺陷预防
15、处理、储藏、包装、保存和分发 软件配置管理 软件产品工程
16、质量数据控制 软件配置管理 软件产品工程、伙伴审查
17、内部质量审计 实现检验、软件质量保证
18、培训 履行的能力、培训计划
19、服务
20、统计技术 度量和分析 机构过程定义 定量过程管理 软件质量管理
虽然ISO9001中的一些问题没有被CMM模型履盖,反过来也一样;详细程度也有很大的不同:ISO9001的第4部分有五页;ISO9000-3的第5、第6和第7部分有11页,而CMM模型超过500页,但是,ISO9001和 CMM模型之间的相关性还是很明显的。
如表1所示,ISO 9001条款在CMM模型的关键过程区域中没有强相关性,没有在CMM模型中解决的是客户-供货产品的控制(7)和处理、储藏、包装、保存和分发15)。ISO 9001条款,CMM模型所完全没有解决的是服务(19)。ISO9001条款与CMM模型的判断相关性具有相当主观性的是矫正和预防活动。
两个文档的最大不同是CMM模型明确强调持续的过程改进。ISO9001只解决质量体系的最小的保证。另一个不同是CMM模型只关注软件,而ISO9001有更大的范围包括硬件、软件和服务。
两个文档的最大相似是它们的底线:“说你想做的;做你想说的。” ISO9001的基本假设是机构应该通过质量控制活动,归档每个重要过程和检查每个重要过程。CMM模型也强调文档化的过程和文档化的设计。“按文档化的程序”和遵循“书面形式的机构政策”是CMM模型关键过程区域的特征。在一个更详细的层次上,ISO9001的一些条款可以很容易地映射到与它们相当的CMM实践。因为两个文挡的结构是不同,所以其他的相关性映射是多对多的方式.例如,ISO9001培训条款(18)同时映射到培训计划关键过程区域和所有关键过程区域中的培训熟悉实践。
四、遵循ISO9001与CMM模型的关系
乍看,获得ISO9001认证的机构将处于CMM模型的第3或第4等级。事实上,一些第1等级的机构也以获得了ISO9001认证。这种差异的一个原因是ISO9001的高度抽象性,导致审计员以不同的方式解释。如果审计一个经过TickIt培训的机构处于第3等级,ISO9001的设计评估将直接映射到CMM模型的对等评估。不过并不是所有的审计员都对软件开发很熟悉。TickIt的优点在于它培训审计员理解怎样在软件行业应用ISO9001。
我们可以注意到:
(1)第2等级的大多数关键过程区域都与ISO9001强烈相关。
(2)每个关键过程区域在某些解释下至少与ISO9001弱相关。
在这个基础上,一个被评估为第1等级的机构可以被认证为遵循了ISO9001。然而,那个机构必须具有第2等级的重要过程实力和一定的第3等级过程实力。如果一个机构遵循ISO9001的精神,它将接近或超过第2等级。然而,机构在基于CMM模型的评估时可能发现存在严重的问题,而在ISO9001审计是却没有发现。
虽然SW-CMM模型并不足够地解决某些特殊问题,一般说来,它包含了ISO9001的关注点。反过来,却不正确。ISO9001仅仅描述了质量管理体系的最小准则,而不是解决整个过程改进,虽然ISO9001的未来修订版可能会关注这个问题。这些区别已经足够使一个严格的映射变得不切实际,但是它们的相似性反映了二者是高度重叠的。
五、结论
下面是本文开始所列的三个问题的回答:
(1)严格遵循ISO9001的机构并不满足CMM模型第2等级的所有关键过程区域,但它满足第2等级的大部分目标和许多第3等级的目标。更进一步,因为ISO9001并不关注所有的CMM模型实践,一个第1等级的机构可能获得 ISO9001认证。
(2)一个第2等级(或第3)等级的机构将能被认为遵循ISO9001,但是即使是第3等级的机构也需要保证它恰当地解决了ISO9001关于分发和安装的4.15条款,它还将考虑到ISO90003中关于所使用软件产品的6.8条款。如果考虑到这些,处于第2或更高等级的机构,将相对很容易地获得认证。
(3)对于软件过程改进应该基于CMM模型还是ISO9001。简短的回答是一个机构应该同时考虑两者,虽然两者有很大程度的重叠。市场运作需要获得ISO9001认证;解决CMM模型所关注的问题,将帮助机构准备ISO9001审计。相反,处于第1等级的机构如果解决ISO9001所关注的问题,也可能获得ISO9001认证,个人认为,虽然两者都可以单独使用来设计一个过程改进计划CMM模型给出更详细的指导,这将是一个更好的选择。
在任何情况下,软件机构应该关注于过程改进,建立竞争优势,而不是获得分数——不管是成熟度等级还是ISO9001认证。
文章来源于领测软件测试网 https://www.ltesting.net/