软件工程软件过程.ppt

上传人:李司机 文档编号:4096135 上传时间:2023-04-04 格式:PPT 页数:121 大小:1.02MB
返回 下载 相关 举报
软件工程软件过程.ppt_第1页
第1页 / 共121页
软件工程软件过程.ppt_第2页
第2页 / 共121页
软件工程软件过程.ppt_第3页
第3页 / 共121页
软件工程软件过程.ppt_第4页
第4页 / 共121页
软件工程软件过程.ppt_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《软件工程软件过程.ppt》由会员分享,可在线阅读,更多相关《软件工程软件过程.ppt(121页珍藏版)》请在三一办公上搜索。

1、软件工程,1,软件工程第九章 软件过程,9.1 软件过程的概念9.2 软件过程的建模9.3 软件过程的评估与CMM模型9.4 软件过程改进、评估与CMMI模型,软件工程,2,9.1 软件过程的概念,软件过程是软件生存周期中的一系列相关软件工程活动的集合,活动是任务的集合。任务是将输入变换为输出的操作。活动的执行可以是顺序的,重复的,并行的、嵌套的。每一个软件过程又是由一组工作任务、项目里程碑、软件工程产品和交付物以及质量保证点等组成。,9.1.1 什么是软件过程,软件工程,3,软件工程,4,软件过程的含义个体含义:软件或系统在生存周期中某一类活动的集合整体含义:软件过程的总体工程含义:应用软件

2、工程的原则、方法来构造软件过程模型,并结合软件的具体要求进行例化,以及在用户环境运作,软件工程,5,9.1.2 软件过程的构造,首先建立一个公共过程框架,其中定义了少量可用于所有软件项目的框架活动;再给出各个框架活动的任务集合,使得框架活动能够适合于项目的特点和项目组的需求。最后是保护伞活动,如软件质量保证、软件配置管理以及测量等,它们独立于任何一个框架活动并将贯穿于整个过程。,软件工程,6,软件过程构造,公共过程框架,框架活动,任务集合,工作任务,里程碑、交付物,SQA点,保护伞活动,软件工程,7,9.1.3 软件过程的模型,软件工程过程模型的选择基于项目和应用的特点、采用的方法和工具、要求

3、的控制和需交付的产品。所有的软件开发都可以看成是一个问题循环解决过程,其中包括 4 个阶段:状态捕获:描述事物的当前状态;问题定义:标识需要解决的问题;技术开发:利用某些技术来解决问题;方案综合:导出最终结果(如文档、程序、数据、新的事务功能、新的产品)。,软件工程,8,为使软件过程模型适合于软件项目使用,需要开发过程技术工具,帮助软件开发组织分析它们当前的过程,组织工作任务,控制和监控进度,管理技术质量。,软件工程,9,使用过程技术工具,可以建造一个模型,模型包含前面提到的公共过程框架、任务集合及保护伞活动。该模型一般表示成一个网络图,对其加以分析,就能够确定典型的工作流,考察可能导致减少开

4、发时间、降低开发成本的可选的过程结构。一旦创建了一个可接受的过程,就可以使用其它过程技术工具来分配、监视、甚至控制在软件过程模型中定义的所有软件工程任务。,软件工程,10,9.1.4 软件过程的分类(ISO/IEC 12207软件生命周期过程标准),该标准从多个角度阐述了软件生命周期各个过程中的活动,对规范软件开发过程,协调各类人员之间的关系,都具有指导作用。该标准把所有过程分成三大类:基本过程,支持过程和组织过程。基本过程是生命周期中的原动力,支持过程辅助基本过程的执行,组织过程用于建立、控制和改进生命周期过程。,软件工程,11,软件生存周期过程(ISO 12207:1995/GB/T 85

5、66-2001),软件工程,12,1.基本过程,获取过程 是需方为了获得一个软件产品所进行的一系列活动。该过程从为获取该软件产品的需求定义开始,经过招标准备,合同准备和签订,对供方监督,直到验收完成。供应过程 是供方为向需方提供软件产品所进行的一系列活动。该过程从理解软件需求开始,经过投标准备,签订合同,制定计划,实施计划及控制,进行评审和评价,直至完成交付。开发过程 是软件开发人员根据合同开发和交付软件的一系列活动。主要的活动有:过程实施准,软件工程,13,备,系统需求分析,系统结构设计,软件需求分析,软件体系结构设计,软件详细设计,程序编码和单元测试,软件集成,软件确认测试,系统集成,系统

