SO9001和CMM的比较及QS9000与ISO9000的比较本文试图从大家所熟悉的ISO9001标准入手,对ISO9001、ISO900-3和CMM之间的区别和联系做个简单的分析,探讨一些大家感到困惑的问题,包括:1)取得ISO9000认证的组织大约相当于CMM的哪个等级?2)取得CMM第2级(或第3级)的组织是否可以认为满足ISO9001要求?3)取得ISO9001证书与取得CMM相应等级证书的企业,谁的质量管理/质量保证水平/能力更高?一、背景:ISO9000族国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了ISO9001或TickIT****(ISO9001)认证。CMM是由美国卡内基-梅隆大学的软件工程研究所(SEI)开发的软件成熟度模型,美国的软件企业更多的选择取得CMM等级证书。在形式上,CMM分为5个等级(第1级级别最低,第5级级别最高),与ISO9000审核后只有“通过”和“不通过”两个结论相比,CMM是一个动态的过程,企业在取得低级别证书后,可根据高级别的要求确定下一步改进的方向。在基本原理方面,ISO9001和CMM都十分关注软件产品质量和过程改进。尤其是ISO9000:2000版标准增加持续改进、质量目标的量化等方面的要求后,在基本思路上和CMM更加接近。①本文参考了MarkC.Paulk先生的HOWISO9001COMPARESWITHTHECMM,但观点不尽相同。②ISO9001是软件企业开展质量体系认证依据的标准;③ISO9000-3是国际标准化组织(ISO)制定的软件开发企业实施ISO9001指南;④TickIT认证是一个基于ISO9001的、专门针对软件开发企业的认证制度,与取得非TiclIT(ISO9001)认证相比,TickIT对审核员的专业要求更高,TickIT(ISO9001)证书在业界更有权威性二、内容下面以ISO9001为主线,列出了ISO9001的要点及CMM的对应部分。1.要素4.1:管理职责:ISO9001标准要求:组织应规定质量方针,形成文件并予以实施和保持;对从事与质量有关的管理、执行和验证工作的人员规定其职责、权限和相互关系;识别和提供验证资源被指派的管理者保证实施和保持质量大纲。CMM第2级提出了质量方针和验证的职责,包括识别各类人员在项目中的职责,建立一支受过培训的软件质量保证小组和指派高级管理者监控软件质量保证(SQA)活动。作为CMM的通用特点,CMM在高级管理人员和项目经理两个层次上识别管理职责,以监控软件项目,支持SQA审核,建立支持软件工程的组织结构和分配资源。ISO9001要求的质量目标(一种量化的、可检查的要求),与在CMM第4级提到的“量化的”质量方针是一致的2.要素4.2:质量体系:ISO9001要求建立一个文件化的质量体系包括质量手册、质量计划、程序文件和作业指导书。CMM第2级提出验证符合性和管理过程的质量体系活动,在软件开发计划中规定软件项目使用的具体程序和标准。CMM的验证实施(VerifyingImplementation)通用特点明确要求进行审核以保证符合特定标准和程序。CMM第3级要求组织必须规定软件工程任务,并持续实施,在全组织都必须规定软件过程资源,包括标准、程序和过程描述。与ISO9001相比,CMM特别强调组织支持和项目实施之间的关系。3.要素4.3:合同评审:ISO9001要求组织必须评审每一个合同以判断需求是否明确、组织是否有能力满足合同要求。CMM第2级提出组织必须文件化顾客要求并予以评审,明确不恰当或模糊的要求。CMM第2级也要求描述目的、工作陈述和软件开发计划以履行软件工程小组和高级管理者评审过的外部(合同)承诺。4.要素4.4:设计控制:ISO9001要求组织建立控制和验证设计的程序,包括:策划设计和开发活动;规定组织上和技术上的接口;识别设计输入和设计输出;评审、验证和确认设计;控制设计更改CMM第3级描述生存周期过程,包括需求分析、设计、编码和测试;第2级提出策划和跟踪所有项目活动,包括上述生存周期活动及配置管理。ISO9001要求必须进行设计评审,至于应如何进行设计评审,并没有提出具体要求,组织可根据具体情况,在一定范围内选择。与此不同的是,CMM第3级特别要求设计评审要采用同行评审的方式。ISO9000-3关于设计评审的指南包含了CMM这一要求。CMM第4级对设计过程的要求与ISO9001相比更加正式和量化。5.要素4.5:文件和资料的控制ISO9001要求组织控制文件和资料的发放与更改。CMM第2级提出要将对文件和资料的控制纳入配置管理,第3级特别要求对文件控制须实施并维持配置管理体系。在CMM的实施活动(ActivitiesPerformance)通用特点章节中,对不同的关键过程区域明确了哪些专门的程序文件、标准和其它文件可纳入配置管理。ISO9000-3提出应将文件和资料纳入配置管理。6.要素:4.6采购ISO9001要求组织要确保采购的产品符合规定的要求,包括评价潜在的分承包方和验证采购产品。CMM第2级在顾客软件开发(Customersoftwaredevelpoment)的要求中包括了对分承包方的评价和分承包方提供的软件进行接收测试等内容。7.要素:4.7顾客提供产品的控制ISO9001要求组织要验证、贮存和维护顾客提供的产品。ISO9000-3在论述这个条款的要求时特别提到对顾客提供的市售软件的控制。CMM仅在第3级的子活动(sub-practice)中提到采购软件,提出识别市售软件或可复用软件是策划的一部分。市售软件和可复用软件整体来说是CMM的一大弱点。事实上,CMM在这点上不能充分覆盖ISO9001要求,特别是ISO9000-3的要求。尽管如此,CMM第2级中还是要求对分承包的软件进行接收测试。8.要素4.8产品的标识和可追溯性ISO9001要求组织能够在生产、安装和交付的所有阶段标识和追溯产品。CMM主要在第2级的配置管理章节中覆盖了这个要求,在第3级阐述了软件工作产品(softwareworkproducts)之间的一致性和可追溯性需要。ISO9000-3指出在软件行业一种产品标识和可追溯的方法是配置管理,而且强调配置管理的两个目标:对产品的当前配置及产品达到需求的状态提供足够的可视性;保证参与产品工作的每一位成员在软件生存周期的任何阶段都能使用正确的和准确的信息。在这一点上,两者基本是一致的。9.要素4.9过程控制:ISO9001要求组织策划和控制其生产过程,包括在受控条件下按形成文件的指导书进行生产。当组织不能完全验证过程的结果时,须对过程进行连续的监控。CMM第2级要求在软件开发计划中规定软件生产过程使用的特定程序和标准;第3级阐述了软件生产过程的定义、集成以及支持这些过程的工具要求;第4级阐述了过程控制的量化要求,并举统计过程控制(SPC)的例子说明。但对一个组织来说,证实满足这个条款要求的程度一般并不需要这样高。CMM的第5级更提出了在组织中转换新技术的要求,这与ISO900-3中提到的“供方应改进这些工具和技术”是一致的。ISO9000-3提出这一要素适用于复制、发行(release)和安装过程。10.要素4.10检验和试验:ISO9001要求组织在使用前对材料进行进货检验或验证并进行过程检验,组织还必须在最终产品发运前实施最终检验和试验并保存检验和试验记录。CMM第3级阐述了测试和过程检验的要求。ISO9000-3对软件(系统)测试给出了指南。11.要素4.11检验、测量和试验设备的控制ISO9001要求组织控制、校准和保持所有用于符合性证实的设备。当使用测试硬件或软件时必须在使用前进行检查并在规定的时间间隔内复检。CMM在软件产品工程(SoftwareProductEngingeering)的测试活动章节对此进行了一般性的阐述。关于测试软件,在CMM实施能力(AbilitytoPerform)通用特点章节中专门阐述了用于支持软件测试的工具。12.要素4.12检验和试验状态ISO9001要求组织保证产品在不同过程步骤中移动时须保持检验和试验状态的标识。CMM第2级在问题报告和配置状态、第3级在测试活动中阐述了这个条款的要求。13.要素4.13不合格品的控制ISO9001要求组织控制不合格(不满足规定要求的)产品以预防非预期的使用或安装。ISO900-3在设计控制、检验和试验(测试和确认)、过程控制(复制、交付和安装)和产品的标识和可追溯性(配置管理)等条款中对这个要求作了进一步的阐述。CMM并没有专门对不合格产品进行阐述。CMM第2级要求保持那些包含已知缺陷但目前尚未修正的配置项的状态,第3级的设计、实施、测试和确认中均对此作了阐述。14.要素4.14纠正和预防措施ISO9001要求组织确定不合格产生的原因。纠正措施要求消除不合格产生的实际原因,预防措施要求消除产生潜在不合格的原因。CMM第2级的问题报告,及其后对基线工作产品(baselinedworkproduct)的受控维护进行跟踪、关键过程区域(KPA)的软件质量保证部分与此内容相对应。CMM第5级关键过程区域(KPA)的很多部分也包含了这一内容,例如,防错(DefectPrevention)。15.要素4.15搬运、贮存、包装、防护和交付ISO9001要求建立并保持搬运、贮存、包装、防护和交付的形成文件的程序。ISO9000-3展开为对软件产品的复制、备份、交付和安装的控制。CMM并没有覆盖复制、交付和安装的要求。它在第2级中阐述了软件产品的生成和发行,在第3级中规定了接收测试的要求。但是CMM没有阐述关于产品交付和安装的要求。16.要素4.16质量记录的控制ISO9001要求组织收集和保存质量记录。CMM在实施活动(ActivitiesPerformed)通用特点章节中所规定的所有关键过程区域(KPA)都涉及质量记录的保存要求。第2级的问题报告、第3级的测试和同行评审活动都对应这一条款的要求。17.要素4.17内部质量审核ISO9001要求组织策划和实施内部质量审核。审核的结果提交管理评审,并应针对不符合采取纠正措施。CMM第2级阐述了审核过程。在验证实施(VerifyingImplementation)通用特点中明确提出:审核活动是为了确保符合特定标准和程序的要求。18.要素4.18培训ISO9001要求组织确定培训需求,并提供相应的培训且保留培训记录。CMM的实施能力(AbilitytoPerform)通用特点中明确了特殊培训需求。它阐述了通用培训基础结构,包括保存培训记录的要求。19.要素4.19服务ISO9001要求:当服务是规定要求时,组织应实施、验证和报告服务活动。ISO9000-3则把对维护的控制要求归于本要素。CMM并没有单独论述软件维护,而是把维护贯穿于整个CMM过程中。20.要素:4.20:统计技术ISO9001要求组织明确合适的统计技术,并用它们来验证过程能力和产品特性的可接受性。CMM把产品特性纳入“活动执行”(ActivitiesPerformed)通用特点章节,作为“测量和分析”通用特点的组成部分。CMM第2级要求建立项目级的数据库,第3级要求建立全组织范围内的过程和产品数据库,第4级要求组织进行统计过程控制,如使用排列图分析。下表是ISO9001要素涉及到的CMM级别的对应表,在具体的内容上它们并不是一一对应,有的虽然涉及到了,但在要求的程度上也有差别,本表只是说明了它们之间的关系。ISO9001要素本文中涉及的CMM级别第2级第3级第4级第5级通用特点4.1管理职责√√√4.2质量体系√√√4.3合同评审√4.4设计控制√√√4.5文件和资料控制√√√4.6采购√4.7顾客提供产品的控制√√4.8产品标识和可追溯性√√4.9过程控制√√√√4.10检验和试验√√4.11检验、测量和试验设备的控制√4.12检验和试验状态√√4.13不合格品控制√√4.14纠