资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,CMM入门培训教程,1,主要内容,CMM的基本概念,能力成熟度模型CMM,能力成熟度模型集成CMMI,CMM与CMMI的选择,2,CMM的基本概念,(1/4),组织(organization)。管理软件项目,能对项目进行评估和过程改进的实体,如政府机关、公司、服务部门等。,项目(project)。由组织承担的,并需要组织中各部门通力合作完成的指定产品的开发和维护任务。任何一个项目都涉及经费、成本和进度计划。这里的产品包括硬件、软件或其他构件。,3,CMM的基本概念(2/4),软件过程(software process)。软件开发人员为开发和维护软件及相关产品所实施的一系列步骤,这些步骤涉及方法、工具以及人的组织和行为。软件产品的质量取决于软件开发和维护过程的质量,与其他产品的开发过程一样,软件过程也必须进行严格管理,因为只有严格管理才能保证效益和质量。,4,CMM的基本概念(3/4),组织的标准软件过程(organizations standard software process)。组织内部使用的软件过程,它描述软件过程要素和要素之间的关系,用它可以建立某一具体项目的软件过程。软件开发组织的软件过程能力是软件开发组织能够承接软件项目的重要依据。成熟的软件开发组织十分重视提高自身的软件过程能力,组织的领导者注意调动各层次、各类型人员的积极性和创造性,注意提高员工素质和技能,注意培育和发扬企业文化。在软件开发过程中,大家能够团结协作,能够将人、软件开发策略和方法、软件工具和环境有机地结合起来,使得软件开发和维护的整个过程是系统的、完整的、一致的和规范的。软件开发组织的软件过程是动态的,是逐步成熟和演化的。,5,CMM的基本概念(4/4),项目的软件过程(projects defined software process)。按照项目的特点和要求,对组织的标准软件过程进行剪裁和描述,包括相关的软件标准、规程、工具和方法。,组织的软件过程资产(organizations software process assets)。软件过程资产是软件开发组织能够控制和管理的,用于软件过程定义和剪裁,以及软件项目开发和管理的实体,包括组织的标准软件过程、批准使用的软件生命周期模式、剪裁标准软件过程的指南和准则、软件过程数据库、软件过程文档库等。,6,能力成熟度模型CMM,1)CMM的能力成熟度级别及关键过程域,2)成熟度级别的行为特征和关键过程域,3) CMM的关键实践和共同特征,4)能力成熟度的提高和CMM评估,7,1)CMM的能力成熟度级别及关键过程域,CMM的能力成熟度级别及关键过程域如表所示。CMM的能力成熟度共分5级:L1初始级、L2可重复级、L3已定义级、L4已管理级和L5优化级。因为初始级L1处于无序工作状态,无系统的规范,故在表中略去。L2以上包含若干关键过程域。,8,关键过程域(key process area)描述软件过程的属性,通过完成一组相互关联的活动,实现一组对建立过程能力至关重要的目标。关键过程域是SEI标识的,帮助确定软件开发组织的软件过程能力,评估软件成熟度的基本单元。关键过程域用具有固定结构和语句的框架表示。关键过程域的目标(goals)是指导和评估组织或组织的项目有效实践关键过程域的指南,是关键过程域应完成的任务和进行关键实践的概括描述。要达到关键过程域的目标,不仅需要一系列关键实践活动的支持,而且还要依赖较低级别关键过程域的实现。CMM的关键实践(key practices)指对关键过程域的有效实施和制度化其重要作用的基础设施和活动,如组织结构、策略、标准、培训、设备、工具等,它与具体的组织和实现无关。下面将对CMM能力成熟度每一级涉及的关键过程域、目标和为达到这一目标必须完成的关键实践逐步展开讨论。,9,能力成熟度模型CMM,1)CMM的能力成熟度级别及关键过程域,2)成熟度级别的行为特征和关键过程域,3) CMM的关键实践和共同特征,4)能力成熟度的提高和CMM评估,10,2)成熟度级别的行为特征和关键过程域,(1)L1初始级(initial)。,初始级的软件开发组织几乎没有软件过程管理,软件开发是无序和混乱的,软件开发过程是不稳定的,软件项目的成功取决于开发精英个人或小组对软件过程的理解和努力。,11,(2)L2可重复级(repeatable)。(1/8),为了跟踪软件开发过程的进度、成本和产品功能,可重复级的软件开发组织根据自身的经验和实际情况建立了基本的项目管理体系,制定了基本的软件过程管理和控制措施。这些措施包括:必要的规章制度和纪律、软件开发过程的论证和定义、人员的分工和培训、软件过程的阶段评审及用评审结果指导下一步的工作等。软件开发组织能够重复以前开发类似软件项目取得的成功。,12,可重复级的关键过程域包括:,需求管理,、,软件项目计划,、,项目跟踪和监督,、,分包合同管理,、,软件质量保证和软件配置管理,。下面介绍各关键过程域要达到的目标和关键实践活动。,(2)L2可重复级(repeatable)。(2/8),13,(2)L2可重复级(repeatable)(3/8),需求管理,(requirements management)。建立客户的软件项目需求,并使项目开发人员与客户对软件需求产生一致的理解。这一点很重要,因为它是软件项目管理和开发的基础,在很多场合还需要软件需求工程的支持。,14,(2)L2可重复级(repeatable)(4/8),软件项目计划,(software project planning)。制定实施软件工程与管理软件项目的工作计划。主要工作包括:明确任务,估算软件产品的规模、所需资源和约束条件,估算存在的风险以及产生项目计划文档等。软件项目计划是管理软件项目必需的文件和工具。,15,(2)L2可重复级(repeatable)(5/8),软件项目跟踪和监督,(software project tracking and oversight)。根据软件开发计划管理软件项目,随时掌握软件项目的实际开发过程。按照项目计划对软件开发的进度和阶段产品进行跟踪和评审,当软件项目的执行状况与软件项目计划发生较大偏差时,管理机构必须采取有效的控制措施,必要时可根据项目的实际完成情况和结果修订项目计划。,16,(2)L2可重复级(repeatable)(6/8),软件分包合同管理,(software subcontract management)。根据商业联盟、过程能力和技术等因素选择高质量的软件承接方来承接软件项目的部分子项目。制订子项目承接方的工作任务和项目计划文档,它是主承接方跟踪检查和监督子项目过程和产品的依据。,17,(2)L2可重复级(repeatable)(7/8),软件质量保证,(software quality assurance)的标准和规程保持一致,对发现的问题应采取必要措施。评审软件产品和活动,检验它们是否与应用予以解决。,18,(2)L2可重复级(repeatable)(8/8),软件配置管理,(software configuration management)。保证软件项目生成的产品在软件生命周期中的完整性。在给定时间点上确定软件配置(如工作产品及其说明),系统地控制软件配置的变化并在整个软件生命周期中维护配置的完整性和可跟踪性。,19,(3)L3已定义级(defined)(1/9),已定义级组织的,特点,是,,将管理和工程两方面的软件过程标准化、文档化和制度化,。软件开发组织已建立自己的软件过程标准,该组织承接的所有软件项目都是用自己的软件过程标准或根据项目需要剪裁一个子集。项目使用的软件过程标准成为项目定义的软件过程。已定义级的软件组织进行的软件过程应该是标准的、一致的和稳定的,软件开发过程中能对项目的成本、进度和产品的功能、质量进行跟踪和控制。,20,(3)L3已定义级(defined)(2/9),已定义级的关键过程域涉及项目和组织两方面,内容包括:,组织级过程焦点,、,组织级过程定义,、,培训大纲,、,集成化软件管理,、,软件产品工程,、,组间协调和同行评审,。,21,(3)L3已定义级(defined)(3/9),组织级过程焦点,(organization process focus)。不断提高对组织软件工程和项目软件过程的认识和理解,围绕过程定义和过程改进目标及时采取措施,协调、评估、开发和维护过程改进活动。,22,(3)L3已定义级(defined)(4/9),组织级过程定义,(organization process definition)。过程定义的关键实践活动包括:描述软件生命周期、制定过程剪裁准则和指南、建立组织级的软件过程数据库及相关文档库、确定定量过程管理需要的数据、形成稳定的准则支持组织制定各项规章制度等。,23,(3)L3已定义级(defined)(5/9),培训大纲,(training program)。通过培训,提高组织成员个人的知识水平和技能,以便更好地、更有效地完成工作任务。培训内容应针对组织、项目和个人的实际需要。根据培训需求制定培训大纲,包括培训计划、内容、资料、设备、方式和评价等。,24,(3)L3已定义级(defined)(6/9),集成化软件管理,(integrated software management)。集成化软件管理的基础是,L2的需求管理、软件项目计划、软件项目跟踪和监督3个关键过程。满足集成化软件管理的组织应能够按照组织严格定义的过程来计划和管理一个软件项目,25,(3)L3已定义级(defined)(7/9),软件产品工程,(software product engineering)。按照软件工程过程的定义,有效地,开发出稳定的软件工作产品,。,软件工作产品,指描述软件过程的文档、计划、规程,计算机程序和数据等,其中的一部分或全部将交付客户或最终用户。主要活动是描述软件项目的技术活动,如需求分析、设计、编码和测试,为软件工作产品建立文档,并保持它们的可跟踪性和一致性。,26,(3)L3已定义级(defined)(8/9),组间协调,(intergroup coordination)。软件过程工作量大,参与的人员多、复杂程度高,软件产品时效性强,必须有严格的分工和密切的协作。软件工程小组应特别注意系统需求、测试等方面的问题,主动与相关小组协调,因为只有合作攻关才能使项目更好、更有效地满足客户需求。,27,(3)L3已定义级(defined)(9/9),同行评审,(peer reviews)。同行专家评审是一种有效的、重要的工程方法,评审方式有检查、结构走查等。评审能够加深对软件工作产品的理解,能够尽早地、有效地排除软件产品的缺陷。,28,(5)L5优化级(optimizing)(1/2),在软件开发过程中,优化级的软件开发组织能够有效地确定软件过程的优势和薄弱环节,重视并利用软件开发和维护过程中的反馈直进行过程和产品质量的定量控制,能够采用先进的思想、方法、技术不断改进软件过程,提高组织的软件过程能力。,29,(4)L4已管理级(managed)(1/2),已管理级组织的主要特点是,重视软件度量,注意采集软件过程和产品质量的度量值,对软件过程和产品有定量的理解,并以此为基础进行决策和控制。,30,(4)L4已管理级(managed)(2/2),已管理级的关键领域包括:,定量的过程管理,和,软件质量管理,。,定量的过程管理,(quantitative process management)。定量地控制项目的软件过程能够达到的实际结果,从而得到一个稳定的、可定量预测的过程。,软件质量管理,(software quality management)。软件质量管理以产品为中心,目标是定量地评价软件产品的质量,实现具体的质量目标,满足客户和最终用户的需要。关键实践活动内容包括:定义软件产品的质量目标,制定软件质量计划,监督、调整软件质量计划、软件工作产品、开发活动及目标等。,31,(5)L5优化级(optimizing)(2/2),优化级的关键领域包括,缺陷的预防,、,技术更新管理,和,过程更改管理,。,缺陷的预防,(defect prevention)。分析软件项目的缺陷,确定原因,并采取相应措施预防他们再次发生。缺陷预防措施常常涉及软件过程的定义、管理和技术的进步等。,技术更新管理,(technology change management)。选择、评价和确定新技术,如工具、方法和过程,并将有效的技术引入到软件开发组织,以便改进软件质量、提高软件生产率、缩短软件产品的开发周期。技术更新管理能有效地改进软件过程。,过程更改管理,(process change management)。为提高软件质量和软件生产率,缩短软件产品的开发周期,必须不断改进组织中使用的软件过程。过程更改管理应在上级管理部门的主持下,积极主动且系统地对组织的标准软件过程和项目定义的软件过程进行改进和创新。,32,综上所述,自然会得出这样的结论:组织的成熟度级别越高,其软件开发能力越强,产品质量越好,效率越高,成本越低。不同CMM级别的软件开发组织开发一个包含五十万行程序代码的软件的统计数据如表所示。,33,能力成熟度模型CMM,1)CMM的能力成熟度级别及关键过程域,2)成熟度级别的行为特征和关键过程域,3),CMM的关键实践和共同特征,4)能力成熟度的提高和CMM评估,34,3) CMM的关键实践和共同特征,上面讨论了关键过程域的目标和为了达到这些目标需要的一组关键实践。关键实践描述对关键过程域起重要作用的基础设施和实践活动,应该指出“做什么”,而不具体规定“怎么做”。有些场合,为便于操作,关键实践还可以进一步分解。,35,3) CMM的关键实践和共同特征,关键实践可以从,执行约定,、,执行能力,、,执行活动,、,测量分析,和,验证实现,5个方面进行描述。,执行约定,。描述软件开发组织为建立和执行软件过程采取的措施,包括制定组织策略和构建领导体制等。,执行能力,。描述项目或组织成功执行软件过程所必需的条件,包括资源、组织机构和培训等。,执行活动,。描述实现关键过程域所必需的活动,包括职责分工、制定计划和规程、工作实施、过程跟踪和反馈等。,测量分析,。描述控制和改进软件过程必需的基本测量实践,包括培训大纲的质量、软件管理的有效性、软件产品的功能和质量等。,验证实现,。描述为检验实际执行的与定义的软件过程的一致性所采取的措施,包括上级管理部门定期审查、项目管理部门的监督和软件质量保证活动等。,36,37,能力成熟度模型CMM,1)CMM的能力成熟度级别及关键过程域,2)成熟度级别的行为特征和关键过程域,3) CMM的关键实践和共同特征,4)能力成熟度的提高和CMM评估,38,4)能力成熟度的提高和CMM评估,(1)能力成熟度级别的提高。,(2)CMM评估。,39,(1)能力成熟度级别的提高,软件过程或软件开发组织按照CMM模型认真评估并找出优势和差距后,通过有针对性的自身建设,可以提高能力成熟度等级。逐级提高的基础和涉及的主要建设内容如图,40,(2)CMM评估,SEI/CMU制定了项目的软件过程CMM评估方法,该方法也可以用于组织的软件能力成熟度评价。基于CMM的评估方法分6个步骤:,成立评估小组,小组由软件工程和管理工作经验丰富的专家组成,小组成员应接受过,CMM,基本概念和评估方法的专门培训。,参评单位的代表认真填写成熟度问卷调查表,并回答有关问题。,评估小组分析调查问卷。,评估小组现场访问、召开座谈会、审核过程文档,判断关键过程域的实践活动是否达到预定目标,并将结论记入文档。,整理调查结果、撰写调查报告,指明软件过程的强项和弱项。,绘制软件关键过程域剖面图,显示是否达到关键过程域的目标,并向有关部门提交评估的结论性意见。,41,SEI于2002年8月公布了美国多种行业、不同规模的1124个软件开发组织的CMM评估结果,,42,能力成熟度模型集成CMMI的产生,1)能力成熟度模型集成CMMI的产生,2) 阶段式模型和连续式模型,3)CMMI SE/SW/IPPD V1.0的24个过程域,43,1)能力成熟度模型集成CMMI的产生,软件能力成熟度模型CMM促进了软件过程的改进,提高了软件开发质量和生产效率。该模型取得了成功,产生了很大影响,于是,系统工程、系统安全工程、集成化产品开发等许多工程学科和领域也都参照CMM建立自己的能力成熟度模型,如SE CMM、People CMM、IPD CMM、FAA - iCMM等。但与此同时,模型的繁衍也导致了模型框架、术语等方面的矛盾和不一致。当某一工程项目涉及若干个学科和领域后,这种矛盾就十分突出了。其次,CMM公布后的若干年内,工程环境更加复杂,工程规模更大,参与工程项目的组织和人员更多,范围更广泛,工程的施工涉及多学科、交叉学科、并行工程及更多的国际标准。这些新的变化促使美国国防部、美国国防工业协会和SEI/CMU共同开发一种新的模型CMMI(Capability Maturity Model Integration)。CMMI项目在1998年正式启动。人们希望CMMI是若干过程模型的综合和改进,是支持多个工程学科和领域的系统的、一致的过程改进框架,能够适应现代工程的特点和需要,能够提高过程的质量和工作效率。来自业界、政府部门和SEI/CMU的170人,经过两年的工作于2000年发布第一个CMMI模型CMMI SE/SW/IPPD V1.0。CMMI SE/SW/IPPD V1.0的主要参考模型是软件学科的SW CMM、系统工程学科的EIA/IS 731、集成化产品和过程开发领域的IPD CMM V0.98。CMMI继承了SW CMM的阶段式表示法和EIA/IS 731 的连续式表示法。采用两种表示法的原因是,两种表示法各有优缺点,目前选用一种表示法的时机尚不成熟。软件学科的两种表示法均采用统一的24个过程域,它们在逻辑上是等价的。对同一组织采用两种模型分别进行CMMI评估应该得到相同的结论。,44,阶段式模型和连续式模型,(1)阶段式模型。,(2)连续式模型。,45,(1)阶段式模型,阶段式模型基本沿袭SW CMM模型框架,仍保持5个“成熟度等级”,但过程域作了一些调整和扩充,,46,当某一组织通过了某一等级过程域中的全部过程,即意味着该组织的成熟度达到了这一等级。随着组织自身建设的加强及相关过程域成熟度的逐步提高,组织的成熟度等级通过评估也得到相应的提高。利用阶段式模型对组织进行成熟度度量,概念清晰、易于理解、便于操作。,47,(2)连续式模型,与阶段式模型相比,连续式模型没有与组织成熟度相关的几个阶段。连续式模型将24个过程域按照功能划分为过程管理、项目管理、工程和支持4个过程组。每组包含的过程域如表所示。,48,连续式模型的过程域强调实践,每个过程域代表组织某一方面的能力。每个过程域的能力均分为5级,所有过程域共同的能力等级决定组织的能力等级。连续式模型允许组织对连续式模型的过程域进行剪裁,也允许对不同的过程域采用不同的能力等级。采用这种模式的评估结果用能力特征图表示,能力特征图通常采用电子表格的形式,如图所示。连续式模型允许一个过程域出现在多个特征图中,这些特征图分别代表某种能力的过程域的子集。,49,3)CMMI SE/SW/IPPD V1.0的24个过程域,CMMI SE/SW/IPPD V1.0的过程域是参照SW CMM 和 SE - CMM的过程域建立起来的,数量扩充为24个,与SW CMM 的18个关键过程域相比,CMMI SE/SW/IPPD V1.0过程域的名称、内涵也作了调整。CMMI SE/SW/IPPD V1.0的过程域可以按照阶段式模型划分,也可以按照连续式模型划分,这里为了与SW CMM 的阶段式模型对应,仍采用阶段式模型的划分方法和次序。因为CMMI对CMM进行了补充,所以即使CMM中出现同名过程域,也需要进一步的明确和说明。,50,1 L2可重复级。(1/3),需求管理REQM,。管理项目的产品需求和产品构件需求。主要任务是,获取需求承诺,管理需求变更、保持需求的可跟踪性、正确地理解需求、标识项目实施过程中与需求不一致的地方。,项目计划PP,。制定和维护定义项目活动的计划。主要任务是,建立和维护项目计划的参数估计、建立和维护项目计划、获得对计划的承诺。,项目监督和控制PMC,。按计划监督项目,管理、纠正存在的问题。主要任务是,及时提供项目进展情况,当项目进展偏离计划并达到不能容忍的程度时,采取适当的纠正措施。监督的内容包括:项目计划参数、项目风险、相关人员的参与情况、里程碑评审、承诺的实现、数据管理和进度评审等。,51,1 L2可重复级。(2/3),供应商合同管理SAM,。建立并执行供应商合同。主要任务是,分析需求、选择供应商、建立供应商合同、获取COTS产品、执行合同、对产品进行验收测试和发放。,度量和分析MA,。度量和分析过程的目的是,开发和维护项目信息管理需要的度量能力。主要任务是:,. 开展度量和分析活动;,.收集数据、分析数据、储存数据和结果、提供度量和分析结果。,52,L2可重复级。(3/3),过程和产品质量保证PPQA,。客观地评价过程及其相关的工作产品,并将报告和记录提供给项目成员和管理部门。主要任务是,按照过程描述、相关的标准和规程对过程和工作产品进行评价,找出不一致的地方并形成报告和记录。为了保证评价的客观性和准确性,组织可以对过程和产品进行独立监督。,配置管理CM,。利用配置标识、配置控制、配置状态报告和配置审计保持工作产品的完整性。主要任务是:,建立工作产品基线;,跟踪和控制变更;,建立配置管理记录,执行配置审计。,53,L3已定义级(1/6),需求开发RD,。生成和分析客户、产品和产品构件的需求。主要任务是,开发客户需求、开发产品需求、分析和确认需求。,技术解决方案TS,。根据“需求”开发、设计和实现问题求解方案,包括产品、产品构件和开发产品的相关过程。主要任务是,根据需求选择产品构件的求解方案,在此基础上进行设计,并将设计开发成产品。,产品集成PI,。对产品构件进行组装,生成最终产品并交付给客(用)户。主要任务是,制定并实施集成策略、采取必要措施确保接口的兼容性、对构件进行检验、对产品进行测试及包装。,验证VER,。确保选择的工作产品满足特定的需求。主要任务是,制定并实施验证计划、验证选择的工作产品并对关键工作产品进行同行评审。对发现的问题指明纠正措施,对纠正后的产品应确保无副作用。,54,L3已定义级(2/6),确认VAL,。证实产品或产品构件置于预期环境时能够满足预期的用途。主要任务是,制定并实施需求确认计划、产品确认计划,根据客户需求和产品需求确认产品和产品构件与需求的一致性,指明存在的差异和缺陷。,组织级过程焦点OPF,。建立和维护对组织级过程和过程资产的理解。主要任务是:,标识、捕捉过程改进机会。主要活动包括:建立组织级的过程需求、评估组织的过程、标识组织的过程改进。,计划和实施过程改进活动。主要活动包括:整合组织资源、总结与国成相关的工作经验、制定和实现过程行动计划等。,55,L3已定义级(3/6),组织级过程定义OPD,。建立和维护组织级可用的过程资产集。主要任务有如下几方面:创建组织的过程资产,主要活动包括:描述生命周期模型、建立标准过程、制定剪裁准则和标准;支持过程资产的使用,主要活动包括:建立组织级度量仓库、建立组织级过程资产库等。这一过程的事实将生成生命周期模型、组织级的标准过程、组织级度量仓库、组织级过程文档库和剪裁准则等。,组织级培训OT,。增加开发人员的技能和知识,提高他们完成本职工作的能力和有效性。主要任务是,标识培训需求、制定组织的培训内容和计划、提供培训、记录并评估培训结果。,56,L3已定义级(4/6),集成化项目管理IPM,。按照集成化、已定义的过程,管理项目和项目的参与人员。主要任务有如下两方面:,建立项目过程、利用组织级的过程资源计划项目活动、集成计划、按计划管理项目、为组织提供过程资源。,管理项目参与人员、管理依存关系、解决协调问题。,57,L3已定义级(5/6),风险管理RSKM,。标识软件生命周期中潜在的问题,采取必要措施缓解风险的影响。主要任务是,确定风险源和分类、定义风险参数、制定风险管理策略;标识和分析风险;拟定并缓解风险。,集成化的团队IT,。为完成项目产品的开发和维护,在组织内将人员按照某种原则和分工,系统地建立人物组。主要任务是,根据产品需求、集成化的项目管理要求、项目计划、组织培训能力和组织的实际情况设置任务组,选调任务组成员,按照组织的统一部署对任务组实施领导和管理,每个任务组都应制定具体的工作计划并给出承诺。,58,L3已定义级(6/6),决策分析和解决方案DAR,。利用结构化方法制定标准的评价方案,并进行决策。主要任务是,制定评价标准、制定和使用决策分析指南、选择评价技术、标识并评价可供选择的方案、选择解决方案等。,组织级集成环境OEI,。建立IPPD的组织级平台和过程资产。主要任务是,通过建立组织共享构想、集成化工作环境、标识IPPD技能需求活动构建IPPD平台;通过建立领导机制、激励机制和平衡职责机制对项目参与人员进行管理。,59,L4已管理级,组织级过程性能OPP,。对组织标准过程级的性能给出定量的描述,提供过程性能数据、基线和模型,对组织的项目实施定量的管理。主要任务是,选择过程、建立过程的性能度量、建立质量和性能目标、建立过程性能基线和模型。,项目定量管理QPM。为达到已定义项目的质量和性能指标,对项目过程进行定量管理。主要任务是,应用统计方法对项目的子过程能力进行度量,并定量地管理项目过程和产品质量。,60,L5已优化级,组织级改革和实施OID,。选择和实施改革、创新活动,改善组织的过程和技术,并能够量化和度量。,因果分析和解决方案CAR,。标识产生缺陷和问题的原因,并采取措施预防这些问题再次发生。主要任务是,选择分析数据,分析产生缺陷和问题的原因,提出并实现措施建议,评价变更效果并生成数据记录报告。,61,CMM和CMMI的选择和应用,SW CMM是阶段式模型。几千个组织的多年实践表明,SW CMM是成功的、有效的。,大家都懂得一个基本的道理:没有组织纪律、没有管理就没有团队。依靠团队取胜的组织十分关注组织的建设和管理,关注项目的管理及与此有关的过程域。组织要改变涣散、无序的工作状态,按照软件组织的特点和要求形成规章制度健全、管理科学、工作规范、团结合作的氛围和环境,是组织达到二级成熟度。在改善管理的基础上,CMM模型引导组织进行软件开发和维护过程的定义和标准化,引导组织制定的软件过程是系统的、科学的和规范的,从而使组织达到三级成熟度。在改善管理、提高软件过程的基础上,CMM模型引导组织进行定量的管理。软件不同于硬件,软件过程实施定量管理给组织带来很大困难,但定量管理提高了组织软件开发管理的水平和科学性,对在规定的期限和预算内交付高质量的软件产品将起到关键性的作用,从而使组织达到四级成熟度。在定量管理的基础上,CMM模型引导组织不断进行过程改进,引导组织及时总结经验、吸取教训,鼓励组织进行技术创新和改革,是组织具有更强的软件开发能力和产品竞争能力,从而使组织达到五级成熟度。综上所述,不难看出,CMM模型具有概念清晰、层次分明、易于操作的优点,为组织负责人和管理者提供指导组织逐步成熟的、明确的、有效的单一路途。,62,虽然CMM有很多优点,但其缺点也是明显的。首先,在阶段式模型中,属于较高级别成熟度的过程域不支持较低级别的过程域,如在L2级就无法安排属于L3级的“同行评审”过程域的实践活动。其次,CMM过程域的度量只有通过或不通过,度量比较粗糙,没有反映优势和一般。,63,CMMI模型的应用,CMMI SE/SW和CMMI SE/SW/IPPD模型综合了系统工程、软件工程、集成化产品和过程开发3个过程改进模型,综合了阶段式和连续式两种结构。组织的成熟度评价和项目的软件过程能力评估系统性更强、适应范围更大。CMMI提供了24个过程域,组织可根据自身情况或项目的特点进行剪裁。过程域采用0至5的记分法则,过程域成熟度的评估比较准确,能反应过程域的实际情况,特别是优势和不足。如有必要,24个相关过程域可以互相支持,不受成熟度等级的限制。按照某种需要抽取过程域,确定成熟度等级,建立能力特征图,并按此组织实践活动,进行评审和上报。能力特征图比任何单项数据更有说服力。组织若取24个过程域作为横坐标,取它们的成熟度等级作为纵坐标。就可指定一份组织过程域的“谱图”。“谱图”直观地反映了当前组织过程成熟度的优势和不足,组织可以根据需要采取多条途径进行建设。“谱图”对项目过程度量和竞争项目合同具有重要意义和价值。,64,CMMI模型的应用,CMMI的缺点是明显的。CMMI是两种结构、三种模型的综合,在这些结构和模型尚处发展阶段,还不十分成熟的情况下,CMMI模型由于照顾各方面的意见而显得复杂、臃肿,给使用和评估带来困难。,65,CMMI模型的应用,综上所述,CMM和CMMI是提高组织的成熟度和软件过程能力的有效模型和工具,一个软件组织无论是采用CMM模型还是采用CMMI模型,无论是使用阶段式模型还是使用连续式模型,都能提高组织的成熟度,都能提高项目的软件过程能力,用两种模型或两种方法评价的结论应该是基本一致的。,66,小结,这一章首先介绍了CMM模型产生的历史背景、概念和框架以及应用和评估,然后介绍了CMM模型的进一步发展CMMI,并分析了CMM和CMMI的共同点和差异。CMM模型是软件工程领域广泛应用管理科学的重要标志。CMM模型的推广和应用表明,管理科学“全面质量管理”的理论正在逐步为软件产业所接受。,67,
展开阅读全文