6、确认测试,软件安装,软件验收支持。运行过程 软件开发完成后,软件从开发环境转移到用户的实际运行环境。在运行时对用户的要求提供帮助和咨询,对运行效果进行评价。主要的活动有:实施过程准备,运行测试,系统向实际运行环境转移,系统运行,对用户运行的支持,系统运行评价,用户运行评价。,软件工程,14,维护过程 维护人员提供维护软件产品的服务。主要的活动有:过程实施准备,问题分析和修改分析,修改实施,对维护进行评审验收,移植,软件退役。文档过程 文档过程是一个记录由某一过程或活动所产生的信息的过程。主要活动有:过程的实施准备,设计与开发,制作与发行,维护。配置管理过程 该过程实施软件配置管理活动。主要活动

7、有:过程实施准备,配置的确定,配置,2.支持过程,软件工程,15,的控制,配置情况报告,配置的评价,发行管理和提交。质量保证过程 这是一个为使软件过程和软件产品符合规定需求,并按预定计划按时完成提供适当保证的过程。主要活动有:过程实施准备,软件产品的质量保证,软件过程的质量保证。验证过程 确定系统或软件的需求是否完备和正确,以及每一阶段的软件产品是否达到前一阶段对它的要求和条件。主要活动有:过程实施准备,验证,合同验证,过程验证,需求验证,设计验证,代码验证,集成验证,文档验证。,软件工程,16,确认过程 确认需求和最终建立的系统或软件是否满足原计划的特定应用。主要的活动有:实施特定的测试并分

8、析测试结果,确认软件产品的用途,测试软件产品的适用性。审计过程 这一过程是要审计确定合作的另一方遵照需求、计划合同到什么程度的过程。主要的活动有:检验项目是否符合需求、计划、合同以及规格说明和标准。联合评审过程 此过程评价项目的某个活动或阶段的执行情况以及产品是否合乎要求。主要活动有:过程实施准备,项目管理评审,技术评审。,软件工程,17,问题解决过程 这是一个用于分析和排除在开发、运行、维护或其它过程中发现的问题和不一致的过程。一个支持过程可以被获取、供应、开发、运行和维护等基本过程调用,也可以被其他支持过程调用,以保证项目成功和项目质量提高。管理过程 管理包括进度管理、成本管理、质量管理、

9、人员管理、资源管理、标准化管理。,3.组织过程,软件工程,18,管理的对象是进度、系统规模及工作量估算、经费、组织机构、人员、风险、质量、作业和环境配置等。主要活动有:过程实施准备,制定计划,监控计划的实施,评审和评价计划的完成程度,涉及到有关过程的产品管理、项目管理和任务管理。基础设施过程 该过程建立、维护各个过程所需的基础设施。基础设施包括硬件、相关的软件、工具、技术、标准以及开发、运行、维护所需的各种基础设施。改进过程 该过程建立、评估、度量、控制和,软件工程,19,改进软件生存周期的过程。主要活动是制定一组组织计划,评估相关过程,实施分析、改进过程。培训过程 该过程为系统或软件产品提供

10、人员培训。主要活动有制定所需人员用人计划和培训计计划,开发培训资料,实施培训活动等。所有过程都遵守了两条基本原则:模块化和责任。所谓模块化是指各过程都已模块化,它们具有高内聚性和低耦合性,通常一个具体的过程完成一个独立的功能。所谓责任是指一个过程的执行应为某一部门的责任。,软件工程,20,17个过程之间的关系如图所示。图中最上面的矩形框中是组织过程,中间的矩形框描述了如何把过程应用于一个项目,最下面的矩形框是支持过程集。图中椭圆上的顺时针箭头表示plan-do-check-ack(PDCA)周期。图中,“E、F、M、P、T、U”分别代表执行(Execute)、反馈(Feedback)、管理(M

11、anage)、实践(Participate)、任务(Task)和使用(Use)。“E:n”表示执行第n个过程,图下部的矩形框中给出了过程编号。,4.过程间的相互关系,软件工程,21,软件工程,22,过程是针对确定的目的所实施的序列步骤,例如软件开发过程。(IEEE-STD-610)过程是使用资源将输入转化为输出的活动的系统。(ISO 9000:2000)过程是把输入转换为输出的一组彼此相关的活动。(ISO/IEC 12207),过程的几个标准定义,软件工程,23,9.1.5 ISO/IEC TR 15504软件过程评估标准,ISO/IEC 12207 是从过程实施的角度对软件生命周期过程进行规

