软件工程软件过程.ppt
《软件工程软件过程.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模型,软件开发的风险之所以大,是由于软件过程能力低。即软件过程本身应具有的按预定计划生产软件产品的能力低。其中最关键的问题在于软件开发机构不能很好地管理其软件过程,从而使得一些好的开发方法和技术起不到预期的作用。个别机构中,个别软件项目仍能产
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 过程
链接地址:https://www.desk33.com/p-235748.html