软件工程概论 6- 统一过程与敏捷过程学习课件_第1页
软件工程概论 6- 统一过程与敏捷过程学习课件_第2页
软件工程概论 6- 统一过程与敏捷过程学习课件_第3页
软件工程概论 6- 统一过程与敏捷过程学习课件_第4页
软件工程概论 6- 统一过程与敏捷过程学习课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨工业大学软件学院第6章统一过程与敏捷过程杨大易2015/12/30本章内容6.1统一过程6.2敏捷过程6.3极限编程6.4Scrum6.5本章小结6.6思考问题哈尔滨工业大学软件学院16.1统一过程

软件开发方法的演进哈尔滨工业大学软件学院26.1统一过程

RUP过程的二维表示

横轴表示时间:划分为阶段和迭代

纵轴表示过程组件:开发各阶段的任务

时间轴:4个顺序阶段

初始阶段(Inception)

细化阶段(Elaboration)

构造阶段(Construction)

交付阶段(Transition)

每个阶段又分为若干个迭代(Iteration)哈尔滨工业大学软件学院36.1统一过程

过程组件轴:9个工作流

核心过程工作流••••••业务建模(BusinessModeling)需求(Requirement)分析与设计(Analysis&Design)实现(Implementation)测试(Test)部署(Deployment)

核心支持工作流•项目管理(ProjectManagement)•配置和变更管理(ConfigurationandChangeManagement)•环境(Environment)哈尔滨工业大学软件学院46.1统一过程

统一过程(RUP:RationalUnifiedProcess)哈尔滨工业大学软件学院56.1统一过程

统一过程提供了在开发组织中分派任务和责任的纪律化方法;

统一过程目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品;

统一过程模型是一种用例驱动,以体系结构为核心,迭代及增量的软件过程框架,由UML方法和工具支持。统一过程模型与瀑布模型、原型模型和增量模型等相比有哪些差异?哈尔滨工业大学软件学院66.2敏捷过程

提出敏捷过程的背景

许多公司软件团队陷入了不断增长的过程泥潭

为矫正某些官僚烦琐的软件过程

2001年2月,17个方法学家达成一致并发起成立敏捷软件开发联盟

软件开发宣言

软件团队具有快速工作、快速响应变化的能力

4条基本价值观+12条原则哈尔滨工业大学软件学院76.2敏捷过程

敏捷宣言的价值观敏捷软件开发宣言我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:个体和交互可以工作的软件客户合作响应变化胜过胜过胜过胜过过程和工具面面俱到的文档合同谈判遵循计划虽然右项也具有价值,但我们认为左项具有更大的价值。KentBeckMikeBeedleArieVanBennekumAlistairCockburnWardCunninghamMartinFowlerJamesGrenningJimHighsmithAndrewHuntRonJeffriesJonKernBrianMarickRobertC.MartinSteveMellorKenSchwaberJeffSutherlandDaveThomas哈尔滨工业大学软件学院86.2敏捷过程(1)个体和交互胜过过程和工具

人是软件项目获得成功最为重要的因素;

合作、沟通以及交互能力要比单纯的软件编程能力更为重要。(2)可以工作的软件胜过面面俱到的文档

软件开发的主要目标:交付给用户可以工作的软件而不是文档;

软件开发的主要和中心活动是创建可以工作的软件,直到迫切需要并且意义重大时,才进行文档编制。哈尔滨工业大学软件学院96.2敏捷过程(3)客户合作胜过合同谈判

客户不可能做到一次性地将他们的需求完整清晰地表述在合同当中;

开发团队与客户紧密协作,为开发团队和客户的协同工作方式提供指导的合同是最好的合同。(4)响应变化胜过遵循计划

变化是软件开发中存在的现实;

响应变化的有效途径之一是制定灵活可塑的计划。敏捷过程中的哪些做法与传统软件工程观念不同?哈尔滨工业大学软件学院106.2敏捷过程

敏捷开发的12条原则(1)最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意;(2)即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势;(3)经常性交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好;(4)在整个项目开发期间,商务人员和开发人员必须天天都工作在一起;(5)围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持,并且信任他们能够完成工作;哈尔滨工业大学软件学院116.2敏捷过程(6)在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈;(7)工作的软件是首要的进度度量标准;(8)敏捷过程提倡可持续的开发速度,责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度;(9)不断关注优秀设计技能和好的设计会增强敏捷能力;(10)简单:使未完成的工作最大化的艺术是根本的;(11)最好的构架、需求和设计出自于自组织的团队;(12)每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。哈尔滨工业大学软件学院126.2敏捷过程

统一过程与敏捷过程

统一过程:提供的是理想开发环境下软件过程的一种完整且完美的模式。

敏捷过程:针对商业环境下通常具有有限资源和有限时间约束的小型项目提出了一些独具特色的、操作性较强的解决方案。

敏捷过程在人员、方法、产品等方面的论述远不及统一过程全面详细。

敏捷过程可作为对统一过程的补充和完善。哈尔滨工业大学软件学院136.3极限编程

极限编程(XP:ExtremeProgramming)

一个轻量级的、灵巧的敏捷开发方法;

大部分实践与敏捷过程的价值观和原则一致,并对敏捷过程进一步发展和补充,如结对编程、隐喻等。