12、范的标准,ISO/IEC TR 15504 是从过程评估的角度对软件过程进行规范的标准。1.概述ISO/IEC TR 15504 为软件过程评估提供了一个框架,并为实施评估以确保各种级别的一致性和可重复性提出了一个最小需求。该需求有助于保持,软件工程,24,评估结果前后一致,并提供证据证明其级别、验证与需求相符。过程评估活动可以在过程改进活动中执行,也可以作为能力确定过程的一部分执行。ISO/IEC TR 15504 标准具有两维结构:一个是过程维,另一个是能力维。过程维过程维是评估的基础,它的定义融合了一些ISO/IEC 12207 软件生命周期过程的定义。,2.标准的结构,软件工程,25,

13、参考模型的二维结构,对照进行映射,过程维,能力维,软件工程,26,客户供应者 CUS(CustomerSupplier)过程:这类过程有获取、供应、需求导出和操作等 4 个过程。工程 ENG(Engineering)过程:这类过程包括开发、系统与软件维护等 2 个过程。支持 SUP(Support)过程:这类过程包括文档、配置管理、质量保证、验证、确认、联合评审、审计和问题解决等 8 个过程。管理 MAN(Management)过程:这类过程有管理、项目管理、质量管理和风险管理等 4 个过程。,软件工程,27,组织 ORG(Organization)过程:这类过程包括组织调整、改进、人力资源管

14、理、基础设施、测量和重用等 6 个过程。能力维在标准的第 2 部分所定义的能力等级,是一组过程和管理的属性,它们作为一个整体为软件供应者提供了改进过程实施能力的建议。每个等级都提供改进过程实施能力的建议,各个级别都制定了改进过程能力的合理的方法。在参考模型中定义了 6 个能力级别,下面按从低到高的顺序介绍这 6 个级别的特点。,软件工程,28,第0级 不完备级过程不完整,而且一片混乱。第1级 已实施级过程是依据直觉来实施的,有一定的工作产品。第2级 已管理级责任明确,过程和过程的中间产品可管理。第3级 可创建级可以为不同目的定制预定义的过程,过程资源可管理。,软件工程,29,第4级 可预测级各

15、种度量使得过程的实施及实施结果可控制。第5级 优化级用于过程改进的定量度量。在本标准中融合进了能力成熟度模型(CMM)类似的能力等级。用户可以通过不断提高能力等级的方法,提高自己的软件过程能力。,软件工程,30,9.2 软件过程的建模,软件过程建模是对实际软件过程的再工程。所有其他的工程活动都是基于建模活动的结果进行的。过程建模技术包括建模目的、建模方法、建模语言、软件过程与过程模型的度量。建模目的决定了建模活动的范围;建模方法和建模语言是对建模目的的支持和将过程模型形式化的手段;对过程模型的度量与评估是修改和演进过程模,软件工程,31,型的基础,使得过程模型能够更好地与软件工程相吻合,并充分

16、地反映一个组织的过程成熟度。过程建模的目的主要是:通过过程建模,可使人们对过程达到共识,共享过程知识,进行交流。通过过程建模,人们可对过程活动和过程间的相互关系进行分析、比较和预测,以评估和改善过程的有效性。过程模型可为小组和项目提供必要的过程信,软件工程,32,息和通信支持,使人们之间的协同工作更加有效。对过程模型各部分的功效进行分析,找出可以改善的部分,从而支持严格管理下的过程进化。过程模型可以帮助人们制定项目计划,监控、管理和协调项目的实施过程,估算软件创建或演进时各活动的进展。过程模型还可以成为过程度量的基础。通过过程模型可以复用定义良好的软件过程。可以针对具体项目的特点,对已有的过程

