资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第二章 过程模型,软件过程,过程框架,普适性活动,软件工程活动#1.1,框架活动#1,工作任务 工作产品 质量保证模型 项目里程碑,工作任务 工作产品 质量保证点 项目里程碑,框架活动#n,软件工程活动#n.1,软件工程动作#n.m,任务集,任务集,任务集,任务集,软降工程动作#1.k,工作任务 工作产品 质量保证点 项目里程碑,工作任务 工作产品 质量保证点 项目里程碑,通用过程模型,2,过程流,沟通,策划,建模,(a)线性过程流,构建,部署,部署,构建,建模,策划,沟通,(b)迭代过程流,建模,构建,(c)演化过程流,部署,策划,沟通,增量交付,沟通,策划,建模,时间,构建,部署,(c)并行过程流,3,明确任务集,任务集定义了为达到一个软件工程动作的目标所需要完成的工作。 所需完成任务的列表 所需生产的工作产品列表 应用质量保证过滤的列表,小型项目的获取需求任务集,1.制定项目的利益相关者列表 2.邀请所有的利益相关者参加一个非正式会议。 3.征询每一个人对于软件特征和功能的需求。 4.讨论需求,并确定最终的需求列表。 5.划定需求优先级。 6.标出不确定领域。,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,4,大型项目的获取需求任务集,1.制定项目的利益相关者列表 2.和利益相关者的每一个成员分别单独讨论,获取所有的要求。 3.基于任务集2中的调查,建立初步的功能和特征列表。 4.安排一系列促进需求获取的会议。 5.组织会议。 6.在每次会议上建立非正式的用户场景。 7.根据利益相关者的反馈,进一步细化用户场景。 8.建立一个修正的需求列表。 9.使用质量功能部署技术,划分需求优先级。 10.将需求打包以便软件可以增量交付。 11.标注系统的约束和限制。 12.讨论系统验证方法。,5,6,过程模式,一个过程模式 描述了软件工程工作中遇到的过程相关的问题 明确了问题环境 并给出了针对该问题的一种或几种可证明的解决方案通俗地讲,过程模式提供了一个描述模版 Amb98一种在软件过程的背景下,统一描述问题解决方案的方法。,过程模式描述模板,模式名称:表述该模式在软件过程中的含义。 驱动力:模式使用环境及主要问题,以明确主要难点并可能影响解决方案。,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,7,8,过程模式类型,步骤模式定义了与过程的框架活动相关的问题。例如“建立沟通”,它可能包括需求获取等任务模式 任务模式定义了与软件工程动作或是工作任务相关、关系软件工程实践成败的问题。例如“需求获取” 阶段模式定义在过程中发生的框架活动序列,即使这些活动流本质上是迭代的。例如“螺旋模型”和“原型开发”,模式的启动条件,在此之前,整个开发组织或是开发团队内已经有哪些活动? 过程的进入状态是什么? 已经有哪些软件工程信息或是项目信息?,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,9,启动条件实例-策划模式,客户和软件工程师已经建立了合作的交流机制 已经成功地完成一些客户沟通模式中特定的任务模式 项目范围、基本业务需求和项目限制条件已经确定,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,10,模式的结束条件,必须完成哪些开发组织或是开发团队相关的活动? 过程的结束状态是什么? 产生了哪些软件工程信息或是项目信息? 具体的过程模型的例子见p23,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,11,12,过程评估与改进,用于过程改进的 CMMI标准评估方法 提供了五步的过程评估模型:启动、诊断、建立、执行和学习。 用于组织内部过程改进的CMM评估采用SEI的CMM作为评估的依据Dun01,提供了一种诊断方法,用以分析软件开发机构相对成熟度。 SPICEThe SPICE (ISO/IEC15504) 标准定义了软件过程评估的一系列要求。该标准的目的是帮助软件开发组织建立客观的评价体系,以评估定义的软件过程的有效性。 ISO08 软件ISO 9001:2000这是一个通用标准,任何开发组织如果希望提高所提供的产品、系统或服务的整体质量,都可以采用这个标准。因此,该标准可直接应用于软件组织和公司。Ant06,13,惯用模型,惯用过程模型提倡有序的软件工程方法 因此导致一些问题 如果传统过程模型力求实现结构化和有序,那么对于富于变化的软件世界,这一模型是否合适呢? 如果我们抛弃传统过程模型(以及它们带来的秩序),取而代之以一些不够结构化的模型,是否会使如软件工作无法达到协调和一致?,14,瀑布模型,沟通 项目启动 需求获取,策划 项目估算 进度计划 项目跟踪,建模 分析 设计,构建 编码 测试,部署 交付 支持 反馈,15,瀑布模型之变体V模型,需求建模,体系结构设计,构件设计,代码生成,单元测试,集成测试,系统测试,验收测试,可执行软件,1.使用中遇到的问题 实际的项目很少遵守瀑布模型提出的顺序。 可以通常难以清楚地描述所有的需求。 客户必须要有耐心。2.适用情形: 当需求确定、工作采用线性方式完成时。,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,16,17,增量模型,第1个增量,第2个增量,第n个增量,交付第2个增量,交付第3个增量,交付第1个增量,软件功能和特征,项目时间,沟通,策划,建模 分析 设计,构件 编码 测试,部署 交付 反馈,沟通,沟通,策划,策划,建模 分析 设计,建模 分析 设计,构件 编码 测试,构件 编码 测试,部署 交付 反馈,部署 交付 反馈,1.适用情形 初始的软件需求明确,但是整个开发过程却不宜单纯运用线性模型。同时,可能迫切需要为用户迅速提供一套功能有限的软件产品,然后在后续版本中再进行细化和扩展功能。例如第一个增量往往是核心产品,附加功能进入下个增量计划。 2.特点: 综合了线性过程流和并行过程流的特征。 每个增量都提交一个可以运行的产品。,These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.,18,19,演化模型:原型开发,Construction of prototype,沟通,快速策划,快速建模设计,构建原型,部署交付及反馈,1.适用情形 客户提出了一些基本功能,但没有详细定义功能和特性需求 开发人员可能对算法的效率、操作系统的兼容性和人机交互的形式等情况并不确定 2.特点 很少是好用的,可能太慢太大,难以使用。 一般作为被丢弃的系统。,20,21,演化模型:螺旋,策划 项目估算 制定进度计划 风险分析,建模 分析 设计,构建 编码 测试,部署 交付 反馈,沟通,开始,特点: 采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。 确定一系列里程碑,确保利益相关者都支持可行的和令人满意的系统解决方案。,22,演化模型:协同,建模活动,非活动状态,表示阮籍工程活动 或任务的某一状态,完成状态,已建立基线,正在评审状态,正在开发状态,等待变更请求,正在修改状态,特点: 在某一特定时间,建模活动可能处于图中所示的任何一种状态中。其他活动、动作或任务,可以用类似的方式表示。 所有的软件工程活动同时存在并处于不同的状态。,23,其他过程模型,基于构件的开发这个过程模型能够使软件复用,是一个发展目标 形式化方法强调需求的数学规范说明一个变型是净室( cleanroom)软件工程。 面向方面的软件开发(AOSD)为定义、说明、设计和构建方面提供过程和方法如果某个关注点涉及系统多个方面的功能、特性和信息,可称为横切关注点,由方面性需求来定义。 统一过程一种“用例驱动,以架构为核心,迭代并且增量”的软件过程与统一建模语言的紧密结合,24,统一过程(UP),起始,细化,策划,沟通,部署,转换,构建,构建,建模,生产,发布,软件增量,25,UP 阶段,UP阶段,需求,工作流,分析,设计,实现,测试,支持,迭代,起始,细化,构建,转换,生产,26,个人软件过程(PSP),策划。这个活动将需求活动分离出来,估算项目的规模和所需资源,并估算缺陷(工作中预测的缺陷数目)。所有的度量都用工作表或是模板记录。最后,识别开发任务,并建立项目进度计划。 高层设计。搭建每个构件的的外部规格说明,并完成构件设计。如果有不确定的需求,则建立原型系统。所有问题都要记录和跟踪。 高层设计评审。使用正式的验证方法(参见第21章)来发现设计中的错误。对所有的重要任务和工作结果都进行度量。 开发。细化和评审构件级设计。完成编程,对代码进行评审,并进行编译和测试。对有的重要任务和工作结果都进行度量。 后验。根据收集到的测量和度量结果(需要进行大量数据的统计分析),确定过程的有效性。度量和测量结果为提高过程的有效性提供指导。,27,团队软件过程(TSP),建立自我管理团队来计划和跟踪他们的工作、确定目标、建立团队自己的过程和计划。团队既可以是纯粹的软件开发队伍,也可以是集成的产品队伍(IPT),可以由320名工程师组成。 指示管理人员如何指导和激励其团队,及如何帮助他们保持团队的最佳表现。 使CMM第5级的行为常规化并如预期一样,这样可加速软件过程改进。能力成熟模型(CMM),一种衡量软件过程效率的技术。 为高成熟度的软件组织提供改进知道。 协助大学传授工业级团队技能。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号