关于CMM的问题
发布网友
发布时间:2022-04-29 00:57
我来回答
共5个回答
热心网友
时间:2022-06-26 23:05
什么是CMM
日前,*发布的《鼓励软件产业和集成电路产业发展的若干*》中第17条中表示,将对软件出口型企业CMM认证费用予以适当支持,那么CMM是什么呢? CMM是能力成熟度模型(capabilityMaturityModel)的缩写,是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,*为已定义级,四级为已管理级,五级为优化级。 CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证。
********************************************
CMM是软件过程能力成熟度模型(Capacity Maturity Model)
不过这东西被上一期csdn杂志上一篇文章鄙视过。
CMM简介
CMM是软件过程能力成熟度模型(Capacity Maturity Model)的简称,是卡内基-梅隆大学软件工程研究院为了满足美国联邦*评估软件供应 商能力的要求,于1986年开始研究的模型,并于1991年正式推出了CMM 1.0 版。CMM自问世以来备受关注,在一些发达国家和地区得到了广泛应用,成为衡量软件公司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。据了解,美国、印度、日本等国家已有数十家公司通过了CMM不同等级的认证。
1986年11月,SEI应美国联邦*的要求,在Mitre公司的协助下,于1987年9月开发了一套软件能力成熟度框架和一套软件成熟度问卷,用来评估软件供应商的能力。这就是最早用于探索软件过程成熟度的一个工具。
四年以后,也就是1991年,SEI自己总结了CMM成熟度框架和初版成熟度问卷的实践经验,并以此为基础推出民用CMM1.0版。
CMM1.0版合用两年之后,1992年4月,SEI举行了CMM一个的研讨会,参加研讨会的有大约200名富有经验的软件专家。SEI在广泛听取他们的意见之后,又于1993年推出 CMM1.1版。这也是目前世界上比较流行和通用的CMM版本。
十几年来,此项工作一直在不断进行。按照SEI原来的计划,CMM的改进版本2.0应该在1997年11月完成,然后在取得版本2.0得实践反馈意见之后,在1999年完成准CMM2.0版本。但是,美国国防部办公室要求SEI推迟发布CMM2.0版本,而要先完成一个更为紧迫得项目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件获取方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等。为了以示区别,国内外很多资料把CMM叫做SW-CMM。
软件过程成熟度的提高是一个渐进的过程,需要一个长远的、可持续发展的过程作为保证。为建立一个面向过程持续提高的基础和文化,有些软件企业可能要花费很大的精力和时间。但是这种努力对任何一个软件企业来说都是非常必要的。
CMM目前代表着软件发展的一种思路,一种提高软件过程能力的途径。尽管它存在着某些不足。例如,成熟级别、关键过程域、公共属性和关键实践还需要在软件行业进一步深入地讨论和修订,但它确实为软件行业的发展提供了一个良好的框架,而且是浓度软件过程能力提高的有用工具。
增强我国软件企业的竞争力,提高国产软件的水平是国人的共同愿望,但目前我国软件水平,尤其是软件开发能力和软件生产能力还很差,这也是不争的事实。那么,如何提高我国软件的开发和生产能力,从而提高软件整体水平?软件企业实施CMM也许不失为一条有效的途径。
一个企业的软件能力更取决于该企业的过程能力,特别是在软件开发和生产中的成熟度。其过程能力越是成熟,该企业的软件生产能力 就越有保证。目前,我国已有一些软件企业正在尝试实施CMM。
当然,CMM不是万能的,并不一定对所有的软件企业都适合,实施CMM的企业也有失败的例子。我们希望通过本专栏能使更多的企业了解CMM,尽快找到适合本企业的发展之路,从而提高中国软件企业的竞争力。
**********************************************
画一个图吧:(CMM的五层结构图)
-----------------
/ 优 化 级 /
/ (5) /
-----------------
↑
| 不断改进的过程
|
-----------------
/ 可 管 理 级 /
/ (4) /
-----------------
↑
| 能预见的过程
|
-----------------
/ 确 定 级 /
/ (3) /
-----------------
↑
| 标准一致的过程
|
-----------------
/ 可 重 复 级 /
/ (2) /
-----------------
↑
| 有纪律的过程
|
-----------------
/ 初 始 级 /
/ (1) /
-----------------
*********************************************
CMM即Capability Maturity Model,中文翻译为能力成熟度模型", 是软件工程研究的一个重要里程碑。CMM的研究始于1986年11月,当时为了满足美国联邦*评估软件供应商能力的要求,美国卡内基·梅隆大学的软件工程研究院(SEI)牵头,在Mitre公司的协助下,用不到一年的时间,于1987年9月发布了一份能力成熟度框架(Capability Maturity Framework),以及一套成熟度问卷(Maturity Questionnaire).
很多人认为这套问卷就代表了CMM模型,其实它只是用于探索软件过程成熟度的一个工具,真正的模型出现在四年以后。SEI总结了自1987年以来对成熟度框架和初版成熟度问卷的实战经验,并以此为基础,推出了CMM1.0版。这个推出于1991年的CMM1.0 集中了四年来对软件公司评估的经验以及广泛的用户反馈,在成熟度框架的基础上建立了一个可用的模型,这个模型可以更加有效地帮助软件企业建立和实施过程改进计划。
CMM1.0版使用两年之后,于1992年四月进行了一个研讨会,参加研讨会的有约两百名富有经验的软件专业人员。在广泛听取了他们的反馈意见之后,SEI于1993年推出了CMM1.1版。近几年来,CMM又推出了2.0版本,同时进入了ISO体系,称为ISO/IEC15504或SPICE. SPICE从1995年起进入实地测试阶段,可能于2001年发布。
CMM致力于软件开发过程的管理及工程能力的提高与评估。该模型在美国和北美地区已得到广泛应用同时正在被越来越多的欧洲和亚洲等国家的大型信息技术企业所采纳,实际上已成为软件开发过程改进与评估的事实上的工业标准。
CMM将软件过程的成熟度分为5个等级,以下是5个等级的软件机构的特征:
(1)初始级(initial) 工作无序,项目进行过程中常放弃当初的计划。管理无章,缺乏健全的管理制度。开发项目成效不稳定,优秀管理人员的管理方法可能取得有效,但他一离去,工作秩序面目全非,产品的性能和质量依赖于个人能力和行为。
(2)可重复级(Repeatable) 管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作较好地实施标准。 变更依法进行,做到基线化。稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。
(3)已定义级(Defined) 开发过程,包括技术工作和管理工作,均已实现标准化、文档化。 建立了完善的培训制度和专家评审制度 全部技术活动和管理活动均可控制 对项目进行中的过程、岗位和职责均有共同的理解 。
(4)已管理级(Managed) 产品和过程已建立了定量的质量目标。过程中活动的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
(5)优化级(Optimizing) 可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。
软件大国印度,十分重视软件开发过程的管理及与其相关的理论与标准的发展。据统计,在印度的2000多家软件公司中有75家软件公司通过了ISO9000认证, 60多家软件公司通过了CMM认证,其中达到CMM5级一家,4级三家,3级4家。
CMM与ISO9000的区别主要有以下几点:
1.CMM是专门针对软件产品开发及服务的,而ISO9000则有宽得多的范围。
2.CMM强调软件开发过程的成熟度,即过程的不断改进和提高,而ISO9000则仅描述可接收的质量体系的最低标准。
3.CMM3级的覆盖范围要大于ISO9000的覆盖范围
引进CMM的意义:
1. 对软件企业:
提高软件开发的管理能力:CMM提供了软件企业自我评估的方法和自我提高的手段
提高软件生产率
加强软件生产的国际竞争力
2. 对软件项目发包单位和软件用户:
提供了对软件开发商开发管理水平的评估手段,有助于软件开发项目的风险识别。
***********************************************
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等:
(1) SW-CMM (Software CMM) 软件CMM
(2) SE-CMM (System Engineering CMM) 系统工程CMM
(3) SA-CMM (Software Acquisition CMM) 软件采购CMM
(4) IPT-CMM (Integrated Proct Team CMM) 集成产品群组CMM
(5) P-CMM (People CMM) 人力资源能力成熟度模型
为了以示区别,国内外很多资料把CMM叫做SW-CMM。按照SEI原来的计划,CMM的改进版本2.0应该在1997年11月完成,然后在取得版本2.0得实践反馈意见之后,在1999年完成准CMM2.0版本。但是,美国国防部办公室要求SEI推迟发布CMM2.0版本,而要先完成一个更为紧迫的项目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。就软件而言,CMMI是SW-CMM的修订本。它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科学和更周密的优点。SEI在发表CMMI-SE/SW 1.0版时,宣布大约用两年的时间完成从CMM到CMMI的过渡。
CMMI项目更为工业界和*部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力
*********************************************
CMM的发展过程
1984年美国国防部为降低采购风险,委托卡耐基—梅隆大学软件工程研究院(SEI)制定了软件过程改进、评估模型,也称为SEI SW-CMM。该模型于1991年正式推出,迅速得到广大软件企业及其顾客的认可。从1987年SEI推出SW-CMM框架开始,1991年推出 CMM 1.0 版,1993年推出CMM 1.1 版,2000年推出CMMI-SE/SW 1.0版。我国也于2001年4月发布了《SJ/T 11234-2001 软件过程能力评估模型》和《SJ/T 11235-2001 软件能力成熟度模型》两个标准。我国*一直重视软件产业的规范和发展,*于2000年6月颁发的“18号文件”第五章第十七条明确提出鼓励软件出口型企业通过ISO9000系列质量保证体系认证和CMM认证,其认证费用通过*外贸发展基金适当予以支持。目前各省市、高新区、软件园都有对通过CMM的企业给予资金奖励的制度。
**********************************************
CMM的含义与作用
CMM是Capability Maturity Model for Software的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件过程改进模型,成为当今企业从事规模软件生产不可缺少的一项内容。CMM的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。企业实施CMM模型并评估可为企业带来如下好处:指导软件组织提高软件开发管理能力;降低软件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮助软件企业识别开发和维护软件的有效过程和关键实践;帮助软件企业识别为达到CMM更高成熟等级所必须的关键实践;增加软件企业的国际竞争能力。
**********************************************
什么是CMM的核心?这是长期在有志于软件工程与过程改进的人中存在的一个问题。本人在一次CMM培训中准备了一个案例,希望能够生动而浅显地解释这个问题,在此与大家共享,也希望大家能提出更多问题。如要转载,请顺手给我发个Email:JennyLi@netease.com,非常感谢。案例背景:有一间房子,里面有一些人,一些杯子和水壶,以及用于烧水的用具,所有的人都需要喝开水。CMM 1级:过程:找到杯子和水壶倒水喝问题:找不到杯子,没水喝找不到水壶,没水喝水壶没水——不知道该怎么办一天要喝多少水——不知道倒一杯水要花多少时间,每个人每天为倒水花多少时间——不知道思考:买个饮水机能解决问题吗?CMM 2级:过程:杯子放在茶几上水壶放在餐台上如果水壶没水,在厨房烧水杯子用完要清洗,并放回茶几培训:厨房烧水,清洗杯子度量一天要烧几壶水,每个人每次/每天倒水要花多少时间有人检查是否所有人用完杯子后都清洗并放回餐台管理者关注这些活动的执行状态与成效问题:烧水太花时间水要等凉了才能喝效率不稳定:有人每天花20分钟倒水,有人每天花80分钟思考:买个饮水机能有帮助吗?CMM 3级:过程:所有人都先在茶几取杯子,再去餐台倒水统一用大杯子每人每次倒两杯水,与人分享指派专人定时烧水,放在凉水壶里指派专人定时收集和清洗杯子问题:怎样才能做得更好?思考:买个饮水机划算吗?CMM 4级:过程:建立评价模型:节省1分钟=节省1元钱,如果每人每天节省1分钟,则100个人1个月(30天)可以节省3000元——只要每月花费不超过3000元,我们就可以尝试新过程定义量化的管理目标:3个月内将每人每天用于倒水的时间减少2分钟以现在每人每天用于倒水的时间建立基线:平均10分钟,最少5分钟,最多20分钟每个人为自己制定优于平均值的目标:本人每天用于倒水的时间不超过6分钟度量并监控每天用于倒水的时间,一旦超过6分钟,要分析根本原因,并制定调整措施;最后结果是8分钟,超出预定的目标,但比平均值要好3个月后调整基线:平均8分钟,最低4分钟,最高15分钟问题:不改进不行了!思考:买个饮水机是最好的方案吗?CMM 5级:过程:发现问题的根本原因:倒水的时间之所以不能再少,是因为房间太大,走到餐台太远找出能够解决根本原因的所有方法,用评价模型进行评价选择一种方法,并制定改进的目标:买10个饮水机放在客厅里,每人每天节省2分钟制定相应的过程:如果买饮水机,则需要定期定购桶装水,定期对饮水机出水口进行清洗和消毒,请人及时更换空水桶试行过程:先找几个人试用,看看是否能达到预期目标推广:让所有人都用饮水机继续发现其它的根本原因……问题:怎样发现更多根本原因怎样引进更多新方法思考:还有什么比饮水机更好的方法吗?
比喻二:
一级:一群人没有经过训练,也不知道有没有经验,下水之后乱扑腾,有的人浮起来,有的人沉下去了。这就是一级的无序状态,结果是不可知的二级:大家都在游泳池或者小池塘里下过几次水,基本上在这样的条件下不会出事了。但是动作乱七八糟,有狗刨有说不出名字的动作。也就是二级的能够重复以前的成功经验*:经过研究,确定了几种标准泳姿,知道自由泳最快,蛙泳最省力等等。这就是*,有了标准的过程定义四级:大家都掌握标准动作之后,互相之间的成绩就可以比较了。通过测量大家的游泳成绩(当然不同泳姿的成绩要分开)、肌肉力量等等,分析特别好的和特别差的,找出好的原因和差的原因,大家的技术水平不断提高。这就是四级的量化控制,通过数据来管理和改进五级:大家的技术水平都很高了,动作都很完美。我们就通过创造新的泳姿,引入新式游泳衣等等创新来提高成绩。这就是五级的持续改进
**********************************************
CMM的结构
SW-CMM为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。第一级实际上是一个起点,任何准备按CMM质进化的企业一般都处于这个起点上,并通过这个起点向第二级迈进。除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,可以向下一个级别迈进。CMM系不主张跨越级别的进化,因为从第二级起,每一个低的级别实现均是高的级别实现的基础。
SW-CMM提供阶梯式的进化框架
1.初始级 初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有*、资源等方面的保证时,那么它仍然被视为初始级。
2.可重级 根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重级的过程,一个可重级的过程则能逐渐进化和成熟。第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪监控过程两个过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
3.定义级 在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第*则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出该项目的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
4.管理级 第四级的管理是量化的管理。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为工业生产活动。
5.优化级 第五级的目标是达到一个持续改善的境界。所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
从效果而言,在上述不同阶段,软件开发生产的成熟程度给软件企业带来了完全不同的效果。第一阶段到第五个阶段,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本越来越低。
关键过程域(KPA)
除第一级外,SW-CMM的每一级是按完全相同的结构成的。每一级包含了实现这一级目标的若干关键过程域(KPA),每个KPA进一步包含若干关键实施活动(KP),无论哪个KPA,它们的实施活动都统一按五个公共属性进行组织,即每一个KPA都包含五类KP。
1.目标 每一个KPA都确定了一组目标,若这组目标在每一个项目都能实现,则说明企业满足了该KPA的要求。若满足了一个级别的所有KPA要求,则表明达到了这个级别所要求的能力。
2.实施保证 实施保证是企业为了建立和实施相应KPA所必须采取的活动,这些活动主要包括制定企业范围的*和高层管理的责任。
3.实施能力 实施能力是企业实施KPA的前提条件。企业必须采取措施,在满足了这些条件后,才有可能执行KPA的执行活动。实施能力一般包括资源保证、人员培训等内容。
4.执行活动 执行过程描述了执行KPA所需求的必要角色和步骤。在五个公共属性中,执行活动是唯一项目执行相关的属性,其余四个属性则涉及企业CMM能力基础设施的建立。执行活动一般包括计划、执行的任务、任务执行的跟踪等。
5.度量分析 度量分析描述了过程的度量和度量分析要求。典型的度量和度量分析的要求是确定执行活动的状态和执行活动的有效性。
6.实施验证 实施验证是验证执行活动是否与建立的过程一致。实施验证涉及到管理的评审和审计以及质量保证活动。
在实施CMM时,可以根据企业软件过程存在问题的不同程度确定实现KPA的次序,然后按所确定次序逐步建立、实施相应过程。在执行某一个KPA时,对其目标组也可采用逐步满足的方式。过程进化和逐步走向成熟是CMM体系的宗旨。
热心网友
时间:2022-06-26 23:05
NeoAslan给你答案~
一、引言
信息技术的发展,使得软件规模越来越大。传统的“软件作坊”,生产往往依赖于人们急于创造财富的激动情绪,生产处于无序、混沌的一种状态,软件产品的质量不能保证,甚至中途撤消软件项目。这种生产方式已经不能满足日益增长的软件需求了。
人们认识到,软件过程是否完善是软件风险大小的决定因素。
1986年11月,美国卡内基梅隆大学的软件工程研究所(SEI)应美国联邦*的要求,针对美国国防部对软件承包商的能力评价问题,研究"过程成熟度框架"。
它主要用于软件开发过程和软件开发能力的评价和改进。CMM自1987年开始实施认证,现已成为软件业最权威的评估认证体系。
二、CMM综述
2.1什么是CMM?
CMM (软件能力成熟度模型)是英文 Capability Maturity Model for Software缩写,SW-CMM 的简称。
CMM 的定义是:有关软件企业或组织的软件过程进程中各个发展阶段的定义、实现、质量控制和改善的模型化描述。这个模型用于确定软件企业或组织的软件过程能力和找出软件质量及过程改进方面的最关键问题,为企业或组织的过程改进提供指南。
CMM 的核心思想是将软件开发视为一组过程,并根据统计质量管理的理论对软件开发进行过程管理,以使其满足工程化、标准化的要求,使企业能够更好地实现商业目标。它侧重于软件开发的管理及软件工程能力的提高,因此 CMM 可以作为企业软件过程改进的指南,帮助软件开发机构建立严格的、规范的软件开发过程,最有效地提高软件工程能力。
2.2 CMM的成熟度等级
CMM 提供了一个软件能力成熟度模型的框架,它将软件过程改进的进化步骤组织成五个成熟度等级,为软件过程不断改进奠定了一个循序渐进的基础。每一个成熟度等级为继续改进过程提供一个台基。第一级实际上是一个起点,任何准备按 CMM 体系进化的企业都自然处于这个起点上,并通过这个起点向第二级迈进。除第一级外,每一等级包含一组过程目标,通过实施相应的一组关键过程域来达到这一组过程目标。当这一组目标达到时,就能使软件过程的一个相应的重要成分得以稳定。每达到成熟度框架的一个等级,就建立起软件过程的一个相应的稳定成分,从而导致软件开发组织过程能力一定程度的增长。
CMM的成熟度分级、特征与要求见下表:
表-1 CMM的分级、特征与要求
等级名称 特征与要求
初始级 软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。
可重复级 已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。
定义级 管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。全部项目均采用供开发和维护软件用的组织标准软件过程的一个经批准的剪裁版本。
管理级 企业对产品及过程建立起定量的质量目标,同时在过程中加入规定的很清楚的连续的度量。作为企业的度量方案,要对项目的重要过程活动进行生产率和质量的度量。软件产品因此而具有可预期的高质量。达到该级的企业已实现过程定量化。
优化级 整个企业将会把重点放在对过程进行不断的优化,采取主动的措施去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析各有关过程的有效性资料,作出对新技术的成本与效益的分析,并提出对过程进行修改的建议。达到该级的公司可自发的不断改进,防止同类缺陷二次出现。
2.3 CMM的关键过程域
在CMM中每个成熟度等级(第1级除外)规定了不同的关键过程域,一个软件组织如果希望达到某一个成熟度等级,就必须完全满足关键过程域所规定的不同要求,即满足每个关键过程域的目标。所谓关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件组织改进过程时必须集中精力改进的几个方面。换句话说,关键过程域标识了达到某个成熟度等级时所必须满足的条件。在 CMM 中一共有18个关键过程域,分布在2至5级中:
第 2 级(可重复级)有6个关键过程域,主要涉及建立软件项目管理控制方面的内容。
即:需求管理(RM)、软件项目计划(SPP)、软件项目跟踪与监控(SPTO)、软件子合同管理(SSM)、软件质量保证(SQA)、软件配置管理(SCM)
第 3 级(定义级)有7个关键过程域,主要涉及项目和组织的策略,使软件组织建立起对项目中的有效计划和管理过程的内部细节。
即:组织过程焦点(OPF)、组织过程定义(OPD)、培训程序(TP)、集成软件管理(ISM)、软件产品工程(SPE)、组间协调(IC)、同级评审(PR)
第 4 级(管理级)有2个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。
即:定量过程管理(QPM)、软件质量管理(SQM)
第 5 级(优化级)有3个关键过程域,主要涉及的内容是软件组织和项目中如何实现持续不断的过程改进问题。
即:缺陷预防(DP)、技术变更管理(TCM)、过程变更管理(PCM)
三、软件企业与CMM
3.1实施CMM对软件企业的意义
中国正式加入WTO之后,中国软件市场已经是世界市场的一部分,中国软件企业已经直接面对国际IT企业的残酷竞争,中国企业除了要在国内占领市场之外,还应该放眼世界,走出国门,这样才能更好的生存和发展。
如何进入国际市场,成为了所有一切的前提。中国软件要赢得国际市场的信任和青睐,首先必须达到国际标准,通过国际标准的认证。现在想在软件产业化方面有所作为的企业,已经充分意识到加强国际标准认证的重要性和紧迫性。
鉴于CMM认证在国际上的声誉地位以及CMM对于软件企业能带来的实质性的质量的改进革新,以及我国*大力支持CMM认证的*,在企业内部实行项目管理和进行CMM认证:
3.1.1能将以前的隐性管理变为显性管理,把CMM带来的管理需求推到前台,并且确定用户在软件开发过程中的核心地位,使研发过程逐步透明化,项目进度得到更好的控制,实现全过程的质量管理。
3.1.2可以创造一个良好的软件开发环境和企业文化。软件开发人员严格遵守共同的规则规范,每一步都有明文记录,将上一次的经验运用到下一次步骤或项目中去;还能够做到分工明确,责任清楚,从而实现自身价值。
3.1.3 CMM是评价一个软件企业项目管理及研发实力的国际准则,它标志着企业走上标准化、规范化国际化的发展道路。
所以,CMM认证已成为软件企业的首选行动选择。通过CMM认证最直接的收益就是得到越来越多的国外企业的信任,也就能接到越来越多的订单。
原领导摩托罗拉中国研究中心通过CMM认证的李启煊先生曾说:“中国软件企业一定要进行CMM认证,如果我们连这点都做不到,将不但被国际软件产业价值链排除在外,不久以后甚至连中国本土的市场也会全部失去,因为CMM是目前提高软件企业竞争力的最佳途径。”
3.2软件企业如何实施CMM
3.2.1领导重视,全员参与。
将CMM变成习惯思维而不是应付差事。
3.2.2以CMM为软件过程改进指导书,结合企业现状作适当配置。
不要一味不变的本本理论。
3.2.3运用管理工具。
实施CMM需要的工具有:软件开发过程框架、需求管理工具、面向对象的分析设计工具、配置管理工具、变更管理工具、软件测试工具等等。
3.2.4建立软件工程过程小组(SEPG),负责软件过程改进。
制定出规范、规程,并经过与项目组反复讨论后确定,以保证其科学有效。此外,还要提供培训和咨询服务,解答项目人员的疑问,对项目进行检查并形成各种工作报告等等。
3.3软件企业实施CMM的范例
3.3.1 软件企业实施CMM的过程:
软件开发组织中实施CMM评估应该按照以下两个阶段进行:
第一阶段:申请评估的软件开发组织首先应该自己组织CMM培训,强化组织成员的CMM理念,在整个组织中树立起过程管理和质量管理意识,并着重培养一批具有初步经验的CMM实施管理人员。在此基础上,选取一些合适规模的中小型项目进行试点,初步积累一些实施CMM的经验,为进行正式的CMM评估打下基础。
第二阶段:在第一阶段取得收获的基础上,聘请有实施CMM成功经验的单位作为咨询顾问,在组织内全面实施CMM。并且在咨询专家的指导下提出评估申请,并着手准备组织预评估和正式评估。
3.3.2 某软件企业实际实施CMM的范例:
在正式决定实施CMM2级的初期,企业上下都非常乐观,认为在自己的企业实施CMM是一件轻而易举的事。
实施CMM首先从培训和过程文档的编写开始。经过培训,大家都认为基本掌握了CMM的知识要点,领会了基于过程改进企业软件能力的思想。
SEPG组开始定义企业的软件过程规范和文档模板的时候,就开始暴露出一些问题。因为SEPG组成员基本上都有本职工作,过程文档的编写时间得不到保证,导致过程规范文档的编写不能保证进度。而且在文档编写中,缺乏整体控制。SEPG组在制订过程文档的同时,软件部门也在酝酿进行组织结构调整,这两件事同时在进行,分别由不同的人员在运作,相互间的沟通渠道也不顺畅。
在经过了几轮修正后,尽管过程文档还存在不少的问题,但是SEPG组认为即便再次修改也很难有较大改善。由于进度已经明显的滞后,在企业高层领导的批准下,经过对项目组成员的培训,开始了CMM的试运行工作。
部门对于项目计划比较重视,但忽视了项目策划过程。在试运行的项目中,SEPG组要求项目经理需要把项目策划过程逐一地留下证据,便于SQA人员的审核。在实际的操作过程中,前期工作留下的隐患开始逐步暴露出来。首先暴露出来的问题是项目估计规程存在一些不合理的地方。其次,由于以前基本没有科学地进行估计,也没有适用的历史数据,项目组成员在进行估计时有一种无从下手的感觉。再次,项目成员对于过程文档的理解不够深入,经常理解错误。导致项目组在项目策划过程中消耗了很长的时间,也带来了一些争执和冲突。
项目计划出来以后,和以前的项目计划比较,发现工作量增加了很多。究其原因:1.新的计划是经过详细的估计过程逐步得到的,而以前的计划则属于是“拍脑瓜”的结果。2.原计划中,管理活动考虑较少,而新的计划增加了一些可以预期的管理活动。3.由于是初次使用科学的方法进行估计,但是估计过程中的参数选择可能与企业现状不符。
高级经理在看到这个计划后,虽然也觉得新的项目策划过程更加科学,但是,迫于绩效考核的压力,不大情愿批准这样的计划,甚至不愿意把这些项目投入到CMM的试运行中。
在实施的过程中,也存在一些问题困扰着SEPG组。
例如: 企业实施CMM时都想尽快地见到实效,可是在实施初期,过程规范很难一步到位,过程规范的探索和改进会增加软件项目的工作量。实施CMM可能会在相当长的时间内,企业需要付出很多学费,而效果却需要很长的时间才能显露出来。
值得庆幸的是,上述的一些问题已经开始被SEPG组所识别,并且得到了公司各方的重视。同时,咨询公司也在积极地指导我们解决试运行过程中碰到的问题。希望在不久的将来,CMM能够得到大家的认可,主动地按照相应的过程规范来运作软件项目,并且可以顺利地通过评估。
这是从自己搜集的资料来写的哈!!!!
热心网友
时间:2022-06-26 23:06
SW-CMM(软件生产能力成熟度模型)为软件企业的过程能力提供了一个阶梯式的进化框架,它基于过去所有软件工程成果的过程改善的框架,吸取了以往软件工程的经验教训。它指明了一个成熟的软件组织在软件开发方面需要管理的那些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作使软件组织走向成熟。是目前国际上最流行也是最实用的软件生产过程标准,理解CMM需要注意以下几点:
1.他仅指明该做什么,而没有指明如何做,他不是方*,但我们在学习CMM时,可以从中学到分析问题的方法。
2.他仅指明该做的关键内容,他仅描述软件过程的本质属性,而并非面面俱到。抓问题的主要方面的思想贯穿在整个CMM模型中。
3.软件过程是指软件工程过程、软件管理过程和软件组织的过程三者的有机结合。软件工程过程是我们理解的常规的软件的需求分析、设计、编码、测试等过程;软件管理过程是指为使软件工程过程顺利进行而进行的管理活动的集合。上述两个过程是以软件工程组为主的活动。软件组织的过程是企业级的对软件的组织活动,是以企业为主的活动。
4.他是从软件过程的角度考虑问题,而并非关注软件软件开发工具。这与框架软件生存周期无关,也与所采用的开发技术无关。
5.CMM为改善整个企业的软件过程提供了指南,而并非针对某个具体项目。SW-CMM并不能保证在这个过程框架下,产品开发百分之百的成功。产品的成功是多种因素的组合,例如市场等因素。
6.CMM1.1是针对大型软件企业(500人以上)的,对小型的软件企业(50人以下)需要裁减。
7.SW-CMM认为过程的不断改进基于许多小的、进化的步骤而不是*性的创新。
8.基于CMM的过程改善投资力度大、周期长,而技术投资则可能在短期内有较快回报。单独依靠技术改进可能在短期内有较快回报,但最终可能一无所获。
对于软件过程中的工作,在CMM中分为叁个层次进行理解:过程、活动、任务。
CMM的结构
SW-CMM为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。第一级实际上是一个起点,任何准备按CMM质进化的企业一般都处于这个起点上,并通过这个起点向第二级迈进。除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,可以向下一个级别迈进。CMM系不主张跨越级别的进化,因为从第二级起,每一个低的级别实现均是高的级别实现的基础。
SW-CMM提供阶梯式的进化框架
1.初始级 初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有*、资源等方面的保证时,那么它仍然被视为初始级。
2.可重级 根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重级的过程,一个可重级的过程则能逐渐进化和成熟。第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪监控过程两个过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
3.定义级 在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第*则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出该项目的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
4.管理级 第四级的管理是量化的管理。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为工业生产活动。
5.优化级 第五级的目标是达到一个持续改善的境界。所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
从效果而言,在上述不同阶段,软件开发生产的成熟程度给软件企业带来了完全不同的效果。第一阶段到第五个阶段,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本越来越低。
关键过程域(KPA)
除第一级外,SW-CMM的每一级是按完全相同的结构成的。每一级包含了实现这一级目标的若干关键过程域(KPA),每个KPA进一步包含若干关键实施活动(KP),无论哪个KPA,它们的实施活动都统一按五个公共属性进行组织,即每一个KPA都包含五类KP。
1.目标 每一个KPA都确定了一组目标,若这组目标在每一个项目都能实现,则说明企业满足了该KPA的要求。若满足了一个级别的所有KPA要求,则表明达到了这个级别所要求的能力。
2.实施保证 实施保证是企业为了建立和实施相应KPA所必须采取的活动,这些活动主要包括制定企业范围的*和高层管理的责任。
3.实施能力 实施能力是企业实施KPA的前提条件。企业必须采取措施,在满足了这些条件后,才有可能执行KPA的执行活动。实施能力一般包括资源保证、人员培训等内容。
4.执行活动 执行过程描述了执行KPA所需求的必要角色和步骤。在五个公共属性中,执行活动是唯一项目执行相关的属性,其余四个属性则涉及企业CMM能力基础设施的建立。执行活动一般包括计划、执行的任务、任务执行的跟踪等。
5.度量分析 度量分析描述了过程的度量和度量分析要求。典型的度量和度量分析的要求是确定执行活动的状态和执行活动的有效性。
6.实施验证 实施验证是验证执行活动是否与建立的过程一致。实施验证涉及到管理的评审和审计以及质量保证活动。
在实施CMM时,可以根据企业软件过程存在问题的不同程度确定实现KPA的次序,然后按所确定次序逐步建立、实施相应过程。在执行某一个KPA时,对其目标组也可采用逐步满足的方式。过程进化和逐步走向成熟是CMM体系的宗旨。
热心网友
时间:2022-06-26 23:07
(1)
CMM是能力成熟度模型(capabilityMaturityModel)的缩写,是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,*为已定义级,四级为已管理级,五级为优化级。 CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证。
热心网友
时间:2022-06-26 23:07
是Capability Maturity Model for Software的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件过程改进模型,成为当今企业从事规模软件生产不可缺少的一项内容。CMM的目的是帮助软件企业对软件工程过程进行管理和改进,