17、进行剪裁或扩充,,软件工程,33,使之适合特定项目的需要。通过过程模型可以复用定义良好的软件过程。可以针对具体项目的特点,对已有的过程进行剪裁或扩充,使之适合特定项目的需要。提供对过程的自动执行支持这需要一个基于过程驱动的软件工程环境。支持包括对用户的资源配置、提供各用户间的通信服务,组织和协调个人或小组间的工作等。,软件工程,34,9.2.1 按软件过程涉及的实体类型分类,这种分类方法是以过程所涉及的各个过程实体为依据建立过程模型。以活动为中心的建模方法首先考虑过程活动及它们间的执行顺序,再收集与各个活动相关的其他数据,如活动所涉及的角色、产品、资源和约束等,从而建立过程模型。这种方法能够直

18、观地反映实际过程的工作流,无二义性。,软件工程,35,以角色为中心的建模方法首先确定各个角色的任务和角色之间的关系,再以角色为中心收集过程的其他数据,如活动、产品、资源和约束等,建立过程模型。角色是组织结构中的基本构成因素,是一个易于理解和接受的相对稳定的抽象实体。这种方法能明确描述过程的组织信息,使得参与的人们易于明确自己的任务,便于对项目的计划、管理和控制。,软件工程,36,9.2.2 按过程建模采用形式化方法分类,从所采用的不同形式化方法和语言风格考虑。过程程序设计方法Osterweil认为软件过程与软件产品具有广泛的类同性,对软件过程的描述也是一种程序设计形式。这种方法通过关系、谓词和

19、触发器等机制对软件过程的功能、行为和对象进行详细、确定的算法描述。功能分解方法这种建模方法用一组反映输入输出关系的,软件工程,37,过程元素(数学函数)来表示软件过程。这组函数可以按照语法进一步层次分解,形成一个过程的多个子过程步。这种方法支持子过程步的并行执行、串行执行、迭代执行,还提供了控制过程状态行为的元操作,如创建、挂起、恢复执行等。基于Petri的建模方法Petri网能够有效地形式化描述软件过程的并发性和活动与产品之间的关系,使用这种图形表示描述软件过程,易于理解和管理。,软件工程,38,这种方法较好地考虑了任务的激活条件、活动的执行顺序、活动产生的信息实体之间的转换情况。缺点是忽视

20、了活动对内部状态所产生的影响。基于规则的建模方法基于规则的建模语言通常可提供回溯、向前链接、向后链接等自动执行机制,还可提供规则推理、调度和控制过程活动的机制,并可灵活地修改过程。这种方法很自然地描述过程的不可预见性,为人们控制过程提供了非常灵活的手段。,软件工程,39,缺点是不利于人们理解、构造和分析过程模型,缺乏对并行工作与协同工作的支持。基于知识的建模方法这种方法把过程知识(如过程活动、过程实施者、产品对象和工具以及它们之间的关系等)抽象成不同的类,存放于知识库中。过程建模时,根据要求查询知识库,获取有关过程活动及其他成分的抽象描述,从中选取或构造所需的过程模型,并对其进行分析和推理,最

21、后生成过程实例和相应的活动计划。,软件工程,40,9.2.3 按支持过程改进的方式分类,这类方法对当前正在使用的软件过程进行抽象描述,在此基础上构造改进的过程模型。描述性的建模方法这种方法使用形式化方法,对实际软件过程进行抽象描述,建立过程模型。例如,可将软件过程描述为活动集合。每个活动由任务组成;每个任务都有进入准则、任务描述、确认步骤和退出准则。定义性的建模方法,软件工程,41,这种方法对原有的软件过程进行改进,它规定了应完成的任务和各任务执行的顺序。建立的过程模型容易传达信息,具有不同视图(包括功能的、行为的和组织的),能描述不同层次的抽象,有形式化定义的语法和语义,具有可复用性(按性质

22、分为可求精、可剪裁和易移植性),具有深度和广度,拥有良好界面的模块化等。总的来说,一种过程建模方法是否合适,其评价准则完全取决于使用这种过程建模方法建立起来的过程模型是否达到了过程建模的目的。,软件工程,42,为了使过程建模方法具有广泛的通用性和适应能力,寻求并使用一种集多种风格于一身的建模方法是十分必要的。,软件工程,43,9.3 软件过程的评估与CMM模型,软件开发的风险之所以大,是由于软件过程能力低。即软件过程本身应具有的按预定计划生产软件产品的能力低。其中最关键的问题在于软件开发机构不能很好地管理其软件过程,从而使得一些好的开发方法和技术起不到预期的作用。个别机构中,个别软件项目仍能产

