软件能力成熟度模型CMM(AMT研究院 张艳)
|
AMTeam.org 概述CMM是CapabilityMaturityModelforSoftware的简称,是对组织软件过程能力的描述。CMM起初是在美国国防部管理大型而又复杂的开发项目过成中形成的,后来逐步得到了公众和私营业主的认可而作为一种提高软件开发过程和软件质量的一种有用的框架模型被大家所接受。1984年美国国防部为降低采购风险,委托卡耐基—梅隆大学软件工程研究院(SEI)制定了软件过程改进、评估模型,也称为SEISW-CMM。该模型于1991年正式推出,迅速得到广大软件企业及其顾客的认可。从1987年SEI推出SW-CMM框架开始,1991年推出CMM1.0版,1993年推出CMM1.1版,2000年推出CMMI-SESW1.0版。1986年,CMM首先于卡耐基梅隆大学的软件工程学会SEI(SoftwareEngineeringInstitute)和MITRE组织联合提出。我国于2001年4月发布了《SJT11234-2001软件过程能力评估模型》和《SJT11235-2001软件能力成熟度模型》两个标准。我国政府一直重视软件产业的规范和发展,国务院于2000年6月颁发的“18号文件”第五章第十七条明确提出鼓励软件出口型企业通过ISO9000系列质量保证体系认证和CMM认证,其认证费用通过中央外贸发展基金适当予以支持。目前各省市、高新区、软件园都有对通过CMM的企业给予资金奖励的制度。 CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺少的一项内容。CMM的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。企业实施CMM模型并评估可为企业带来如下好处:指导软件组织提高软件开发管理能力;降低软件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮助软件企业识别开发和维护软件的有效过程和关键实践;帮助软件企业识别为达到CMM更高成熟等级所必须的关键实践;增加软件企业的国际竞争能力。CMM将软件开发过程和软件质量的成熟程度分成以下5个等级:提出了由第一级(低级)向第五级(高级)逐级发展的模式。模型的等级从低到高,可以预计企业的开发风险越来越低,开发能力越来越高。模型的每个等级由不同的过程方面(ProcessArea)构成,而每个过程方面又由各种目标构成,每个目标由各种特定惯例和通用惯例支持。CMM的具体级别划分如下:第一级:初始级(TheInitialLevel):初始级的软件机构缺乏对软件过程的有效管理,其软件项目的成功来源于个人英雄主义而非机构行为,因此它不是可重复的。第二级:可重复级(TheRepeatableLevel)第二级软件机构的主要特点是:项目计划和跟踪的稳定性,项目过程的可控性和以往成功的可重复性。更具体的说:- 机构建立了管理软件项目的策略和实现这些策略的过程。
- 新项目的计划和管理基于类似项目的经验。
- 过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。
- 不同的项目可有不同的过程,而对机构的要求是具有指导项目建立适当管理过程的策略。
- 每个项目都确定了基本的软件管理控制,包括:基于前面项目的经验和新项目特点,做出现实的项目承诺(如预算、交付期、软件质量等);软件项目管理者要跟踪开支、日程、软件功能;
- 满足承诺的过程中的出现的问题要及时发现,妥善解决;
- 定义了软件项目标准,且机构确保其被遵守。
本级的关键过程领域(KPA)包括: - 需求管理(RequirementsManagement)——客户的需求是软件项目的基础。软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。
- 软件项目计划(SoftwareProjectPlanning)——为软件工程和项目管理建立一个合理的计划。
- 软件项目的跟踪和监督(SoftwareProjectTackingandOversight)——使管理者对实际的软件项目进展过程有足够的了解,以在项目效能偏离计划太多是采取有效措施。
- 软件子(SoftwareSubcontractManagement)——选择合格的分包商,并有效管理之。
- 软件质量保证(SoftwareQualityAssurance)——对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。
- 软件配置管理(SoftwareConfigurationManagement)——在整个软件生命周期里建立并维护软件项目的工作产品的完整性。
第三级:已定义级(TheDefinedLevel) 第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、可重复性和可控性。处于第三级的企业具有如下一些特征: - 机构采用标准的软件过程,软件工程和管理活动被集成为一个有机的整体。标准化的目的是使之可使管理者和技术人员有效工作。
- 有一组人员专门负责机构的软件过程,并且在机构中有培训计划来确保stuff和manager有知识和技能完成所赋予的角色。
- 标准的软件过程结合项目的特点即形成定义的软件过程,它包括一组集成的定义良好的软件工程和管理过程。
- 一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。
- 在已建立的产品线上cost,schedule,functionality均可控制,软件质量被加以跟踪。
- 过程能力体现在在机构范围内对一个定义的软件过程活动、角色和责任的共同理解。
第三级主要处理以下的KPA: - 机构过程关注(OrganizationProcessFocus)——机构对于改进机构的软件过程能力的软件过程活动的责任。
- 机构过程定义(OrganizationProcessDefinition)——维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础
- 培训计划(TrainingProgram)——个体的技能和知识以使他们能够更加有效的完成他们的角色
- 集成软件管理(IntegratedSoftwareManagement)——业务环境和项目的技术需要,从机构的标准软件过程和相关的过程assets经过剪裁,将软件工程和管理活动集成为一个有机的定义的软件过程。
- 软件产品工程(SoftwareProductEngineering)——地完成定义良好的工程过程。它描述了项目的技术活动,如需求分析,设计,编码和测试。
- 组间协调(IntergroupCoordination)——软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段
- 同行评审(PeerReviews)——且有效的排除软件工作产品中的缺陷。它可通过inspection,structuredwalkthrough等手段进行。
第四级:已管理级(TheManagedLevel) 第四级的软件机构中软件过程和软件产品都有定量的目标,并被定量地管理,因而其软件过程能力是可预测的,其生产的软件产品是高质量的。具体地说,第四季的机构具有如下特征: - 软件过程和产品有定量质量目标。
- 重要的软件过程活动均配有生产率和质量度量;
- 数据库被用来收集和分析定义软件过程的数据;
- 项目的软件过程和质量的评价有定量的基础;
- 项目的产品和过程控制具有可预测性。
- 缩小过程效能落在可接受的定量界限内的偏差;
- 可区分过程效能的有效偏差和随机偏差;
- 面向新领域的风险是可知并被仔细管理;
本级的关键过程领域包括: - 定量过程管理(QuantitativeProcessManagement)——地控制软件项目的过程效能。
- 软件(SoftwareQualityManagement)——定量了解项目软件产品的质量,并达到既定的质量目标。
|
|
|