这是什么东西?
CMM是指“软件能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
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体系的宗旨。
。
CMM是软件能力成熟度等级模型(Capabitity Maturity Model),根据国务院《关于鼓励软件产业和集成电路产业发展的若干政策的通知》国发〔2000〕18号文第十七条:鼓励软件出口型企业通过GB/T19000—ISO9000系列质量保证体系认证和CMM(能力成熟度模型)认证。
CMM是软件企业提高管理水平、增强产品质量的有效途径。
上海市软件企业能力成熟度模型认证资助资金管理暂行办法中规定:通过CMM3级认证的软件企业,可以获得40万元人民币资助;通过CMM4级认证的软件企业,可以获得60万元人民币资助;通过CMM5级认证的软件企业,可以获得80万元人民币资助。
通过ISO9001认证的软件企业,可以获得2万元人民币资助。
上海市信息化委员会技术中心自2001年8月建立CMM项目组以来,在CMM培训、咨询、参与评估和国外主评估师交往等方面积累了较为丰富的经验。
目前有一定量的单位与它发生联系,讨论并咨询相关工作。
什么是CMM
CMM是指“软件能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。
它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
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体系的宗旨。
。