23、生高质量的产品,但这是通过特定优秀软件人员的努力。仅仅建立在特定人员上的成功不能为全机构的,软件工程,44,生产率和质量的长期提高打下基础,必须在建立有效的软件工程实践和管理实践的基础上,坚持不懈的努力,才能不断改进。对于不同的软件开发机构,在组织人员完成软件项目中所依据的管理策略有很大差别,因而软件项目所遵循的软件过程也有很大差别。在此,可以用软件过程的成熟度加以区别。所谓软件过程的成熟度是指一个软件过程被明确定义、管理、度量和控制的有效程度。成熟度越高,说明软件过程能力改善的潜力越大。,软件工程,45,在各个软件机构的过程成熟度有着相当大的差别面前,为了做出客观、公正的比较,需要建立一种衡

24、量标尺。使用这个标尺可以评价软件承包机构的质量保证能力,在软件项目评标活动中,选择中标机构。另一方面,这一标尺也必然成为软件机构改进软件质量,加强质量管理,以及提高软件产品质量的依据。,软件工程,46,9.3.1 软件过程成熟度的度量(CMM),成熟度框架思想是 ITT 的 Philip Crosby 在1979年从统计质量控制原理发展来的。他提出质量管理实践时的五个进化阶段,形成质量管理的成熟度框架。Watts Humphrey 在IBM与他的同事们对其加以改进,使之适合于软件开发的需要。1986年,他将此成熟度框架带到 CMU SEI,增加了成熟度等级的概念,形成软件能力成熟度框架的基础。

25、,软件工程,47,CMM Capability Maturity Model,软件过程成熟度模型SEI Software Engineering Institute,软件工程研究所位于美国Pennsylvania州Pittsburgh Carnegie Mellon 大学,成立于1984年。任务是在软件工程领域中努力提高依赖软件的系统质量,促进软件开发和维护的工程化管理,为军方服务。开始用于大型软件项目的招投标活动的评审依据;后应用于软件机构的内部过程改进。,软件工程,48,1987年6月,CMU SEI 发表了软件过程成熟度框架的简短描述。不久,Humphrey 扩充该框架,开发了软件过程评

26、估和软件成熟度评价的方法,9月提出了一个包含有101个问题的成熟度提问单,用以评估软件过程成熟度。1991年,SEI 将成熟度框架发展成为软件能力成熟度模型 CMM 1.0版本。1993 年,SEI提出了CMM 1.1版本的70多页的技术报告文本,而对关键实践的描述有450页。1997年经过对V1.1大量使用,吸收多方面的实践经验,再次修改,形成CMM 2.0版本。,软件工程,49,近年来基于在过程改进方面积累的经验,SEI扩展和精练了该模型,提出了2.0 版的草案C。CMM认为,过程就是为了达到给定目标所实施的一系列步骤。它把人、工具和规程、方法组织在一起。换言之,过程就是人们使用相应的规程

27、、方法、工具和设备将原始材料(输入)转化为面向客户的产品(输出)所执行的一系列活动。软件过程就是软件开发人员开发和维护软件及相关产品的一套行为、方法、实践及变换过程。,软件工程,50,CMM 定义软件过程成熟度为一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。它是指对过程计划或定义水平、过程实施水平、过程管理和控制水平、过程改善潜力等指标的综合评价。软件能力成熟度等级则为软件开发组织在走向成熟的途中几个具有明确定义的表征软件能力成熟度的平台。每一个成熟度等级为过程继续改进达到下一个等级提供一个基础。,软件工程,51,9.3.2 软件过程成熟度等级的划分,软件过程成熟度等级分为 5

28、级:初始级、可重复级、可定义级、可管理级、可优化级。,软件工程,52,经反馈得以改进的过程,结果,生产率和质量,风险,可管理级,保持优化的组织,但仍为人员密集的过程,技术变更、问题分析、问题预防,过程度量、过程分析、量化质量计划,培训、测试、技术常规和评审、过程关注、标准和过程,项目管理、项目策划、配置管理、软件质量保证,(量化的)已度量的过程,(量化的)已定义且制度化的过程,(直觉的)过程依赖于个人,个别的、混乱的过程,优化级,可定义级,可重复级,初始级,4,5,3,2,1,主要需解决的问题,特 征,等级,软件工程,53,1.各成熟度等级的特征,初始级(Initial)组织缺乏明文的管理办法

