- 小教板
-
CMM的具体级别划分如下:第一级:初始级(The Initial Level):初始级的软件机构缺乏对软件过程的有效管理,其软件项目的成功来源于个人英雄主义而非机构行为,因此它不是可重复的。P.S. 初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。
在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。处于这一等级的企业,成功与否在很大程度上决定于有杰出的项目经理与经验丰富的开发团队。因此,能否雇请到及保有能干的员工成了关键问题。项目成功与否非常不确定。虽然产品一般来说是可用的,但是往往有超经费与不能按期完成的问题。第二级:可重复级(The Repeatable Level)第二级软件机构的主要特点是:项目计划和跟踪的稳定性,项目过程的可控性和以往成功的可重复性。更具体的说: 机构建立了管理软件项目的策略和实现这些策略的过程。 新项目的计划和管理基于类似项目的经验。 过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。 不同的项目可有不同的过程,而对机构的要求是具有指导项目建立适当管理过程的策略。 每个项目都确定了基本的软件管理控制,包括:基于前面项目的经验和新项目特点,做出现实的项目承诺(如预算、交付期、软件质量等);软件项目管理者要跟踪开支、日程、软件功能; 满足承诺的过程中的出现的问题要及时发现,妥善解决; 定义了软件项目标准,且机构确保其被遵守。本级的关键过程领域(KPA)包括: 需求管理(Requirements Management)——客户的需求是软件项目的基础。软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。 软件项目计划(Software Project Planning) ——为软件工程和项目管理建立一个合理的计划。 软件项目的跟踪和监督(Software Project Tacking and Oversight) ——使管理者对实际的软件项目进展过程有足够的了解,以在项目效能偏离计划太多是采取有效措施。 软件子合同管理(Software Subcontract Management)——选择合格的分包商,并有效管理之。 软件质量保证(Software Quality Assurance) ——对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。 软件配置管理(Software Configuration Management) ——在整个软件生命周期里建立并维护软件项目的工作产品的完整性。P.S.根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐进化和成熟。第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪与监控过程两个过程,通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。企业实行了基本的管理控制。符合实际的项目承诺是基于以往项目以及新项目的具体要求而作出的。项目经理不断监视成本、进度和产品功能,及时发现及解决问题以便实现所作的各项承诺。
通过具体地实施这一级的各个关键过程领域的要求,企业实现了过程的规范化、稳定化。因而,曾经取得过的成功成为可重复达到的目标。 第三级:已定义级(The Defined Level) 第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、可重复性和可控性。处于第三级的企业具有如下一些特征:机构采用标准的软件过程,软件工程和管理活动被集成为一个有机的整体。标准化的目的是使之可使管理者和技术人员有效工作。 有一组人员专门负责机构的软件过程,并且在机构中有培训计划来确保stuff和manager有知识和技能完成所赋予的角色。 标准的软件过程结合项目的特点即形成定义的软件过程,它包括一组集成的定义良好的软件工程和管理过程。 一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。 在已建立的产品线上cost, schedule, functionality 均可控制,软件质量被加以跟踪。 过程能力体现在在机构范围内对一个定义的软件过程活动、角色和责任的共同理解。 第三级主要处理以下的KPA: 机构过程关注(Organization Process Focus) ——机构对于改进机构的软件过程能力的软件过程活动的责任。 机构过程定义(Organization Process Definition) ——维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础 培训计划(Training Program)——个体的技能和知识以使他们能够更加有效的完成他们的角色 集成软件管理(Integrated Software Management) ——业务环境和项目的技术需要,从机构的标准软件过程和相关的过程assets经过剪裁,将软件工程和管理活动集成为一个有机的定义的软件过程。 软件产品工程(Software Product Engineering) ——地完成定义良好的工程过程。它描述了项目的技术活动,如需求分析,设计,编码和测试。 组间协调(Intergroup Coordination) ——软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段 同行评审(Peer Reviews) ——且有效的排除软件工作产品中的缺陷。它可通过inspection,structured walkthrough等手段进行。 P.S.在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出与项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。
这些标准的过程是用于帮助管理人员与一般成员工作得更有效率。如果有适当的需要,也可以加以修改。在这个把过程标准化的努力当中,企业开发出有效的软件工程的各种实践活动。同时,一个在整个企业内施行的培训方案将确保工作人员与管理人员都具备他们所需要的知识与技能。非常重要的一点是,项目小组要根据该项目的特点去改编企业的标准软件过程来制订出为本项目而定义的过程。
一个定义得很清楚的过程应当包括:准备妥当的判据,输入,完成工作的标准和步骤,审核的方法,输出和完成的判据。因为过程被定义得很清楚,因此管理层就能对所有项目的技术过程有透彻的了解。第四级:已管理级(The Managed Level) 第四级的软件机构中软件过程和软件产品都有定量的目标,并被定量地管理,因而其软件过程能力是可预测的,其生产的软件产品是高质量的。具体地说,第四季的机构具有如下特征:软件过程和产品有定量质量目标。 重要的软件过程活动均配有生产率和质量度量; 数据库被用来收集和分析定义软件过程的数据; 项目的软件过程和质量的评价有定量的基础; 项目的产品和过程控制具有可预测性。 缩小过程效能落在可接受的定量界限内的偏差; 可区分过程效能的有效偏差和随机偏差; 面向新领域的风险是可知并被仔细管理; 本级的关键过程领域包括: 定量过程管理(Quantitative Process Management) ——地控制软件项目的过程效能。 软件质量管理(Software Quality Management) ——定量了解项目软件产品的质量,并达到既定的质量目标。P.S.第四级的管理是量化的管理。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品。量化控制将使软件开发真正变成为一种工业生产活动。
在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案,要对所有项目的重要的过程活动进行生产率和质量的度量。软件产品因此具有可预期的高质量。
一个企业范围的数据库被用于收集与分析来自各项目的过程的数据。这些度量建立起了一个评价项目的过程与产品的定量的依据。项目小组可以通过缩小他们的效能表现的偏差使之处于可接受的定量界限之内,从而达到对过程与产品进行控制的目的。
因为过程是稳定的和经过度量,所以在有意外情况发生时,企业能够很快辨别出特殊的原因并加以处理。第五级:The Optimizing Level 概括来说,第五级的主要特点是技术和过程改进被作为常规的业务活动加以计划和管理。处于第五级的企业具有如下一些特征: 机构集中于连续的过程改进 具有标识弱点和增强过程的手段。 采用过程数据分析使用新技术的代价效益并提出改进。 项目队伍能够分析出错原因并防止其再次出现。 防止浪费是第五级的重点。 改进的途径在于已有过程的增量改进和使用新技术和新方法的革新构成 :陷预防(Defect Prevention) ——出错原因,防止错误再现(通过改变定义的软件过程) 技术变更管理(Technology Change Management) ——有益的新技术(工具、方法和过程),并按有序的方式将其转移至机构之中。其重点在于在变化的世界中有效的完成革新。 过程变更管理(Process Change Management)——改进机构所采用的软件过程,以改进软件质量,提高生产率和减少产品开发时间。
概括来说,第五级企业的重点是连续的过程改进。 P.S.第五级的目标是达到一个持续改进的境界。所谓持续改进是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。
在这一级,整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程进行修改的建议。整个企业都致力于探索最佳软件工程实践的创新。
项目组分析引起缺陷的原因,对过程进行评鉴与改进,以便预防已发生的缺陷再度发生。同时,也把从中学到的经验教训传授给其他项目。降低浪费与消耗也是这个等级的一个重点。
处于这一等级的企业的软件过程能力可被归纳为不断的改进与优化。它们以两种形式进行。一种是逐渐地提升现存过程,另一种是对技术与方法的创新。虽然在其他的能力成熟度等级之中,这些活动也可能发生,但是在优化级,技术与过程的改进是作为常规的工作一样,有计划地在管理之下实行的。纵观整个CMM,软件企业提高自身成熟度的历程是一个从无序到有序,从特殊到一般,从定性到定量,最后不断自我完善的过程。CMM与绩效提高从提高绩效的角度分析,企业实施CMM后将受益匪浅。企业实施CMM,可从如下几个步骤进行:1、提高思想认识,了解必要性和迫切性;2、确定合理的目标;3、进行CMM培训和咨询工作;4、成立工作组;5、制定和完善软件过程;6、内部评审;7、初期评估;8、正式评估;9、根据评估的结果改进软件过程。CMM 为了评价当前的水平,找出问题所在,指导如何改进和了解软件承包商的软件能力。目前针对CMM开发出许多的评估方法,其中公认评估方法有两个:一是用于内部过程改进的CMM评估称为CBA-IPI;二是用于选择和监控分承包方的CMM评估,称为SCE方法。这两种方法基于不同的目的,但评估的结果应一致。评估包括三个阶段:准备阶段、现场阶段和报告阶段。可以预言:组织对软件开发过程及其有效性的控制在上述五个等级的规范和要求下肯定能得到提高。