一个关于CMM的简介

[font=楷体_GB2312][size=2]前言:CMM,现在提到的非常多,讨论的话题也是非常火热,先就它的起源和发展,做一简要介绍。这份资料,本人曾在历次参与的CMM培训课程多次提到的,希望能对大家了解CMM、认识CMM、运用CMM。有所帮助。
若有不妥,敬请赐教!
[size=5]一.CMM的含义及作用
[size=3]CMM(软件能力成熟度模型:CapabilityMaturityModelForSoftware)软件评估标准是从1930年开始的近代质量管理理论与实践基础上发展起来的。1986年美国卡内基梅隆大学由联邦政府赞助成立了软件工程研究所(SEI:SoftwareEngineeringInstitute),1991年SEI受美国国防部委托,采访了100多家软件公司,研究制定并于1987年9月发布的一份能力成熟度框架(CapabilityMaturityFramework),以及一套成熟度问卷(MaturityQuestionnaire),即CMM1.0版本,最初是专为美国军方采购软件而制定的软件评估标准,主要用于软件供应商软件开发过程和软件开发能力的评估和改进,并很快得到美国软件界的认可,美国大型软件需求商如波音公司、IBM公司等对外采购软件时都要求对方达到这一标准。现在,CMM已成为软件业界公认的进入国际市场的“通行证”。
CMM把软件开发过程的成熟度由低到高分为五级,即初始级、可重复级、已定义级、已管理级和优化级。开发的能力越强,开发组织的成熟度越高,等级越高。目前大多数公司处于第一级和第二级,只有很少的公司可以达到第五级。
随着CMM等级的提高,逐步降低了软件开发风险,缩短了开发时间,降低了软件开发的人力物力成本,降低了灾难性的错误发生率,提高了质量。CMM评估等级的提升会大幅度提高软件开发能力,有助于客户特别是大公司对该软件业建立信心,并向该软件企业下订单采购软件产品。
CMM致力于软件开发过程的管理及工程能力的提高与评估。该模型在美国和北美地区已得到广泛应用同时正在被越来越多的欧洲和亚洲等国家的大型信息技术企业所采纳,实际上已成为软件开发过程改进与评估的事实上的工业标准。
我国软件要大幅度提高开发能力,走向世界,必须向国际上公认的软件评估标准靠拢,美国的软件市场约占世界软件市场的三分之一,软件产业如何能够开拓美国市场,关键之一就是要获得CMM认证的通行证。印度软件企业因通过CMM认证而大量出口软件到美国为我们提供了先例。
美国、欧洲和印度的经验表明:CMM确能促进软件产业发展,根据SEI2001年8月提供的数据,全世界有1505个机构申请CMM评估。通过评估的软件公司对项目的估计与控制能力约提升40%到50%;生产率提高10%到20%,软件产品出错率下降1/3以上。
[size=5]二.CMM版本演变过程
[size=3]从1987年SEI推出SW-CMM框架开始,1991年推出CMM1.0版,1993年推出CMM1.1版,2000年推出CMMI-SE/SW1.0版,2001年12月SEI推出了CMMI版本即比较成熟的系统工程和软件工程的集成成熟度模型,CMMI(CapabilityMaturityModelIntegration)是软件能力成熟度集成模型的缩写,CMMI1.1版本,这个模型可以指引一个组织去改进它用于开发,维护和购买产品和服务的过程。
我国也于2001年4月发布了《SJ/T11234-2001软件过程能力评估模型》和《SJ/T11235-2001软件能力成熟度模型》两个标准。
[size=5]三.CMM实施情况
[size=3]1、CMM在欧美
在CMM发源地的美国,虽不是说所有的企业都必须以CMM为质量标准,甚至一些美国的大软件企业都没有实施CMM,然而,一些和国防有关,特别是为政府做事的企业就必须通过CMM认证。如果该企业没有通过CMM3级,就不能参与国防部的项目。但还有一些与国防无关的其他领域,比如为美国财政系统做软件的企业,他们中的大部分都已经实施了CMM。此外,能源领域里也有很多企业都实施了CMM。这些企业希望能通过CMM提升自身软件能力、降低生产成本。
欧洲许多国家除独立研究与实践有关软件成熟度的软件工程理论和方法外,也引进了CMM评估。英国著名的路透集团就是其中之一,该集团于1999年通过了CMM3级评估。在CMM评估中,对包括经理在内的所有员工都进行了培训,目前已有64名从事CMM评估的全职人员。
2、CMM在印度
通过CMM评估提高印度软件产业整体水平的情况。印度的软件产值从10年前的5000万美元增长到1998-1999年度的40亿美元,保持了50%以上的年增长率。目前印度有约1000家软件企业,28万软件人员,仅次于美国。《财富》杂志中排名前500家企业中有200多家都是印度软件企业的客户。印度在软件领域中取得好成绩的原因有:软件开发成本低、英语能力好、技术水平高、教育制度保证有顶尖人才参加软件开发、软件人员待遇高、员工对公司忠诚度好、采用好的质量管理方法等。印度很多软件公司10年来一直进行软件过程改进,他们认识到只采用一种框架不能提供很好的产品,因应采用混合性标准,主要有:ISO9001、CMM、P-CMM(个人软件开发成熟度模型)、总体质量管理等。现印度有100多家软件企业通过了ISO9001论证,越来越多的企业认识到应逐步采用CMM评估标准。目前全球只有56家软件企业通过了CMM4级和5级评估,其中印度就有29家。印度对于软件人员进行软件标准培训非常重视,印度大软件公司对于新员工要进行5-8周的入门培训,以后新员工还要受导师培训。印度每年定期进行CMM培训,现已培训了3万多名软件人员。
通过三级评估才有可能拿到美国的订单。印度软件业之所以在近几年一跃成为除美国以外最大软件出口国,与他们极为重视CMM评估有着极大关系。目前已获得全球最高级即第四或第五级认证的只有7%的软件企业,其中印度就占了其中的大多数。
3、CMM在中国
中国人在软件开发上所表现出来的聪明才智举世公认,但具有国际级水平的软件开发公司却屈指可数,我国的软件出口的能力还远比不上近邻印度。究其原因,问题主要出在软件开发的管理上,一是管理水平低,因而难以将个人的软件开发能力凝聚成强大的团队力量;二是不重视在管理模式上和国际接轨,因而即使在软件开发的工程化管理上有所改善也难以获得国际认可,他们承认中国人在软件开发上所表现出来的个人高智商,但不认可软件开发组织的管理能力,尤其是不相信中国人有大规模、高难度软件开发的管理能力。因此,一方面要开发出具有国际级水平的软件很难;另一方面,即使开发出来也很难走向国际市场。
我国的软件企业应根据自己的实际情况引进CMM评估方法。在引进CMM中,要根据软件企业的实际情况,大致可分为两类:
有软件出口的企业,逐步通过CMM等级评估,以提高国际市场上的竞争力。
[size=3]
[size=3]一般软件企业可借鉴CMM方法,改进软件企业的管理,提高软件开发水平。

  ◆度量
  每个项目建立资源计划。主要是关心成本、产品和进度。有相应的管理数据。
  ◆改进方向
  (1)不再按项目制定软件过程,而是总结各种项目的成功经验,使之规则化,把具体经验归纳为全组织的标准软件过程。把改进组织的整体软件过程能力的软件过程活动,作为软件开发组织的责任。
  (2)确定全组织的标准软件过程,把软件工程及管理活动集成到一个稳固确定的软件过程中。从而可以跨项目改进软件过程效果,也可作为软件过程剪裁的基础。
  (3)建立软件工程过程小组(SEPG)长期承担评估与调整软件过程的任务,以适应未来软件项目的要求。
  (4)积累数据,建立组织的软件过程库及软件过程相关的文档库。
  (5)加强培训。
  CMM第三级:确定级
  ◆特征
  (1)无论管理方面或工程方面的软件过程都已文件化、标准化,并综合成软件开发组织的标准软件过程。
  (2)软件过程标准被应用到所有的工程中,用于编制和维护软件。有的项目也可根据实际情况,对软件开发组织的标准软件过程进行剪裁。
  (3)在从事一项工程时,产品的生产过程、花费、计划以及功能都是可以控制的,从而软件质量也可以控制。
  (4)软件工程过程组(SEPG)负责软件活动。
  (5)在全组织范围内安排培训计划。
  ◆过程
  (1)整个组织全面采用综合性的管理及工程过程来管理。软件工程和管理活动是稳定的和可重复的,具有连续性的。
  (2)软件过程起了预见及防范问题的作用,能使风险的影响最小化。
  ◆人员
  (1)以项目组的方式进行工作。如同综合产品团队。
  (2)在整个组织内部的所有人对于所定义的软件过程的活动、任务有深入了解,大大加强了过程能力。
  (3)有计划地按人员的角色进行培训。
  ◆技术
  在定性基础上建立新的评估技术。
  ◆度量
  (1)在全过程中收集使用数据。
  (2)在全项目中系统性地共享数据。
  ◆改进方向
  (1)开始着手软件过程的定量分析,以达到定量地控制软件项目过程的效果。
  (2)通过软件的质量管理达到软件的质量目标。