29、,软件工作没有稳定的环境,制定了计划又不执行,反应式驱动工作开展。紧急情况下已定的规程丢在一边,急于编码和测试。个别项目的成功依赖于某个有经验的管理人员。个别管理人员能顶住削减过程的压力,但他们离职则全然不同。,软件工程,54,规定的过程无法克服由于缺乏有效管理带来的不稳定性。现象往往表现为过程无一定之规,项目进度、预算、功能及产品质量无法保证,项目的实施不可预测。可重复级(Repeatable)建立了为跟踪成本、进度和功能的基本项目管理过程。基于以往项目经验,制定了过程实施规范,使类似的项目可再次成功。能追踪成本、进度、功能,及时发现问题。,软件工程,55,如有分包,其质量也能得到控制。可定

30、义级(Defined)制定了组织的标准过程文件,这是软件工程基础设施的重要组成部分。建立了组织的软件工程过程组SEPG,负责软件过程活动。制定和实施了人员培训大纲,保证人员能够胜任岗位知识和技能要求。针对特定项目,可将标准软件过程进行剪裁。项目成本、工期和功能已受控,质量可跟踪。管理者了解所有项目对技术进步的要求。,软件工程,56,可管理级(Managed)已为产品和过程建立了量化的目标。对项目的过程活动,包括生产率和质量均作了度量。利用过程数据库收集和分析过程的信息。可量化评价项目过程和产品。可有效地控制过程和产品的性能,使其限制在规定的范围内。新应用领域的风险可知可控。可预知产品的质量。5

31、)优化级(Optimized)集中注意于过程的持续改进。,软件工程,57,自知过程的薄弱环节,可预防缺陷的出现。可通过对当前过程的分析,评价对新技术或将出现的变更作出评价。重视探索创新活动,并将成功的创新推广。出现的缺陷得到分析,找出原因,防止再次发生,教训为其它项目吸取。总之,5 级成熟度等级的划分,合理地描述了软件机构进行软件过程改进的实际情况,给出了从前一级到后一级进化的合理度量,明确了进行下一步改进所需做的工作。每一个成熟度等级表示了过程能力的水平。,软件工程,58,2.软件过程能力与过程成熟度,软件过程能力描述(开发组织或项目组)遵循其软件过程能够实现预期结果的程度。软件过程性能(绩

32、效)则表征(开发组织或项目组)遵循其软件过程所得到的实际结果。软件过程性能描述已得到的实际结果,而软件过程能力则描述最可能的预期结果。为什么要提高过程能力?对于顾客,较高的过程能力意味着:开发组织能够更好地响应自己的要求,软件工程,59,软件产品的成本更低能更好地满足最终用户要求对于开发组织,较高的过程能力表明:软件产品开发和维护成本较低开发周期较短由于有效的项目风险分析和工作量投入估计,增强了达到成本和进度目标的能力提高了满足量化设计和质量目标的能力衡量软件企业的过程能力可用成熟度来衡量:成熟度高:,软件工程,60,项目的开发可依据企业早已明确的过程准则来实施;开发结果较少依赖个人能力和自然

33、因素;项目有过程控制并可对整个生产作出预测;产品质量得到有效监控(借助与客观定量化的数据);历史经验得以积累并可系统地用于现行和未来的项目之中。成熟度低:没有明确的软件过程体系可以依据;无法对生产进行预测;,软件工程,61,不严格执行生产过程;质量无法保证;无健全的过程控制及质量控制体系;项目开发没有准则可遵循;开发结果主要依据项目小组及个人的带有主观因素的能力发挥。,软件工程,62,9.3.3 关键过程域 KPA(Key Process Area),除去初始级以外,其它每一个成熟度等级都有若干个引导软件机构改进软件过程的要点,称为关键过程域。它们定义了软件机构为改进其软件过程所应集中关注的区

