软件工程实践(11)CMM&CMMI.ppt
《软件工程实践(11)CMM&CMMI.ppt》由会员分享,可在线阅读,更多相关《软件工程实践(11)CMM&CMMI.ppt(220页珍藏版)》请在课桌文档上搜索。
1、软件工程实践,第十一讲,软件能力成熟度模型(SW-CMM)集成能力成熟度模型(CMMI)介绍,目的,了解SW-CMM和CMMI的提出背景和思想 掌握SW-CMM 1.1提出的5个等级的基本含义掌握SW-CMM 1.1模型的基本结构了解5个等级相关的关键过程区域掌握CMMI1.1的基本结构,内容,SW-CMM的提出SW-CMM的结构SW-CMM的关键过程区域CMMI的提出CMMI的结构CMMI的过程区域,SW-CMM和CMMI的提出,质量的杠杆作用点,每个人都体会到主动积极的优质劳动力的重要性,但是,如果不理解过程,或者过程不是在“最佳实践”下运行,即使我们的精英也无法使工作达到最佳的状态,人员
2、,过程,技术,过程是产品成本、进度和质量的主要决定因素,项目成功的支柱,过程管理,技术资产,人力资源,客户供应商关系,什么是过程,如何定义过程?,过程的一般定义,过程是指为了达到给定目的而执行的实践的集合;它可能包括工具、方法、资料和/或人过程是指为了达到给定目的而执行的一系列活动的有序集经常将过程描述成是三元组“过程人员技术”中的一个元素,也可以认为它是联合其它元素的“粘合剂”,人员,技术,过程,过程是三个杠杆作用点之一,过程改进的基本前提,“产品质量主要取决于用于开发和维护该产品的过程的质量”。基于Shewhart,Juran,Deming和Humphrey倡导的TQM原理,早期的过程改进
3、,过程管理理论是Deming,Crosby,Juran以及其他一些人的概念的综合在过去的30年里,这些理论已经用于解决许多组织的共同问题虽然已经有了解决方案,但是现有的实践水平与技术发展水平之间仍有一定的差距其中的许多概念已经用于建立过程改进模型,软件过程外行的观点,该过程的潜在问题,开发队伍角色未定义,不协调团队工作和过程绩效由于执行的间隙和冲突而削弱对过程和产品质量的洞察有限对产品配置的控制有限 发行比原始进度推迟 成本比估计的大得多 软件不是客户所需要得,软件过程内行的初步观点,描述,编码,观察能否工作,因素特征管理相关没有觉察,太忙项目成员差的培训,缺乏经验,没有组织开发过程未定义,任
4、意管理类型危机管理产品质量没有度量产品配置没有控制项目成功依赖于英雄,不成熟组织的共同特征,不成熟组织产生的共同结果,因素 结果需求 缺乏控制,需求“不断懦动”产品性能 不可预估,不能满足用户需要产品配置 没有管理 产品质量 不可知,充满缺陷成本 缺乏追踪,经常超越进度 经常延迟,早期的过程改进,过程管理理论是Deming,Crosby,Juran以及其他一些人的概念的综合在过去的30年里,这些理论已经用于解决许多组织的共同问题虽然已经有了解决方案,但是现有的实践水平与技术发展水平之间仍有一定的差距其中的许多概念已经用于建立过程改进模型,什么是过程模型?,模型是描述有效过程特征的元素的结构化集
5、合这里所涵盖的过程是指那些通过经验证明为有效的过程,如何使用模型?,模型是用来:帮助建立过程改进的目标和优先次序,协助改进过程,并为确保建立一个稳定的、有能力的以及成熟的过程提供指南作为组织过程改进的指南,模型为什么重要?,模型提供了过程改进的出发点社团过去经验的结晶共同的语言和共享的构想活动优先次序的框架,模型,“所有的模型都是错误的,但有些是有用的。”“All models are wrong,but some are useful.”George Box提供对真实世界认识的简单近似,使用什么模型?,从历史的角度讲,是以学科建立模型,如:软件工程系统工程软件获取系统安全,等等,CMM的产生
6、背景,美国国防部在向承包商发包军用软件项目时,希望了解承包商的开发能力,以保证项目的成功和产品质量美国国防部委托美国卡内基-梅隆大学的软件工程研究所(CMU-SEI)进行研究SEI基于项目成功很大程度依赖于其开发过程的经验,提出包含5级的软件能力成熟度模型(SW-CMM)美国国防部要求其承包商的能力成熟度至少为3级,CMM的产生历程,1987年美国软件工程研究所(SEI)以W.S.Humphrey为首的研究组发表的“承包商软件工程能力的评估方法”1991年发展为SEI CMM1.0(能力成熟度模型1.0版)1993年该模型发展为SEI CMM 1.1(现行有效),CMM的基础,阶段化结构:基于
7、过去60年来的产品质量原则。Walter Shewart在三十年代发表了统计质量控制原理。W.Edwards Deming 和Joseph Juran 又进一步发展和论证了该原理。成熟度框架:Philip Crosby在“Quality is Free”中描述了质量管理成熟度框架的五个进化阶段。IBM等的工程实践。,基于CMM过程改进的收益(不完全),什么是CMM?,能力成熟度模型 一个在特定学科中的成熟实践的参考模型,用于评估一个组履行该学科任务的能力CMM有不同模型,从以下不同的方面来区分:学科(软件、系统、获取等)结构(阶段和连续式)成熟度的程度(过程改进的路线)能力的程度(制度化)软件
8、工程研究所(SEI)的“能力成熟度模型”和CMM是一种成熟度模型。能力成熟度模型、CMM、CMM Integration和CMMI是卡内基梅隆大学的服务标志和注册商标,IDEALSM 模型,SW-CMM的结构,软件过程术语,人们用于开发和维护软件及其相关产品(例如,项目计划、设计文档、代码、测试用例、用户手册等等)的一系列活动、包括软件工程活动和软件管理活动。,软件过程能力术语,描述(开发组织或项目组)通过遵循其软件过程能够实现预期结果的程度。一个软件开发组织或项目组的软件过程能力提供一种预测该组织承担下一个软件项目时最可能的预期结果的方法。软件过程能力既可对整个软件开发组织而言,也可对一个软
9、件项目组而言。软件过程性能:表示(开发组织或项目组)遵循其软件过程所得到的实际结果。,软件过程成熟度术语,一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。成熟度可指明一个软件开发组织软件过程能力的增长潜力。随着软件组织的软件过程成熟度的提高,开发组织通过其方针、标准和组织机构等将其软件过程规范化和具体化。从而使得开发组织明确定义的有关管理和工程的方法、实践和规程等在现有人员离去后仍能继续下去。,软件过程能力成熟度等级术语,软件开发组织在走向成熟的途中几个具有明确定义的表征软件过程能力成熟度的平台。每一个成熟度等级为过程继续改进达到下一个等级提供一个基础。每一等级包含一组过程目标,当
10、其中一个目标被达到时,就表明软件过程的一个(或几个)重要成分得到了实现,导致组织的软件过程能力增长。,软件能力成熟度模型术语,对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步前进。这个模型使软件组织能够较容易地确定其当前过程的成熟度并识别出其软件过程执行中的薄弱环节,确定对软件质量和过程改进最为关键的几个问题,从而形成对其过程的改进策略;软件组织只要关注并认真实施一组有限的关键实践活动,就能稳步地改善其全组织的软件过程。,CMM软件过程能力成熟度的5个等级,软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功
11、依赖于个人的努力。已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经到位,使类似得应用项目,能重复以前的成功。管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。全部项目均采用供开发和维护软件用的组织标准软件过程的一个经批准的剪裁版本。已采集详细的有关软件过程和产品质量的度量数据。无论软件过程还是产品均得到了定量了解和控制。利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续的过程改进成为可能。,CMM软件过程能力成熟度的5个等级(图示),2.可重复,1.初始,3.已定义,4.已管理,严格执行的过程,标准、一致的过程,可预估的过程,
12、连续改进过程,不可预估和缺乏控制,可以重复以前熟练的任务,过程特征化,容易理解,过程被度量和控制,集中于过程改进,5.优化,项目管理,集成工程过程,产品和过程质量,管理更改,结果,关键过程区域,级别,特征,优化 Continuous process Process change management(5)capability improvement Technology change management Defect prevention已管理(4)已定义 Software process defined(3)and institutionalized to provide product
13、quality control可重复(2)初始l(1),Product quality planning;Software quality managementtracking of measured Quantitative process managementsoftware process,Management oversightand tracking of project;stable planning andproduct baselines,关键过程区域,定制(成功依赖于英雄),“人员,风险,生产率&质量,Software configuration management Sof
14、tware quality assurance Software subcontract management Software project tracking&oversightSoftware project planningRequirements management,Peer reviews Intergroup coordinationSoftware product engineering Integrated software managementTraining programOrganization process definitionOrganization proce
15、ss focus,SEI 能力成熟度模型,管理 机构 工程5 优化级 技术更新管理 过程更新管理 缺陷预防4 已管理级 定量软件管理 软件质量管理3 已定义级 集成软件管理 组织过程焦点 软件产品工程 组间合作 组织过程定义 同行评审 培训大纲2 可重复级 需求管理 软件项目策划 软件项目 追踪与监督 软件子合同管理 软件质量保证 软件配置管理1 初始级 定制的过程,管理可视性 过程能力,Out,In,1,2,3,4,5,概率,Time/$/.,Target,N,N+a,N-x,N-y,N-z,级别,初始级图示,初始级行为特征(1),在初始级上组织一般不提供开发和维护软件的稳定环境。当组织中缺
16、乏健全的管理实践时,不适当的规划和反应驱动体系会降低由良好的软件工程实践所带来的效益。,初始级行为特征(2),在危机时刻,项目一般抛弃预定的规程,回复到仅作编码和测试。成功完全依赖于有一个杰出的经理及一支有经验的、战斗力强的软件队伍。偶尔,有能力的、坚强的软件经理能经受住要他们在软件过程中走捷径的压力,但是当他们离开项目后,他们能使过程稳定的影响也随之消失。甚至一个强的工作过程也不能克服由于缺乏健全的管理实践所造成的不稳定。,初始级行为特征(3),等级1的组织的过程能力是不可预测的,因为随着工作进展软件过程经常被改变或修定(即过程是无秩序的)。进度、预算、功能性和产品质量一般是不可预测的。等级
17、1组织几乎没有明显的稳定的软件过程,只能通过个人的能力而不是组织的能力去预测性能。,可重复级图示,Activity,Results,to produce,Level 2:Think before you act,and think after you act,just to make sure you did it right.,Planning,Evaluation,input to,to improve,可重复级行为特征(1),在可重复级上,已建立管理软件项目的方针和实施这些方针的规程。基于在类似项目上的经验对新项目进行规划和管理。达到2 级的目的是使软件项目的有效管理过程制度化,这使得组
18、织能重复在以前项目上所开发的成功实践,尽管项目所实施的具体过程可能不同。一个有效过程可特征化为实用的、已文档化的、已实施的、已培训的、已测量的和已改进的。,可重复级行为特征(2),等级2组织中的项目已经设置基本的软件管理控制。实际可行的项目约定是基于对以前项目的观察结果和当前项目的需求。项目的软件经理跟踪软件成本、进度和功能性;在满足约定方面的问题,一旦出现就被识别。对软件需求和为实现需求所开发的工作产品建立基线,并控制其完整性。软件项目标准均已确定,并且组织能保证准确地执行这些标准。如果有子承包商的话,软件项目与他们一起努力建立一种强有力的顾客供应商关系。,可重复级行为特征(3),等级2组织
19、的过程能力可概括为有纪律的,因为软件项目的规划和跟踪是稳定的,能重复以前的成功。由于遵循基于以前项目性能所制定的切实可行的计划,项目过程处在项目管理系统的有效控制之下。,已定义级图示,Standards,Activity,Results,to produce,Level 3,Planning,Evaluation,input to,to improve,input to,input to,Use your lessons learned.,已定义级行为特征(1),在已定义级上,全组织的开发和维护软件的标准过程已文档化,包括软件工程过程和软件管理过程,而且这些过程被集成为一有机的整体(组织的标准
20、软件过程)。等级3上所建立(适当时,经更改)的过程,被用来帮助软件经理和技术人员工作得更有效。组织在使其软件过程标准化时,利用有效的软件工程实践。存在一个负责组织的软件过程活动的组,例如软件工程过程组。实施全组织的培训计划以保证职员和经理具有履行其职责所必须的知识和技能。,已定义级行为特征(2),项目通过剪裁组织的标准软件过程去建立他们自己定义的软件过程,它说明项目独有的特征(项目定义软件过程)。一个已定义软件过程包含一组协调的、集成的、妥善定义的软件工程过程和管理过程。妥善定义的过程可特征化为具有准备就绪判据、输入、标准、进行工作的规程、验证机制(例如同行评审)、输出、以及完成判据。因为软件
21、过程已妥善定义,管理者就能洞察所有项目的技术进展。,已定义级行为特征(3),等级3组织的软件过程能力可概括为标准的和一致的,因为无论软件工程活动还是管理活动,过程都是稳定的和可重复的。在所建立的产品基线内,成本、进度和功能性均受控制,对软件质量也进行跟踪。这种过程能力建立在整个组织范围内对已定义过程中的活动、角色和职责的共同理解之上。,已管理级图示,Standards,Activity,Results,to produce,Level 4,Planning,Evaluation,input to,to improve,input to,input to,to forecast,Predict
22、the results you need and expect and then create opportunities to get those results,已管理级行为特征(1),在已管理级上,组织对软件产品和过程都设置定量的质量目标。作为组织测量大纲的一部分,对所有的项目都测量其重要的软件过程活动的生产率和质量。利用一个全组织的软件过程数据库收集和分析从项目定义软件过程中得到的数据。等级4 上的软件过程均已配备有妥善定义的和一致的度量。这些度量为定量地评价项目的软件过程和产品打下基础。,已管理级行为特征(2),项目通过将其过程性能的变化限制在定量的可接受的范围之内,实现对其产品和过
23、程的控制。可以将过程性能方面有意义的变化与随机变化(噪声)区别开来,特别在所建立的产品线内。开发新应用领域的软件所带来的风险是已知的,并得到精心的管理。,已管理级行为特征(3),等级4组织的软件过程能力可概括为可预测的,因为过程是已测量的并在可测的范围内运行。该等级的过程能力使得组织能在定量限制的范围内预测过程和产品质量方面的趋势。当超过限制范围时,采取措施予以纠正。软件产品具有可预测的高质量。,Standards,Activity,Results,to produce,Level 5,Planning,Evaluation,input to,to improve,input to,input
24、 to,to forecast,to improve,Create lessons learned,and use lessons learned to create more lessons learned,and use more lessons learned to create even more lessons learned,and use even more lessons learned to create.etc.,优化级图示,优化级行为特征(1),在优化级,整个组织集中精力进行不断的过程改进。为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程。在对新技术和所建议的
25、组织软件过程的更改进行费效分析时利用有关软件过程有效性的数据。识别出采用最好软件工程实践的技术创新并推广到整个组织。,优化级行为特征(2),等级5组织的软件项目群组分析缺陷以确定其发生的原因。为了防止已知类型的缺陷再次出现,他们认真评价软件过程,同时将经验教训告知其它项目。,优化级行为特征(3),等级5组织的软件过程能力可特征化为不断改进,因为这些组织为扩大其过程能力的范围进行着不懈的努力,因而不断改善其项目的过程性能。既通过在现有过程中增量式前进的办法,也通过采用新技术、新方法的革新办法,使改进不断出现。,CMM结构,关键过程区域术语,互相关联的若干软件实践活动和有关基础设施的一个集合。每个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实践 11 CMM CMMI
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-235708.html