第8章集成化能力成熟度模型.ppt
- 文档编号:18628009
- 上传时间:2023-08-21
- 格式:PPT
- 页数:78
- 大小:423KB
第8章集成化能力成熟度模型.ppt
《第8章集成化能力成熟度模型.ppt》由会员分享,可在线阅读,更多相关《第8章集成化能力成熟度模型.ppt(78页珍藏版)》请在冰点文库上搜索。
第8章集成化能力成熟度模型(CMMI),掌握过程改善所基于的基本思想;针对开发的CMMI有关“最佳实践”的组织以及两种过程改善的路径-能力等级和成熟度等级。
本章内容及要求:
CMM(theCapabilityMaturityModelforsoftware)CMM是什么?
CMM的知识结构,过程是生产产品的机制.不论是过程改善还是能力确定,均需要过程评估,而过程评估通常基于已提出的一些评估模型.,软件开发本质,软件生存周期过程,定义,软件生存周期模型,软件工程生存周期过程,支持过程方向(活动与定序)的建立,形成,软件开发方法学结构化方法面向对象方法面向数据结构方法维也纳开发方法(VDM),给出实现开发过程的途径,支持/管理技术与方法,作用于,在80年代中期,美国工业界和政府部门开始认识到:
在软件开发中,关键的问题在于软件开发组织不能很好地定义和控制其软件过程。
从而使一些好的开发方法和技术都起不到所期望的作用。
针对这一问题:
1986年11月,美国卡内基-梅隆大学软件工程研究所(SEI)开始开发过程成熟度框架。
1987年9月,SEI发布了过程成熟度框架的简要描述和成熟度调查表。
1991年,SEI将过程成熟度框架演化为CMM1.0版:
CMU/SEI-91-TR-24、CMU/SEI-91-TR-25。
1993年,SEI根据反馈,提出CMM1.1版:
CMU/SEI-93-TR-25。
目前,已经提出CMM2.0版。
是什么?
CMM为控制软件过程提供了一种业界认可的评估指标体系,一种软件能力成熟度模型注:
没有涉及评估过程的方法.,过程管理,过程规划,评估,组织,过程控制,人员指派,领导,至少涉及:
1)评估模式;2)评估指标体系;3)评估方法学;4)评估技术;等,CMM:
支持建立过程能力评估的评估指标体系包括评估指标指标体系,2的基本内容)基本思想(Philosophy)支撑软件产品系统质量的三大要素:
“整个软件任务可以看作是一个过程,该过程可以予以控制、测量和改进”(“Treattheentiresoftwaretaskasaprocessthatcancontrolled,measured,andimproved.”WattsS.Humphrey,A,B,D,C,People,Process,Technology,)基本概念:
(1)何谓过程?
过程(Process)是一种手段,通过该手段可以把人、规程、方法、设备以及工具进行集成,以产生一种所期望的结果。
(themeansbywhichpeople,procedures,method,equipment,andtoolsareintegratedtoproduceadesiredendresult.)
(2)过程能力定义:
(开发组织或项目组)通过遵循其软件过程能够实现预期结果的程度。
range,可见:
一个组织的软件过程能力,是未来项目结果的指示器,给出了一种预测该组织承担下一个软件项目可能结果的方法。
是不同等级过程能力的基本指标,高、低过程能力的基本特征(Characteristics)按以上的图,过程能力有高有低低过程能力的基本特征非常依赖当前的参与人员(practitioners);什么事情(包括软件过程与管理)均是临时准备;没有严格的下一步;冒险地使用新技术;复审和测试常常不足;产品质量很难预测交付的“东西”不符合要求;进度延迟和预算超额。
高过程能力的特征定义了过程,建立了使用技术的基础;开发和管理遵循一个确定的途径;过程得到了很好地控制,并得到各方面(包括测量)的支持;实现了过程制度化,并不断改进。
-具有成熟过程的组织特征(CharacteristicsofOrganizationswithamatureProcesses),Softwarepolicies,Communicationtoemployees,Defined,mandatedpractices,Activitiesfollowprocesses,Estimatingsystem,Schedulesandbudgetbasedonhistoricalperformance,Managersmonitorcustomersatisfaction,Managersmonitorproductqualityandstatus,Managersmonitorenforcepoliciesandprocesses,Statusreports,customersatisfactionsurveys,SQA,(3)过程性能(ProcessPerformance)遵循一个过程所达到实际结果的一个测度(measure)过程能力和过程性能之间的关系,Capability,Performance,注意:
软件过程能力与软件过程性能之间的关系:
一个是能够实现预期结果的程度,一个是得到的实际结果一个项目的实际过程性能,可能并不充分反映其所在组织的整个过程能力。
(由于该项目的具体属性和执行该项目的环境所限),(4)过程成熟度(ProcessMature)一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。
(Definition:
ProcessMatureTheextenttowhichaspecificprocessisexplicitly:
defined(youknowwhatisdone),managed(youcancontroltheprocessqualitatively),measured(youknowhowmuchisdone,andhowwell),controlled(youcancontroltheprocessquantitatively),effective(youcanimprovetheprocessrationally)),软件过程成熟度指明:
一个软件开发组织软件过程能力的增长潜力;-能力提高的基础性表明一个开发组织软件过程的丰富多样性,-能力提高的可能性在各开发项目中运用软件过程的一致性。
-能力提高的持续性这意味着:
由于开发组织通过运用软件过程,使各项目执行软件过程的纪律性一致地增强,导致软件生产率和质量可以得到不断地的改进。
组织成熟度(OrganizationalMaturity)组织的成熟度是由一组过程的组合能力来表达的,其中包括支持它们的制度因素(factor)-pertainstosetofprocesses高的组织成熟度,是将组织的一组过程看作为一个整体,该整体是高的过程能力。
其主要表现为:
不论是开发还是管理,均有明确、严格的途径;定义了组织过程并不断改善之;得到了管理人员和其他人员的支持;实施了很好的控制;,()能力成熟度等级软件开发组织在走向成熟的过程中,几个具有明确定义的、可以表征其软件过程能力成熟程度的“平台”。
该平台(每一等级)包含一组过程目标。
当一个软件开发组织达到其中一个目标时,则表明软件过程的一个(或几个)重要成分得到了实现,从而导致该组织软件过程能力的增长。
显然,每一个成熟度等级为达到下一个等级提供了一个基础。
3)CMM的软件过程成熟度框架,初始级
(1),可重复级
(2),已定义级(3),已管理级(4),持续优化级(5),严格的过程,标准的一致的过程,可预言的过程,持续改善的过程,
(1)成熟度框架在这一框架中,将过程能力成熟度分为五级:
初始级,可重复级,已定义级,已管理级,持续优化级。
通过成熟度级别,定义了在使软件过程成熟的过程中的演化状态。
可见,过程成熟度框架:
描述:
一条从无序的、混乱的过程达到成熟的、有纪律的软件过程的进化途径。
用途:
以软件过程成熟度框架,可以导出过程改进策略,为软件过程的不断改进的历程提供了一份导引图:
-指导软件开发组织不断识别出其软件过程的缺陷-引导开发组织在各个平台上“做什么”改进(但它并不提供“如仍做”的具体措施。
基础:
软件过程成熟度框架的基础是等级内部结构。
(2)各等级的基本特征初始级主要特征:
组织:
组织通常没有提供开发和维护软件的稳定的环境。
项目:
当发生危机时,项目通常放弃计划的过程,回复到编码和测试。
过程能力:
不可预测。
(unpredictable)由于:
软件开发无规范;软件过程不确定、无计划、无秩序;过程执行不“透明”;需求和进度失控。
结果:
项目的成败完全取决于个人的能力和努力;软件性能随个人具有的技能、知识和动机的不同而变化,并只能通过个人的能力进行预测。
可重复级主要特征:
组织:
将软件项目的有效管理过程制度化,这使得组织能够重复以前项目中的成功实践。
项目:
配备了基本的软件管理控制。
过程能力:
可重复的:
即对当前项目的需求分析后制定的,能重复以前的成功实践,尽管在具体过程中可能有所不同。
这是该级的个显著特征,基本可控的:
即对软件项目的管理过程是制度化的。
在项目的规划和服务跟踪过程中规定并设置了监测点;对软件需求和为实现需求所开发的软件产品建立了基线;为管理、跟踪软件项目的成本、进度和功能提供了规范;提供了当不满足约定时的识别方法和纠偏措施。
软件项目过程基本上是可视的过程是有效的:
即对项目建立了实用的、已文档化的、已实施的、己培训的、已测量的和能改进的过程。
项目的过程基本是可特征化的,项目是稳定的:
即对新项目的策划和管理,有明确的管理方针和确定的标准(包括对分承制方),可使项目的进展稳定。
新项目的策划和管理是基于成功项目经验的过程是有纪律的:
即对所建立和实施的方针、规程,对软件项目过程而言,已进化为组织的行为。
从而使软件开发组织能够保证准确地执行给定的软件过程。
总之,2级的过程是可视的,即可以获取项目运行状态。
具备以上过程能力特征的途径:
应实现关键过程域:
软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪和监督、软件项目规划、需求管理。
其中:
关键过程域:
过程域:
互相关联的若干个软件实践活动和有关基础设施的集合,即软件活动,基础设施。
关键过程域:
对某一成熟度等级将起到至关重要的过程域即它们的实施将对达到该成熟度等级的目标起保证作用,这些过程域被称为关键过程域。
每一软件过程成熟度等级均包含一组特定的关键过程域。
已定义级实现了可重复级(2级)的关键过程域:
软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪和监督、软件项目规划以及需求管理实现了关键过程域:
组织过程焦点、组织过程定义、培训大纲、集成软件管理、软件产品工程、组间协调以及同行评审主要特征:
组织:
在组织范围内开发和维护软件的标准过程被文档化,其中包括软件工程过程和管理过程,它们集成为一个一致的整体。
项目:
对组织的标准软件过程进行裁剪,来开发它们自己项目的软件过程。
过程能力:
是标准的和一致的。
(standardandconsistent)建立了“组织的标准软件过程”:
即关注的焦点转向组织的体系和管理;全组织建立了软件开发和维护的标准过程;软件工程过程和软件管理过程,被综合为个有机的整体,并且已经文档化。
建立了负责组织的软件过程活动的机构:
即在软件组织中存在负责软件过程活动的机构,并具体实施全组织的过程制定、维护和改进。
其中包括全组织的人员培训,使之具备必须的技能和知识,能高效地履行其职责。
项目定义的软件过程:
即项目能够依据其环境和需求等,通过剪裁组织的标准过程,使用组织的过程财富,自定义项目的软件过程。
其中,允许有一定的自由度,但任务间的不匹配情况,应在过程规划阶段得到标识,并进行组间协调和控制。
组织可视项目的进展:
即由于项目自定义的软件过程将开发活动和管理活功综合为一个协调的、合理定义的软件过程,并明确规定了每一活动的输入、输出、标准、规程和验证判据。
因此:
管理者或软件项目负责人能够洞察所有项目的技术进展、费用和进度,组织的软件能力均衡、致:
即由于:
整个组织范围内的软件开发和维护过程已经标准化,软件工程技术活动和软件管理活动都实现文档化的规范管理,组织和项目的软件过程都是稳定的、和可重复的。
这种过程能力是建立在整个组织范围内对已定义过程中的活动、作用和职责的共同理解基础之上。
因此:
在整个组织范围内软件能力是均衡、一致的综上,可将3级的过程能力特征表述为:
定量管理级实现了关键过程域:
定量过程管理和软件质量管理。
主要特征:
项目:
项目减小过程性能的变化性,使其进入可接收的量化边界,从而达到对产品和过程的控制。
组织:
为软件产品和过程都设定了量化的质量目标。
过程能力:
可预言的。
(predictable)设置了定量的质量目标:
即组织对软件产品和过程设置了定量的质量目标;软件过程具有明确定义和一致的测量方法与手段;可以定量地评价项目的软件过程和产品质量,项目产品质量和过程是受控和稳定的:
即可以将项目的过程性能变化限制在一个定量的、可接受的范围之内。
产品质量和过程是受控和稳定的开发新领域软件的风险是可定量估计的:
即由于组织的软件过程能力是已知的,从而可以利用全组织的软件过程数据库,分析并定量地估计出开发新领域软件的风险。
组织的软件过程能力是可定量预测的:
即过程是经测量的并能在可预测的范围内运行,一旦发现过程和产品质量偏离所限制的范围时,能够立即采取措施予以纠正。
综上,该级的过程能力特征可表述为:
.?
.?
.?
.?
.?
.?
持续优化级实现了关键过程域:
缺陷预防、技术变化管理、过程变化管理主要特征:
组织:
关注于持续的过程改进。
项目:
软件过程被评价,以防止过失重复发生,从中获得的教训散布给其它项目。
过程能力:
持续的改善。
(continuouslyimproving)
(1)过程不断改进,即组织注重不断地进行过程改进。
组织有办法识别出过程的弱点,并及时地予以克服;能够利用关于软件过程有效性的数据,识别最佳软件工程实践的技术创新,并推广到整个组织。
(2)缺陷能有效预防:
即软件项目组能分析并确定缺陷的发生原因,认真评价软件过程,以防止同类缺陷再现,并且能将经验告知其他项目组。
(3)组织的过程能力不断提高:
即组织既能在现有过程的基础上以渐进的方式,又能以技术创新等手段,不断努力地改善过程性能。
综上,该级的过程能力特征可表述为:
.?
.?
.?
.?
关于五个级别的3点说明从第1级提升到第2级可能需要几年的时间,在其它级别间提升通常依次需要2年的时间。
第1级组织的成功依赖于组织中人员的能力。
对于所有成熟度级别的组织来说,选择、雇用、培养和保持有能力的人员都是重要的问题,但这超出了CMM的范围。
每个级别为以后的级别有效地和有效率地实现过程提供基础。
跳过级别是达不到预期的目标的。
例如1:
第1级的组织,如果在建立可重复的过程(第2级)之前,试图实现定义的过程(第3级),通常是不会成功,因为项目管理者被进度和开销压力所淹没。
例如2:
组织在没有定义过程的基础时,如果试图实现管理的过程(第4级),通常是不会成功的。
因为没有定义过程,就没有解释度量的共同基础。
例如3:
组织在没有管理过程(第4级)的基础时,如果试图实现优化过程(第5级),通常是会失败的。
因为对过程改变的影响缺乏理解。
注意:
和两点,说明了成熟度等级的演化特性。
汇总:
各等级的关键过程域(共18个),初始级
(1),软件配置管理软件质量保证软件子合同管理软件项目跟踪和监督软件项目规划需求管理,可重复级
(2),对等复审组间协作软件产品工程集成的软件管理培训计划组织过程定义组织过程焦点,定义级(3),软件质量管理量化的过程管理,管理级(4),过程变化管理技术变化管理缺陷预防,优化级(5),4)成熟度等级的内部结构CMM的每个等级是通过三个层次加以定义的:
关键过程域公共特征关键实践,成熟度等级,关键过程区域(KPA),共同特征,关键实践,过程能力,目标,实现或制度化,基础设施或活动,包含,指示,组织,达到,包含,解决,描述,成熟度等级,过程能力,指示,其中:
成熟度等级(MaturityLevel),5个等级,良构定义的过程能力演化平台,作为以后过程改善活动的基础(foundation)。
遵循一个过程所期望的结果程度(Range)。
Repeatablelevel,indicates,例如:
可重复级(Repeatablelevel),对项目的成本、进度和要完成的功能,建立了基本的项目管理。
Time/Cost/Quality,Probability,关键过程域(KeyProcessArea)关键过程域是定义成熟度等级的主要构造块(majorbuildingblocks)。
每一个关键过程域是一组相关的活动,它们的共同执行来达到一组目标。
关键过程域标识了为达到一个成熟度级别而必须强调的问题。
MaturityLevel,(18KPAsintheCMM.),KeyProcessAreas,ProcessCapability,Goals,indicate,contain,achieve,建立组织过程能力中的主要构造块。
RepeatableLevel,ProjectPlanning,indicate,contain,项目规划涉及工作量估算,建立必要的承诺(commitments),并定义工作执行计划。
例如:
2级中的关键过程域:
项目规划,Probability,Time/Cost/Quality,MaturityLevel,KeyProcessAreas,ProcessCapability,Goals,indicate,contain,achieve,目标:
表明一个关键过程域的范围、边界和意图。
关键过程域的目标(Goals),过程目标(objectives):
当达到这些目标时,就增强了过程能力。
MaturityLevel,KeyProcessAreas,indicate,contain,achieve,例如:
Goal1:
已建立了估算(结果)的文档,以便在规划该项目和对项目进行跟踪时使用。
Goal2:
Goal3:
Probability,Time/Cost/Quality,MaturityLevel,KeyProcessAreas,ProcessCapability,Goals,indicate,contain,achieve,公共特征(CommonFeatures)是过程的一些属性,它们确保过程被定义、被理解,并建立了有关文档。
指示:
关键过程域是否是有效的、可重复的、持久的,实施/制度,CommonFeatures,Organizedby,address,确保过程被定义、已建文档和理解的属性(Attributes),公共特征:
用于组织在每一个关键过程域中的关键实践。
包括:
制度实施CommitmenttoPerformActivitiesPerformedAbilitytoPerformMeasurementandAnalysisVerifyingImplementation,RepeatableLevel,ProjectPlanning,indicate,contains,“依据明文规定的规程,估算工作产品的规模(或改变工作产品的规模)。
例如:
Probability,Time/Cost/Quality,ActivitiesPerformed,Organizedby,Activity9,contains,已建立了软件估算(结果)的文档,以便在规划该项目和对项目进行跟踪时使用。
Goal1,achieves,实施,addresses,有关实施(Implementation)的公共特征执行的活动(ActivitiesPerformed)描述了为实现一个关键过程域所需要的角色和规程(procedures)。
通常包括:
-如何建立计划和规程;-如何实施该任务;-如何跟踪之;-必要时所采取的纠正措施。
有关制度(Institutionalization)的公共特征对执行的承诺(Commitmenttoperform)描述组织必须采取的动作(actions),以便保证过程的建立并持久(endure).通常包括:
-政策(policies)-高管的地位和任务(seniormanagementsponsorship)-责任的指定(responsibilityassignment),执行能力(Abilitytoperform)描述该项目或组织中必须有的前置条件,以便很好地实现该过程。
通常包括:
-资源(resources)-组织结构(organizationstructure)-委托、授权(delegation)-培训(training)-过程定位(orientation),RepeatableLevel,ProjectPlanning,indicate,contains,“软件经理在软件估算和规划规程方面已得到培训。
例如:
Probability,Time/Cost/Quality,AbilitytoPerform,Organizedby,Ability4,contains,Softwareestimatesaredocumentedforuseinplanningandtrackingtheproject,Goal1,achieves,institutionalization,addresses,测量和分析(MeasurementandAnalysis)描述了测量过程并分析该测量的要求,从而提供了对关键过程域实现情况的观察。
通常包括:
一些测量实例,可以使用这些实例来确定所执行活动(ActivitiesPerformed)的有效性。
实施验证(VerifyingImplementation)描述了一些步骤,这些步骤确保活动的执行符合已经建立的那个过程。
通常包括:
由-高管(seniormanagement)、-项目管理人员-质量保证所进行的复审和审计。
以上提及的5个公共特征,有助于确保过程的实施和制度建设,有助于确保获得坚实的过程质量。
为什么要将建立过程的制度:
是我们做事情的方式(way)建立一个制度,包括围绕该组织,有效的、可用的、一致的来应用过程制度的建立,涉及:
培训、标准和规程、政策和验证。
制度化的过程确保了以后的人们可以按此来工作。
制度的重要性:
开发组织可以经受人员调离的风险;组织文化必须传播这些过程,即制度化的过程是组织文化的一个组成部分,管理上必须培育这一文化;通过角色和鼓励,文化予以传播,。
关键实践:
为一个关键过程域,给出基础性的政策、规程和活动。
关于关键实践的3点说明与关键过程域之间的关系:
通过实施一个关键过程域中所包含的关键实践(“小”的进化),才可以达到该关键过程域中的目标。
表述问题:
在CMM中,“关键实践”的表述,一般只给出“做什么”。
CMM共有316个关键实践,被组织为5个公共特征,支持相关关键过程域的一个或多个目标。
RepeatableLevel,ProjectPlanning,indicate,contains,“依据明文规定的规程,估算工作产品的规模(或改变工作产品的规模)。
.”,例如:
Probability,Time/Cost/Quality,Activity9,contains,“已建立了软件估算(结果)的文档,以便在规划该项目和对项目进行跟踪时使用。
”,Goal1,achieves,关键过程域、目标以及关键实践之间关系的例子:
关键过程域“软件项目规划”目的:
为软件工程的执行和项目管理,建立合理的(reasonable)计划涉及:
-估算要执行的工作;-建立必要的承诺;-定义执行工作的计划。
项目计划的组成:
可以采用不同的方法予以开发。
其中包含:
-开发计划-质量保证计划-配置管理计划-风险管理计划
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集成化 能力 成熟度 模型