34、域,确定了实现一个成熟度级必需解决的问题,它们的实施对于达到该成熟度等级的目标起着保证作用。CMM 定义关键过程域为一个互相关联的若干软件实践活动和有关基础设施的集合。,软件工程,63,每一个关键过程域确定一组相应的活动,完成这些活动,就可认为已达到了改进过程能力的一组重要的目标。,软件工程,64,软件工程,65,第 2 级(可重复级)KPA 的目标,软件工程,66,软件工程,67,软件工程,68,第 3 级(可定义级)KPA的目标,软件工程,69,软件工程,70,第4级(可度量级)KPA 的目标,第3级建立在第2级的项目管理基础之上。,软件工程,71,软件工程,72,第 5 级(优化级)KP

35、A的目标,软件工程,73,软件工程,74,关键过程域分类,软件工程,75,软件工程,76,9.3.4 关键实践(Key Practice),关键过程域包含为实现这些关键过程域所必需实施的关键实践,它们包含对关键过程域的实施起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述“做什么”,而不强制规定“如何做”。关键过程域的目标是通过其包含的关键实践的实施来达到的。关键实践的实施全部按下面 5 个共同特征(阶段)加以组织。,软件工程,77,执行约定实施的保证描述一个机构在保证将过程建立起来并持续起作用方面所制定的方针和规定的高级管理人员对项目的支持。执行能力实施KPA的前提

36、条件描述为了实施软件过程,组织必须预先采取的措施。执行能力一般包括资源、组织机构和培训。执行活动执行KPA所必需的角色和步骤描述为了实现一个关键过程域必须由谁做什么,包括制定计划与规程、执行计划、跟踪执行情况,必要时采取纠正措施。测量和分析描述测量软件的过程和分析测量,软件工程,78,结果的要求需要,包括为确定所执行活动的状态及有效性而采用的测量和分析。验证实施描述保证遵照已建立的过程进行活动的措施,包括管理人员和软件质量保证部门所做的评审和审核。关键实践,无论属于哪一个共同特征,都要描述对关键过程域的有效实施贡献最大的基础设施或活动。参看下面的成熟度等级的内部结构图:,软件工程,79,CMM

37、的内部结构,软件工程,80,一般说来,每个关键过程域的每个共同特征都包含一项或十几项关键实践,每项关键实践又可能另有若干子实践。,软件工程,81,CMM 模型在 1990 年代广泛用于软件过程评估和软件过程改进,促进了软件生产率的提高和软件质量的提高。但它对于系统工程、系统集成和供应商管理等领域的过程改进存在不足。人们不得不寻求弥补CMM 模型不足的其他类似模型。例如,SWCMM 软件(Software)SACMM 软件获取(Software Acquisition),9.4 软件过程改进、评估与CMMI9.4.1 CMM的成功和缺陷,软件工程,82,SECMM 系统工程(System Eng

38、ineering)IPMCMM 集成产品管理(Integrated Product Management)PCMM 人员(People)TSP 小组软件过程(Team Software Process)PSP 人员软件过程(Personnel Software Process)在组织中模型的繁衍导致过程评估和改进的复杂化和工作量的增加,效率的低下。SEI把各种模型进行了整合,用一个单一的过程框架包容了各个不同的方面,形成了CMMI,即能力成熟度模型的集成。,软件工程,83,CMMI的提出达到两个目的:提炼出多方面的公共过程域减少过程域的总数量CMMI模型系列2002年发布的CMMI的1.1版本

39、系列:CMMISW(软件能力成熟度模型集成)CMMISESW(系统工程和软件工程能力成熟度模型集成)CMMISESWIPPD(系统工程、软件,9.4.2 CMMI的基本内容,软件工程,84,工程、集成化产品和过程开发能力成熟度模型集成)CMMISESWIPPDSS(系统工程、软件工程、集成化产品和过程开发、供应商管理能力成熟度模型集成)CMMI模型的过程域CMMISW:有 22 个过程域;CMMISESW:有 22 个过程域,其名字与 a)相同,仅在某些过程域中所提供材料不同;,软件工程,85,CMMISESWIPPD:比 b)增加了 2 个过程域,并扩充了 b)中的 1 个过程域,共 24

