CMM(Capability Marurity Model,软件能力成熟度模型)是于1984年美国国会与美国主要的公司和研究中心合作创立的一个由联邦资助的非盈利组织——软件工程研究所(Software Engineering Institute,SEI)的一个早期研究成果。该模型提供了软件工程成果和管理方法的框架,自90年代提出以来,已在北美、欧洲和日本成功地应用。现在该模型已成为事实上的软件过程改进的工业标准。下面我们来一起学习有关CMM的一些基础知识。
一、 CMM基本概念
过程(Process):为实现既定目标的一系列操作步骤[IEEE-STD-610].
软件过程(Software Process):指人们用于开发和维护软件及其相关产品的一系列活动、方法、时间和革新。其中相关产品是指项目计划、设计文档、编码、测试和用户手册。当一个企业逐步走向成熟,软件过程的定义也会日趋完善,其企业内部的过程实施将更具有一致性。
软件过程能力(Software Process Capability):描述了在遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一个组织(企业)在承接下一个软件项目时,所能期望得到的更可能的结果。
任何一个软件的开发、维护和软件组织的发展离不开软件过程,而软件过程经历了不成熟到成熟、不完善到完善的发展过程。它不是一朝一夕就能成功的,需要持续不断的对软件过程进行改进,才能取得更终的成效。CMM就是根据这一指导思想设计出来的。该模型为了正确和有序地引导软件过宁波交友网程活动的开展,建立一个能够有效地描述和表示的软件过程的改进框架,使其能够对各阶段软件过程的任务和管理起指导作用。该模型一产品质量的概念和软件工程的经验教训为基础,指导企业如何控制开发、维护软件的生产过程和如何制定一套与之相适应的软件过程及管理体系。
(一)、分级标准
CMM模型描述和分析了软件过程能力的发展程度,确立了一个软件过程成熟程度的分级标准。一方面软件组织利用它可以评估自己当前的过程成熟度,并以此提出严格的软件质量标准和过程改进的方法和策略,通过不断的努力去达到更高的成熟程度。另一方面,该标准也可以作为用户对软件组织的一种评价标准,使之在选择软件开发商时不再是盲目的和无把握的。。
CMM的分级结构可以描述为:
①、初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖于更个别人的努力和机遇。
②、可重复级:已建立了基本的项手板模型目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。
③、已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。
④、以管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。
⑤、优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。
(三)CMM的内部结构
CMM为软件过程能力的提高提供了一条改进的途径。CMM由5个成熟度等级组成,每个成熟度等级有着各自的功能。除级外,CMM的每一级按完全相同的内部结构构成的。成熟度等级为更层,不同的成熟度等级反映了软件组织的软件过程能力和该组织可能实现预期结果的程度。
在CMM中,每个成熟度等级(级除外)规定了不同的关键过程域,一个软件组织如果希望达到某一个成熟度级别,就必须完全满足关键过程域所规定的要求,即满足关键古城域的目标。
(四)软件过程评估和软件能力评价
软件过程评估所针对的是软件组织自身内部软件过程的改进问题,目的在于法子按缺陷,提出改进方向。评估组以CMM模型为指引调查、鉴别软件过程中的问题,翻过来将这些问题与CMM关键实践活动所提出的指导一起用于确定组织的软件过程改进策略。
软件能力评价是对接受评价者在一定条件下、规定时间内能否完成特定项目的能力考核,即承担风险的系数大小。评价包括承包者是否有能力按计划开发软件产品,是否能按预算完成等。通过利用CMM模型确定评价结果后,就可以利用这些结果确定选择某一承包商的风险。也可以用来判断承包者的工作进程,推动他们爱进软件过程.