欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    敏捷软件开发方法(xp、scrum).pptx

    • 资源ID:77418215       资源大小:1.26MB        全文页数:42页
    • 资源格式: PPTX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    敏捷软件开发方法(xp、scrum).pptx

    什么是敏捷软件开发方法 敏捷软件开发方法其实不是一个具体的过程,而是一个涵盖性术语。用于概括那些应需而生的具有类似价值观的软件开发方式和方法,这些方法一般都具有以人为核心、循环迭代、响应变化等特点,着眼于能高质量地快速交付客户满意的工作软件。敏捷方法产生的背景现代软件的 复杂性 软件越来越复杂 可变性 需求越来越多变 一致性 过程越来越规范敏捷软件开发代表方法 统一开发过程:Rational Unified Process 极限编程:eXtreme Programming Scrum方法 敏捷建模:Agile Modeling 自适应软件开发:Adaptive Software Developmentetc.一、典型方法:极限编程(XP)极限编程(XP)是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流。这可以帮助团队最大化地发挥他们的价值。uXP诞生于1996年uXP是以开发符合客户需要的软件为目标而产生的一种方法论uXP是一种以实践为基础的软件工程过程和思想uXP认为代码质量的重要程度超出人们一般所认为的程度典型方法:极限编程(XP)XP方法的基础是方法的基础是4个价值观念个价值观念:沟通沟通大多数项目的失败源于沟通不畅,所以要进行一些能够推动积极沟通的实践。简单简单开发能够满足客户需要的最简单的产品。反馈反馈开发者必须要获取并且重视来自客户、系统的反馈以及相互之间的反馈。勇气勇气准备好做出支持其他原则和实践的艰难决定。典型方法:极限编程(XP)XP的适用范围:XP适合规模小、进度紧、需求变化大、质量要求严的项目。它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求,XP在平衡短期和长期利益之间做了巧妙的选择。世界500强公司中成功应用XP的公司有:Ford,Daimler-Chrysler,First Union National Bank,IBM,HP等等。典型方法:极限编程(XP)不宜采用XP的项目:l中大型的项目(项目团队超过10人);l 重构会导致大量开销的应用;l 需要很长的编译或者测试周期的系统;l 不容易进行测试的应用;l团队人员异地分布的项目;l不能接收XP文化的组织和团队。极限编程(eXtreme Programming)XP在4个价值观之上,又定义了12个的必须遵个的必须遵循的实践:循的实践:1.完整团队完整团队:XP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。每个人都了解对方的工作状态,程序员们都处在适合于激烈地进行讨论的位置上。客户是Team成员,在开发现场和开发人员一起工作。客户是指定义产品的特性并排列这些特性优先级的人或者团体.极限编程(eXtreme Programming)2.计划游戏计划游戏:计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。在每次发布和每次迭代的开始,开发人员基于在最近一次迭代或者最近一次发布中他们所完成的工作量,为客户提供一个预算。客户选择那些所需的成本合计起来不超过该预算的用户素材。依据这些简单的规则,采用短周期迭代和频繁的发布,很快客户和开发人员就会适应项目的开发节奏。客户会了解开发人员的开发速度。基于这种了解,客户能够确定项目会持续多长时间,以及会花费多少成本。3.客户测试:作为选择每个所期望的特性的一部分,客户客户测试:作为选择每个所期望的特性的一部分,客户可以根据脚本语言来定义出自动验收测试来表明该特可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。性可以工作。4.4.简单设计简单设计:团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码。标准(依重要性):通过所有测试 可读性高的代码 避免重复 最少数量的类或方法。极限编程(eXtreme Programming)5.结对编程:所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的,让两个人共同设计和开发代码的实践。结对者是全职合作者,轮流执行键入和监视;这提供了持续的设计和代码评审。XP的必须组成部分,XP中最有争议的规则之一。不是两个人做一个人的事情。极限编程(eXtreme Programming)6.测试驱动开发测试驱动开发:开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。编写单元测试是一个验证行为,更是一个设计行为。测试驱动开发的基本过程如下:快速新增一个测试 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法 运行所有的测试,并且全部通过 重构代码,以消除重复设计,优化设计结构 极限编程(eXtreme Programming)7.7.改进设计改进设计:随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、具有表达力。重构是XP的一个重要组成部分。所谓重构是指在不改变代码外在行为的前提下对代码做出的修改,以改进代码的内部结构。重构是一种有纪律的、经过训练的、有条不紊的代码整理方法,可以将整理过程中不小心引入错误的可能性降到最低。从本质上说,重构就是在代码写好之后改进它的设计。极限编程(eXtreme Programming)为什么要重构?为什么要重构?1.改进软件的设计。重构则帮助重新组织代码,重新清晰的体现结构和进一步改进设计。2.提高代码质量,可维护性。容易理解的代码可以很容易的维护和做进一步的开发。3.重构帮助尽早的发现错误。在另一个时段重新审视自己或别人代码,可以更容易的发现问题和加深对代码的理解。.重构可以提高提高开发速度。重构对设计和代码的改进,都可以有效的提高开发速度。极限编程(eXtreme Programming)8.持续集成持续集成:团队总是使系统完整地被集成。一个人拆入(Check in)后,其它所有人责任代码集成。持续集成的思想是任何时候只有一项任务完成,就集成新代码,构造系统并测试。让开发人员在第一时间了解到软件的错误,并迅速排除错误。极限编程(eXtreme Programming)9.集体代码所有权集体代码所有权:任何结对的程序员都可以在任何时候改进任何代码,但改动后的代码必须通过所有相关的测试。没有程序员对任何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。10.编码标准编码标准:系统中所有的代码看起来就好像是一人单独编写的。规定了程序的风格,包括注释如何写,变量命名的规范,代码的格式等等。极限编程(eXtreme Programming)11.隐喻:将整个系统联系在一起的全局视图的概念。它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。隐喻通常可以归结为一个名字系统。这些名字提供了一个系统组成元素的词汇表,并且有助于定义它们之间关系。12.可持续的速度:团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他们保存精力,把项目看作是马拉松长跑,而不是全速短跑。提倡平稳的工作效率,体现了XP以人为本的价值观。XP的规则是不允许团队加班工作。在版本发布前的一个星期是该规则的惟一例外。如果发布目标就在眼前并且能够一蹴而就,则允许加班。极限编程(eXtreme Programming)二、Scrum方法SCRUM 是敏捷过程的一种,以英式橄榄球争球队形(Scrum)为名。Scrum将软件开发团队比拟成橄榄球队 有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解決各种挑战,确保每天、每个阶段都朝向目标有明确的推进Scrum特点 适于在不确定性高的环境中开发复杂产品;简洁但有效;易于学习和掌握;能够在开发进程中不断检查,并作出相应调整;项目信息对所有干系人高度透明;便于快速发现问题,促使团队和组织持续改进;Scrum与传统方法的对比图一:团队生产力Scrum与传统方法的对比图二:士气Scrum与传统方法的对比图三:责任感与主人翁意识Scrum与传统方法的对比图四:协调与合作Scrum与传统方法的对比图五:交付质量有多少人愿意继续使用Scrum越来越多的企业开始用ScrumGoogle OracleIBM MotorolaNokia AgilentSiemens PhilipsSun SAPMicrosoft TecentOracle Yahoo!Scrum框架三个角色 1、产品负责人(Product Owner):它是开发团队和客户或最终用户之间的联络点。l代表产品线的利益,与Scrum Master和Scrum Team合作l负责管理和确定产品记录的优先次序,角色负责产品的远景规划l侧重于投资回报Return Of Investment 三个角色2、Scrum专家(Scrum Master):Scrum专家负责指导开发团队进行Scrum开发与实践,它也是开发团队与产品拥有者之间交流的联络点。l为Scrum Team服务,确保每一个成员都认同Scrum价值观和遵守其游戏规则l组织每天的Daily Scrum会议l负责保证Scrum Team的持续进展l决策和免除障碍l帮助Scrum Team规划Sprint计划 三个角色3、团队成员(Team Member):即项目开发人员。l自我管理,自我组织,多功能,通常由6 10人组成l负责将Product Backlog转化成Sprint中的工作项目l所有团队成员协调,合作和完成Sprint中每一个规定的工作l所有团队成员和Scrum Master负责每一个Sprint的成功Scrum开发团队的组成l自我管理,自我组织,多功能,通常由6 10人组成l负责将Product Backlog转化成Sprint中的工作项目l所有团队成员协调,合作和完成Sprint中每一个规定的工作l所有团队成员和Scrum Master负责每一个Sprint的成功四个仪式Sprint计划会议四个仪式每日站立会议开发团队成员召开,一般为15分钟。所有成员必须参加,每个人给全体成员汇报工作进展。更新燃尽图。每个开发成员需要向ScrumMaster汇报三个项目:l 今天完成了什么?l 遇到了障碍无法继续下去?l 明天要做什么?通过该会议,团队成员可以相互了解项目进度。四个仪式每日站立会议四个仪式Sprint评审会议Sprint评审会用来演示在这个Sprint中开发的产品功能给Product Owner.Produc Owner会组织这阶段的会议并且邀请相关的干系人参加。团队展示Sprint中完成的功能 一般是通过现场演示的方式展现功能和架构 不要太正式不需要PPT一般控制在2个小时 团队成员都要参加 可以邀请所有人参加四个仪式Sprint回顾会议团队的定期自我检视,发现什么是好的,什么是不好的。一般控制在15-30分钟 每个Sprint都要做 全体参加Scrum Master产品负责人团队可能的客户或其它干系人Sprint回顾会议上,全体成员讨论有哪些好的做法可以启动,哪些不好的做法不能再继续下去了,哪些好的做法要继续发扬。补充定义Sprintl 一次跌代开发的时间周期,一般最多以30天为 一个周期l 在这段时间内,开发团队需要完成一个制定的backlog,产品的设计、开发、测试都在Sprint期间 完成。l Sprint结束时交付可以工作的软件。三个物件产品Backlog一个需求的列表:一般情况使用用户故事来表示backlog条目 理想情况每个需求项都对产品的客户或用户有价值 Backlog条目按照商业价值排列优先级 优先级由产品负责人来排列 在每个Sprint结束的时候要更新优先级的排列三个物件Sprint Backlogl 将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。l 团队成员自己挑选任务,而不是指派任务。l 每个团队成员都可以修改Sprint backlog,增加、删除或者修改任务。三个物件燃尽图燃尽图直观的反映了Sprint过程中,剩余的工作量情况,Y轴表示剩余的工作,X轴表示Sprint的时间。随着时间的消耗工作量逐渐减少,在开始的时候,由于估算上的误差或者遗漏工作量有可能呈上升态势。Scrum过程简要图如何较好的实施敏捷软件开发l团队成员需要全心投入,积极参入相关的过程。l时间预留,为迭代过程中突发事件和估算时间不准确的任务预期完成时间。l工作时间估算精确,避免占用过多的预留时间和在团队协作方面带来延迟。l团队成员间的相互协作和信任。l即时、有效的沟通。l问题即时暴露和即时解决,不要积压问题。l任务跟踪。l软件开发人员需要对任务负责,对任务完成的目标严格要求。l团队需要良好的领导力和凝聚力。

    注意事项

    本文(敏捷软件开发方法(xp、scrum).pptx)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开