40、个过程域;CMMISESWIPPDSS:比 c)增加了 1 个过程域,共 25 个过程域。CMMI模型的表示法每个模型有 2 种表示法:阶段式和连续式。阶段式表示强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。,软件工程,86,该表示为组织定义了过程成熟度等级,成为组织的过程改进的过程平台。,软件工程,87,连续式表示强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”。该表示为组织过程改进提供了较大的自由度。允许用户根据组织的业务目的来选择过程改进活动的次序,定义更适合自身业务环境的过程域的次序。对组织的过程进行

41、评估的结果具有更好的可见性。可对每个个别的过程域进行单独的评定,便于观察。,软件工程,88,9.4.3 CMMI模型的结构框架,软件工程,89,1.第2级 已管理级,包括 7 个过程域:需求管理项目策划项目监督和控制供方协定管理测量与分析过程和产品质量保证配置管理,在第 2 级成熟度等级,项目的具体过程得到策划、形成文档、执行并受到监督和控制,并能够实现成本、进度和质量等具体目标。软件组织已经营造出稳定的、受控开发环境。项目干系人之间建立了承诺。,软件工程,90,1)需求管理 流程图,管理需求,软件工程,91,2)项目策划,软件工程,92,3)项目监督和控制,软件工程,93,4)供方协定管理,

42、软件工程,94,5)测量与分析,软件工程,95,6)过程和产品质量保证,软件工程,96,7)配置管理,软件工程,97,2.第 3 级 已定义级,包括11个过程域:需求开发技术解决产品集成验证确认组织过程聚焦组织过程定义组织培训集成项目管理,10)风险管理11)决策分析和决定在第2级成熟度等级,项目执行的过程是通过剪裁组织的标准过程集合和组织过程财富产生的“已定义过程”,整个组织执行的过程是一致的、制度化的。,软件工程,98,8)需求开发,软件工程,99,软件工程,100,9)技术开发,软件工程,101,软件工程,102,10)产品集成,软件工程,103,软件工程,104,11)验证,软件工程,

43、105,软件工程,106,12)确认,软件工程,107,13)组织过程聚焦,软件工程,108,14)组织过程定义,软件工程,109,15)组织培训,软件工程,110,16)集成项目管理,软件工程,111,17)风险管理,软件工程,112,软件工程,113,18)决策分析与决定,软件工程,114,3.第4级 定量管理级,该成熟度等级包括2个过程域:组织过程性能定量项目管理在这个等级上,建立了关于产品质量、服务质量以及过程性能的定量目标,运用统计技术和其他定量技术对各个过程实施控制,并把这些定量目标作为判断过程管理是否成功的标志。在过程的生存周期内,对产品质量、服务质量和过程性能做到统计意义上的了

44、解和管理。,软件工程,115,对过程的目标量化是客户、组织和过程实施者的需要,实施过程的人应直接介入该过程的定量管理。对于过程总体性能有重要作用的其他过程也需要进行定量管理。要注意收集有关这些过程的过程性能的详细度量数据并进行统计分析,以便在出现问题时能够找到引起变化的特殊原因。并从这些特殊原因的根源上解决问题,以防止将来再出现类似的问题。第 4 级与第 3 级相比,可以通过量化分析做到定量的可预见性。,软件工程,116,19)组织过程性能,软件工程,117,20)定量项目管理,软件工程,118,4.第5级 持续优化级,该成熟度等级包括2个过程域:组织革新和部署原因分析和决定本等级的突出特征是

45、过程的持续改进。可以是渐进式的改进,也可以是变革式的改进。无论是哪一种形式,都是在了解过程内在变化原因(共性原因)的基础上的持续改进。在这个等级上,组织建立起整个组织的定量过程改进的目标,并把它们作为过程改进管理成,软件工程,119,功与否的判断标准。这些目标应及时修改,以反映不断变化的本组织的业务目标。无论是哪一种形式,都是在了解过程内在变化原因(共性原因)的基础上的持续改进。实际实施的过程和本组织的标准过程集合都是改进活动的对象。通过查找问题,加快共享经验教训,可以增强本组织对变化和机会的快速反应能力。第 5 级与第 4 级的差别在于所处理的造成过程变化的原因类型。第 4 级处理的特殊原因是造成某些缺陷的原因,不是过程的内在原因。,软件工程,120,21)组织革新和部署,软件工程,121,22)原因分析和决定,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号