极限编程过程哈尔滨工业大学软件学院146.3极限编程

极限编程的四个价值目标

沟通:敏捷方法采用了一些实践来强制沟通,如结对编程、策划游戏、验收测试等;

简单:今天做的简单一些,然后明天需要时再花些时间进行改进,比今天做的复杂但以后再也用不到要好。

反馈:加强与用户的反馈,反馈越多,沟通越容易。

勇气:快速的进入开发阶段,并在必要时果断对系统进行重构。哈尔滨工业大学软件学院156.3极限编程

极限编程的实践要点(1)结对编程:由两个开发人员在同一台电脑上共同编写解决同一问题的代码,通常一个人负责编码,而另一个负责保证代码的正确性与可读性;(2)客户作为团队成员:要求至少有一名实际的客户代表在整个项目开发周期和团队开发人员在一起紧密地工作;(3)短交付周期:每两周交付一次可以工作的软件;(4)测试驱动开发:在编码开始之前,首先将测试写好,而后再进行编码,直至所有测试都得以通过;(5)集体所有权:开发小组的每个成员都有更改代码的权利,所有的人对于全部代码负责;哈尔滨工业大学软件学院166.3极限编程(6)可持续的开发速度:开发人员每周工作时间不超过40小时,加班不得连续超过两周,否则反而会影响生产率;(7)开放的工作空间:项目的所有参与者(开发人员、测试人员、客户等)一起工作在一个开放的场所中;(8)简单的设计:设计恰好与计划在本次迭代中要完成的用户素材相匹配,不考虑未来的用户素材;(9)重构:重新调整、优化系统结构以减少复杂性、消除冗余、增加灵活性和提高性能;(10)隐喻:整个系统联系在一起的全局视图、系统的未来影像,描述系统如何运作、新的功能以何种方式加入到系统。哈尔滨工业大学软件学院176.4Scrum

Scrum基本假設

开发软件就像是开发新产品,无法一开始就能定义最终产品的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功。

Scrum将软件开发团队比拟成橄榄球队

有明确的最高目标

熟悉开发流程中所需具备的最佳典范与技术

具有高度自主权,紧密地沟通合作

以高度弹性解決各种挑战

确保每天、每个阶段都朝向目标有明确的推进哈尔滨工业大学软件学院186.4Scrum

Scrum团队

7人组成。团队不止是一个程序员队伍,它由各种背景下的不同角色组合而成,包括商业分析者,设计师,程序员和测试者等。

ProductOwner:负责最大化项目投资回报。领导团队估算ProductBacklog,对UserStories/requirements具有最终的权力。

ScrumMaster:帮助ProductOwner选择最优价值的ProductBacklog,确保Scrum实践得到执行,最大化团队的生产率。哈尔滨工业大学软件学院196.4Scrum

Scrum过程哈尔滨工业大学软件学院206.4Scrum

Scrum任务划分

ProductBacklog:具有优先级的需求列表,并对每个需求进行了粗略的估算。ProductBacklog是不断完善优化的。

SprintBacklog:细化高优先级任务,任务分解不超过16小时。哈尔滨工业大学软件学院216.4Scrum

Sprint策划会议

限时8小时,分成2部分,各4个小时

第一部分,挑选ProdectBacklog

第二部分,准备SprintBacklog

产品负责人要提前在会议前准备好产品Backlog

团队可提出建议,但是由ProductOwner制定ProductBacklog

团队负责从Productowner制定的ProductBacklog中挑选出期望在当前Sprint内完成的工作哈尔滨工业大学软件学院226.4Scrum

Sprint策划会议:第一部分

挑选增量ProductBacklog

确定ProductBacklog的工作量和优先级

成员一致认可Sprint目标和ProductBacklog

Sprint策划会议:第二部分

团队成员将选定ProductBacklog细分

制定SprintBacklog,包括任务、任务估计、任务分工哈尔滨工业大学软件学院236.4Scrum

Sprint运行

Sprint周期内开发可交付的产品

Sprint内包括设计、编码、测试、编写文档等工作

在Sprint期间其他人不可向团队下达通知、指令、评论和方向指示,团队完全进行自我管理

一旦Sprint开始了,只能由Scrum团队增加或删除SprintBacklog中的任务

团队成员每日参加Scrum会议哈尔滨工业大学软件学院246.4Scrum

每日Scrum会议

限时15分钟

每日早晨,同一地点

站立会议

所有成员必须参加

成员必须准时,否则惩罚

每个人给全体成员汇报工作进展

同步进展而不是解决问题哈尔滨工业大学软件学院256.4Scrum

Scrum看板哈尔滨工业大学软件学院266.4Scrum

燃尽图哈尔滨工业大学软件学院276.4Scrum

Sprint评审

限时4小时

团队向ProductOwner及其他利益相关者展示本次sprint完成的功能

不展示未完成的功能,不展示技术文档

演示结束后调查利益相关者意见,记录他们的意见、期望的变更等

基于反馈调整Backlog

可以在Sprint结束后确定是否还要继续本产品的开发

不需要用ppt哈尔滨工业大学软件学院286.4Scrum

Sprint回顾

限定在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论