软件能力成熟度模型ppt课件.ppt
软件能力成熟度模型CMM(Capacity Maturity Model),计算机学院软件工程系,张庆生,摘要,绪论CMM体系结构软件过程评估的国际标准可重复级(第2级)已定义级(第3级)已管理级(第4级)优化级(第5级)提问单,软件能力成熟度的结构,软件能力成熟度模型的分层结构,4 CMM模型的可重复级,CMM2级的过程基本特征、关键过程域、需求管理CMM2级的软件项目计划、项目跟踪和监控CMM2级的软件转包合同管理、软件质量保证CMM2级的软件配置管理,4 CMM模型的可重复级,CMM2级的过程基本特征CMM 2级是在同类项目成功经验上,建立必要过程准则来确保同类项目再一次的成功。CMM 2级的基本特征如下可重复、有纪律、项目稳定和过程有效在可重复级(等级2)上,建立了项目软件管理的方针和规程,有助于将类似项目的经验用于对新项目进行规划和管理,使项目软件的管理过程有效且制度化。这样,尽管项目软件所实施的具体过程可能不同,但可运用以前项目开发的成功实践。,4 CMM模型的可重复级,CMM2级的过程基本特征在可重复级(等级2)上,各软件项目所建立和实施的方针、规程和软件过程,已进化为整个软件开发组织的行为。这使得组织的各个项目都能准确、一致地执行由组织规定的软件过程管理要求,组织的这种过程能力称为有纪律的。,4 CMM模型的可重复级,CMM2级的过程基本特征在可重复级(等级2)上,对新项目的策划和管理是根据以往类似的成功项目的经验作出的;对软件项目的管理方针明确、标准确定;如果有分承制方的话,也与他们建立了一种强有力的用户/供应商关系,且能将本组织成功的经验应用于分承制方。这些将使项目的进展稳定。,4 CMM模型的可重复级,CMM2级的过程基本特征在可重复级(等级2)上,有效过程可归纳为“实用的”、“已文档化的”、“已实施的”、“已培训的”、“已度量的”和“能改进的”。当有转包商时,通过转包合同建立有效的供求关系。,4 CMM模型的可重复级,在可重复级(等级2)上,已建立了项目软件管理的方针和规程。有助于将类似项目的经验用于对新项目进行规划和管理,使对项目软件的管理过程有效且制度化。这样,为管理、跟踪其软件项目的成本、进度和功能提供了规范;在项目的策划和跟踪过程中规定并设置了监控点,尽管项目软件所实施的具体过程可能不同,但可运用以前项目开发的成功实践,从而保证了软件项目的基本可控性。,4 CMM模型的可重复级,在CMM,可重复级要达到以下目标:软件质量保证活动独立于软件开发的项目管理,及时发现偏差并跟踪到底。按照严格的步骤估计软件模型、成本、进度和进行软件开发管理评审。有一种机制控制需求和代码的变更,以及更高层管理机构对软件开发项目状态进行正规的评审。,4 CMM模型的可重复级,CMM2级的关键过程域CMM 2级的关键过程域的侧重点就是为软件项目建立项目管理控制它包括以下六个关键过程域:需求管理(RM:Requirements Management)软件项目计划(SPP:Software Project Planning),也称为软件开发计划(SDP:Software Development Plan)软件项目跟踪和监督(SPTO:Software Project Tracking and Oversight),4 CMM模型的可重复级,CMM2级的关键过程域CMM 2级的关键过程域的侧重点就是为软件项目建立项目管理控制它包括以下六个关键过程域:软件转包合同管理(SSM:Software Subcontract Management)软件质量保证(SQA:SoftwareQuality Assurance)软件配置管理(SCM:Software Configuration Management),4 CMM模型的可重复级,CMM2级的关键过程域上述这些关键过程域标识了一系列相关的实践活动,当这些活动全部完成时,软件过程能力就可达到CMM 2级所规定的目标。这些可操作的、目标明确的实践活动,指明了组织为改进其软件过程所应关注的方面以及要解决的问题。CMM级上的关键过程域工作流程图如下述表,4 CMM模型的可重复级,CMM2级的关键过程域CMM 2级需求管理和软件项目计划的关键过程域工作流程图,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的关键过程域CMM 2级软件项目跟踪和监督和转件转包合同管理的关键过程域工作流程图,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的关键过程域CMM 2级软件质量保证和软件配置管理的关键过程域工作流程图,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的关键过程域,4 CMM模型的可重复级,CMM2级的需求管理需求管理简称RM(Requirements Management),它是软件开发过程中最难把握的一个环节,又是项目成败的关键因素。在整个软件生命周期中,需求阶段是基础。做好需求管理,既可以减少软件开发中的错误,保证项目能满足用户需求,还可以减少修改错误的费用,从而大大缩短软件开发时间,提高软件开发效率,降低软件开发成本。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的目标通常,系统工程组需要将软件项目与客户之间达成的共识、系统需求分配给软件、硬件和其他系统组成部分。其中分配给软件的系统需求称为分配需求,它是系统需求的子集,是要在系统中实现的软件需求部分。需求管理要达到以下目标:1)软件需求规格说明已文档化,并经评审后存档。2)文档化的软件需求规格说明受管理和控制。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的目标需求管理要达到以下目标:“受管理和控制”就是在给定时间使用的工作产品的版本均是可查知并受控的(版本控制),而且以受控的方式进行更动。如果需有比此更高程度的控制,则产品可置于软件配置管理的严格控制之下,如在CMM 2级的软件配置管理关键过程域中所述。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的目标需求管理要达到以下目标:3)供软件工程和管理使用的分配基线已建立,使软件产品满足分配需求的接收标准;分配需求是制定软件开发计划的根据,是整个软件生命周期中估算、计划、执行和跟踪软件项目活动的基础。4)软件开发计划、软件工作产品和软件过程活动与软件需求保持一致。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的目标需求管理就是对分配需求进行管理。在客户和实现客户需求的软件项目之间达成共识;控制系统软件需求,为软件工程和管理建立基准线;保持软件计划、产品和活动与系统软件的一致性。归纳起来,需求管理就是要确定便于所有人理解的需求,稳定软件需求并说明需求的更改对项目的成本和日程的影响。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的执行约定和执行能力需求管理实施的基础是管理的执行约定和执行能力。执行约定软件项目开发过程应该遵循一个书面的约定不定期管理软件需求。一个典型的执行约定包括以下几方面的内容:1)软件需求规格说明的文档化所应遵循的书面规程。,4 CMM模型的可重复级,CMM2级的需求管理执行约定2)为了使分配需求能切实可行,拟定参与需求评审的人员,其中包括:项目总体人员;项目软件负责人;项目软件需求分析人员;项目软件设计人员;软件项目版本管理员;其他受影响的组,例如:系统测试组、软件工程组、软件设计组、系统工程组、软件配置管理组和文档支持组等。,4 CMM模型的可重复级,CMM2级的需求管理执行约定3)当需求更动时,应及时调整软件开发计划、软件工作产品和软件过程活动,以便和软件需求的更动保持一致。4)明确的质量要求,包括以下内容:正确性:所有需求必须是正确的、合理的、满足任务书要求的;必要性:所有需求必须是为完成指定任务所必需的;可行性:在指定的环境和条件下,所有需求必须是可行的;,4 CMM模型的可重复级,CMM2级的需求管理执行约定完备性:为完成指定任务,这些需求是完备的、无遗漏的;一致性:所有需求相互之间没有矛盾,是一致的;非退化:任一需求的引入都不会导致软件性能的退化;无歧义:任一需求的陈述都是确定的,不会导致多义性的;可验证:任一需求都是可测试、可验证的;可追踪性:任一需求都可追踪到项目的任务书或规格说明的要求,这些要求都源自用户需求。,4 CMM模型的可重复级,CMM2级的需求管理执行能力需求是软件开发的基本要求。针对需求的特点,需求管理应提供一套严格的责任分配制度。为了软件开发的顺利进行,所有的开发人员要了解项目应用领域的有关情况,所以要组织相关的培训。需求管理的具体组织能力要确保以下的必备条件:,4 CMM模型的可重复级,CMM2级的需求管理执行能力1)明确项目软件负责人对软件需求管理的职责,其职责包括:在项目的整个生存周期内,自始至终地管理软件需求;当用户需求更动时,及时实现对软件需求的更动。2)为有效地管理分配需求,应该提供足够的资源和资金。这些资金包括人力的、物质的、技术的。,4 CMM模型的可重复级,CMM2级的需求管理执行能力在人力上,需要指定在应用领域里和软件工程方面有经验和专业知识的人员管理分配需求。在技术上,应该提供支持管理需求活动的工具。在CMM中,这些工具主要包括电子表格工具、配置管理工具、跟踪工具、文件管理工具等。,4 CMM模型的可重复级,CMM2级的需求管理执行能力3)要管理具体的项目需求,应该对执行需求管理的软件工程组成员和其他相关人员进行管理软件需求方面的培训。培训内容包括:项目所使用的标准、规范和规程;有关应用领域的知识。,4 CMM模型的可重复级,CMM2级的需求管理需求管理的实施过程需求管理过程的数据流程(1)用户需求通过访谈,从用户处获取原始需求,形成用户需求文档。用户需求文档与用户共同确认需求,向用户展示用户需求文档,获得客户认可。(2)技术需求技术需求陈述的是满足用户需求的技术功能和质量属性,表明必须提供什么而不是如何提供,技术需求包括:,4 CMM模型的可重复级,CMM2级的需求管理最终用户的需求、操作者的需求、支持者的需求,或整体功能者的需求性能需求设计约束程序语言界面需求,4 CMM模型的可重复级,CMM2级的需求管理(3)项目需求项目需求用于项目计划和跟踪能力,并通过项目计划和项目跟踪进行管理。项目是受管理和控制的。在需求管理过程中,可用一个数据库来标志需求在各个阶段的状态,在CMM中称为度量,目的是为了明确分配需求管理活动的状态。需求管理过程的数据流程如下图所示,4 CMM模型的可重复级,CMM2级的需求管理,4 CMM模型的可重复级,CMM2级的需求管理需求管理的实施过程需求管理涉及的主要内容需求管理涉及的主要内容包括:需求确定的管理、需求实现的管理和需求变更的管理。(1)需求确定阶段的管理需求确定阶段可以进一步细分为定义阶段和分析阶段。在定义阶段,需求管理的实施过程所做的工作如下:,4 CMM模型的可重复级,4 CMM模型的可重复级收集需求,并提交需求说明书的草案。与需求者一起定义、验证所收集的需求。跟踪需求的需求者或需求源,及时向他们发送批准的需求或需求的变更。在这一阶段,需求说明书草案中的每一个需求的状态是“定义的”。在分析阶段,需求管理的实施过程所做的工作如下:,4 CMM模型的可重复级,分析需求,以保证所列需求是清晰的、明确的、有意义的、可测量的,并且可用于开发和测试。建立用户和技术需求之间的联系,保证技术需求能充分地覆盖和分析用户需求。划分需求,找出其中的不足和不完善的地方。区分需求的优先级,更新需求说明书。由需求者来审核、批准需求说明书,从而得到批准的需求说明书,这是软件开发和项目管理行为的基础。,4 CMM模型的可重复级,CMM2级的需求管理(2)需求实现的管理需求实现涉及软件开发过程的建议阶段、设计阶段、编码阶段和测试(核实)阶段。在建议阶段,需求管理要做的工作是根据适当的过程提出建议和项目计划,并进行审核、批准,提交建议和项目计划。,4 CMM模型的可重复级,CMM2级的需求管理在设计阶段,需求管理要做的工作是在一个或多个设计说明书中提出技术需求。这时必须根据需求来进行设计、检查设计,以判断是否对所有的需求都进行了设计。项目经理要保证在一个或多个设计中包括所有提交的需求。,4 CMM模型的可重复级,CMM2级的需求管理在编码阶段,需求管理要做的工作是实施设计。实施设计的结果就是软件和文档。必须对这些产品进行检查,如果设计没有被充分地实施,就不能满足需求,这就意味着要重复工作。,4 CMM模型的可重复级,CMM2级的需求管理在测试(核实)阶段,需求管理要做的工作是通过测试软件来检查需求的满足情况。例如:要跟踪测试结果,判断哪些需求被满足了,哪些需求未被满足。CMM在核实阶段,提出了以下两点要求:,4 CMM模型的可重复级,CMM2级的需求管理1)项目实施过程中,项目组定期与上级管理部门一起对分配需求的管理活动进行审查;在项目组内,项目经理也要定期或需要审查时,对分配需求的管理活动进行审查。2)软件质量保证组审查管理活动的工作产品并报告结果。审查检验的内容如下:,4 CMM模型的可重复级,CMM2级的需求管理审核软件工程组提交的分配需求,解决有关问题。审查软件计划、工作产品和项目活动是否随分配需求的变更而做出相应的变化。,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理需求变更管理主要涉及分配需求的更改活动,分配需求的更改次数等。通常,需求确定后并不是一成不变的,需求变更可以从需求说明书或建议开始生效,变更必须在相关的计划、交付和行为中反映出来。当评审确认后的软件需求规格说明因故变更时,必须组织评审并纳入需求管理和控制,其内容包括:,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理1)评估变更对现有约定(技术、进度、资源、经费)的影响,并协商处理。若此更动涉及组织外部,则应有组织的高层管理者参与评审;若此更动仅涉及组织内部,则与组织内部受影响的组协商处理。,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理2)应对因软件需求的更动所引起的相关文档、软件工程产品和活动的更动做以下工作:标识;审查必要性、可行性和合理性;影响域(技术、进度、资源、经费)评估;规划;文档化。,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理实际项目需求管理中应用的文档包括:项目需求管理流程定义、项目需求复审流程定义、项目需求及状态跟踪流程定义、需求获取表格、需求状态报告、需求复审报告、需求变更报告和需求跟踪报告。,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理3)确认后的软件需求规格说明的任何更动,必须按受控方式完成。任何更动均应评审确认;更动软件需求规格说明,并准确反映评审确认的更动;,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理更动相关文档,以确保“文实相符,文文一致”;履行标检等有关审批手续后纳入管理和控制;把全部更动传达到受影响的组和人;跟踪直至更动结束。,4 CMM模型的可重复级,CMM2级的需求管理(3)需求变更的管理下表是针对几种常见的需求变更情况,对变更的管理工作提出的一些建议,4 CMM模型的可重复级,CMM2级的需求管理,4 CMM模型的可重复级,CMM2级的需求管理需求管理的评价需求管理的评价包括两部分:验证实施、测量和分析。1.验证实施需求管理的实施过程的好坏,除了和完善的管理过程有很大关系外,还需要有一定的检验机制,以确定需求管理各个阶段的完成情况。,4 CMM模型的可重复级,CMM2级的需求管理1)软件需求管理活动的评审至少应验证以下内容:软件需求是已经评审的,且待定问题在软件工程组软件承制之前,由软件质量保证组审查分配需求并解决问题;当软件需求更动时,软件开发计划、工作产品和活动等均已做相应修改;由软件需求的更动所导致的对组间约定的更动已与受影响的组商妥。,4 CMM模型的可重复级,CMM2级的需求管理2)项目经理定期的和在有事件发生时,对分配需求的管理活动进行审查。3)上级管理部门定期审查的主要目的是为了在适当的抽象层及时地了解和洞察软件过程。审查间隔应满足组织的需要,要有异常报告机制,每次审查之间的间隔可以长一些,但要满足组织的需要。,4 CMM模型的可重复级,CMM2级的需求管理2.测量和分析对需求管理进行测量和分析,以确定分配需求管理活动的状态。这些测量内容包括:每个软件需求的状态;软件需求的变更活动情况;软件需求的变更次数,包括变更建议、待办、已批准并已归入系统基线的变更总次数。,思考题,1.简述可重复级过程的基本特征。2.简述可重复级(等级2)软件过程具有的基本特征。3.简述可重复级的六个关键过程域。4.简述需求管理的目标。5.需求管理过程可分哪三类?6.简述需求管理涉及的主要内容。7.需求管理的评价包括哪两部分?,