CMM第四级:管理级
  ◆特征
  (1)制定了软件过程和产品质量的详细而具体的度量标准,软件过程和产品质量都可以被理解和控制。
  (2)软件组织的能力是可预见的,原因是软件过程是被明确的度量标准所度量和操作。不言而喻,软件产品的质量就可以预见和得以控制。
  (3)组织的度量工程保证所有项目对生产率和质量进行度量、并作为重要的软件过程活动。
  (4)具有良好定义及一致的度量标准来指导软件过程,并作为评价软件过程及产品的定量基础。
  (5)在开发组织内已建立软件过程数据库,保存收集到的数据,可用于各项目的软件过程。
  ◆过程
  (1)开始定量地认识软件过程。
(2)软件过程的变化小,一般在可接受的范围内。
(3)可以预见软件过程中和产品质量方面的一些趋势。一旦质量经度量后超出这些标准或是有所违反,可以采用一些方法去改正,以达到良好的目标。
  ◆人员
  每个项目中存在强烈的群体工作意识。因为每人都了解个人的作用与组织的关系,因此能够产生这种群体意识。
  ◆技术
  不断的在定量基础上评估新技术。
  ◆度量
  (1)在全组织内进行数据收集与确定。
  (2)度量标准化。
  (3)数据用于定量地理解软件过程及稳定软件过程。
  ◆改进方向
  (1)缺陷防范,不仅仅在发现了问题时能及时改进,而且应采取特定行动防止将来出现这类缺陷。
  (2)主动进行技术变动管理、标识、选择和评价新技术,使有效的新技术能在开发组织中施行。
  (3)进行过程变动管理,定义过程改进的目的,经常不断地进行过程改进。
  CMM第五级:优化级
  ◆特征
  (1)整个组织特别关注软件过程改进的持续性、预见及增强自身,防止缺陷及问题的发生,不断地提高他们的过程处理能力。
  (2)加强定量分析,通过来自过程的质量反馈和吸收新观念,新科技,使软件过程能不断地得到改进。
  (3)根据软件过程的效果,进行成本/利润分析,从成功的软件过程中吸取经验,加以总结。把最好的创新成绩迅速向全组织转移,对失败的案例,由软件过程小组进行分析以找出原因。
  (4)组织能找出过程的不足并预先改进,把失败的教训告知全体组织以防止重复以前的错误。
  (5)对软件过程的评价和对标准软件过程的改进,都在全组织内推广。
  ◆过程
  (1)不断地系统地改进软件过程。
  (2)理解并消除产生问题的公共根源,在任何一个系统中都可找到:由于随机变化造成重复工作、进而导致时间浪费。为了防止浪费人力可能导致的系统变化。要消除“公共”的无效率根源,防止浪费发生。尽管所有级别都存在这些问题,但这是第五级的焦点。
  ◆人员
  (1)整个组织都存在自觉的强烈的团队意识。
  (2)每个人都致力过程改进,人们不再以达到里程碑的成就而满足,而要力求减少错误率。
  ◆技术
  基于定量的控制和管理,事先主动考虑新技术、追求新技术。可以实现软件开发中的方法和新技术的革新、以防止出现错误,不断提高产品的质量和生产率。
  ◆度量
  利用数据来评估,选择过程改进。
  ◆改进方向
  保持持续不断的软件过程改进。
  CMM总结:五层结构图
  在第五级上,技术和过程的改进像普通商业活动一样有计划、有管理地进行。由于组织不断的致力于改进过程的能力,所以软件开发组织的能力可持续改进。这种改进不仅表现在对存在的软件过程逐步改进,不表现在采用新技术和新方法方面的革新。

给TA打赏
共{{data.count}}人
人已打赏
可靠性技术可靠性设计

半导体器件芯片内部失效分析芯片内部分层,孔洞气泡失效分析

2008-4-24 13:43:25

可靠性技术新手提问

求助LED可靠性试验

2008-4-25 11:25:47

4 条回复 A文章作者 M管理员
  1. staringsun

    感觉五级的区分边界有点模糊哈,不过还是有所了解,可靠性感觉有点象管理类的东西

  2. whansley010

    好贴,很全面。

  3. xlsabycb

    好帖,长知识了。

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索