敏捷开发概念及实践ppt课件.pptx
《敏捷开发概念及实践ppt课件.pptx》由会员分享,可在线阅读,更多相关《敏捷开发概念及实践ppt课件.pptx(44页珍藏版)》请在三一办公上搜索。
1、目录,敏捷开发历史软件开发模式介绍软件生命周期模式敏捷开发介绍敏捷开发-SCRUM名词解释敏捷开发-实施Scrum的过程介绍敏捷开发-原则和方法敏捷开发-宣言敏捷开发-最佳实践,敏捷开发历史,敏捷开发并不现代起源于20世纪30年代的一些项目(美国航天局水星计划)最早记载使用在20世纪70年代最早的有记载的使用迭代和增量开发的主要项目之一,是为第一艘美国三叉戟潜艇开发的第一指挥和控制系统。该项目有大约一百万行代码,进行得非常成功。在1976年,第一部阐述敏捷方法的书籍Tom Gilb在他的著作软件度量(“Software Metrics”)一书中阐述了他的迭代和增量开发实践20世纪80年代正式定
2、义迭代开发螺旋模型20世纪80年代在1895年,巴里贝母(Barry Boehm)正式定义了使用迭代开发的螺旋模型,敏捷开发历史,美国国防部的项目审查早期使用瀑布模式开发的软件项目,有75%以失败告终,有些开发出来的产品根本没有被使用过,只有2%的软件产品无需大量修改就能被正常使用。20世纪90年代推荐使用迭代和增量开发的出版物和文献显著增加2001年二月敏捷开发宣言后形成敏捷联盟一组由17位在DSDM,XP,Scrum,FSD等领域的专家组成的代表团齐聚美国犹他州,寻找这些方法的共同点。最终,这些专家制定并宣布了敏捷开发宣言。由此形成了现在我们所认识的敏捷开发和后来的敏捷联盟,为什么要敏捷开
3、发-项目为什么失败,为什么要敏捷开发-软件工程应用现状,为什么要敏捷开发-需要敏捷的理由,软件开发模式介绍,软件生命周期-同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、 -衰亡等阶段,这一般称为软件生命周期。-软件开发生命周期(SDLC)是指软件开发的全部过程、活动和任务的结构框架。SDLC的一般步骤包括:确定问题、可行性分析与开发计划、收集需求、分析与设计、编码开发、测试、安装、维护。软件生命周期模式典型的几种生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、喷泉模式和混合模式等。在这里只介绍其中最常用的几种模式:,软件生命周期模式,瀑布式它首先是由Roy
4、ce提出,该模式由于酷似瀑布闻名。在该模式中首先确定需求,然后拟定规格说明,在通过验证后方可进入计划阶段。因此,瀑布模式中至关重要的一点是只有当一个阶段的文档获得认可才可以进入下一个阶段。瀑布模式通过强制性规约来确保每个阶段都能很好的完成任务,但是实际上却往往难以办到。因为整个瀑布模式几乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。虽然瀑布模式有很多很好的思想可以借鉴,但是在过程能力上有天生的缺陷。演化模式它主要是针对事先不能完整定义需求的软件开发。它的方法是用户先给出待开发系统的核心需求,并且在核心需求实现后,再提出反馈以支持系统的最终设计和实现。也就是说:开发人员首先会根据
5、用户的需求开发核心系统,然后提供给用户试用;用户试用后再提出增强系统能力的需求;最后开发人员再根据用户的反馈,实施迭代开发。实际上,这个模式可看作是重复执行的多个瀑布模式。演化模式要求开发人员把项目的产品需求分解为不同组,以便分批循环开发。但这种分组并不是随意性的,而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断。,软件生命周期模式,螺旋模式:它是瀑布模式与演化模式相结合,并加入两者所忽略的风险分析所建立的一种软件开发模式。螺旋模式基本的做法是在瀑布模式的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制。直到采取了消除风险的措施之后,才开始计划下一阶段的开发工作。否则
6、,项目就很可能被暂停。另外,如果有充足的把握判断遗留的风险已降低到一定的程度,项目管理人员还可作出决定让余下的开发工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。过程开发模式:它又叫混合模式或元模式,是指把几种不同模式组合成一种混合模式,它允许一个项目能沿着最有效的路径发展。因为上述的模式中都有自己独特的思想,现在的软件开发团队中很少说标准的采用那一种模式的,因为模式和实际应用还是有很大的区别的。实际上,许多软件开发团队都是在使用几种不同的开发方法组成他们自己的混合模式。,软件生命周期模式-总结,最后,我们来总结一下。螺旋模式是典型的迭代式生命周期模式,而RUP则是近代迭代式
7、生命周期的代表。与螺旋模式相比,RUP将风险管理放在更重要的地位。最新的迭代式生命周期模式的代表是模式驱动架构(MDA)和敏捷(Agile)软件开发。MDA模式是基于可执行规格说明的思想,是现代转换模式的代表,其核心技术是组件技术。而敏捷开发生命周期的典型代表是XP编程,是把传统的系统设计和实现由敏捷软件开发过程中的验收测试、重构和测试驱动所取代;把传统的集成和部署由敏捷软件开发中的持续集成和短周期所取代。其实上,无论是瀑布开发模式还是螺旋开发模式,软件生命周期模式的发展实际上是体现了软件工程理论的发展。在最早的时候,软件的生命周期处于无序、混乱的情况。一些人为了能够管理和控制软件的开发过程,
8、就把软件开发严格的区分为多个不同的阶段,并在阶段间加上严格的审查,这就是软件开发模式产生的起因。它们体现了人们对软件过程的一个希望:严格控制、确保质量。,敏捷开发介绍,敏捷开发(agile development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。捷开发由几种轻量级的软件开发方法组成。它们包括:极限编程(XP),Scrum,精益开发(Lean Development),动态系
9、统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Cristal Clear)等等,XP -eXtreme Programing极限编程:思想源自Kent Beck和Ward Cunningham在软件项目中的合作经历。SCRUM:是一种迭代的增量化过程,用于产品开发或工作管理 。水晶方法Crystal:由Alistair Cockburn在1990年代末提出。把不同类型的项目采用不同的方法。 FDD特性驱动 Feature Driven Development,由Peter Coad、Jeff de Luca 、Eric Lefebvre
10、共同开发,是一套针对中小型软件开发项目的开发模式。它强调的是简化、实用、 易于被开发团队接受,适用于需求经常变动的项目。 DSDM-Dynamic System Development Methodology,它倡导以业务为核心,快速而有效地进行系统开发, 在英国等欧洲国家比较流行。ASD-Adaptive Software Development,由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性(Adaptive),敏捷开发介绍,敏捷开发的特点,敏捷开发包括很多方法,例如XP和FDD,同重量级的文档驱动的开发过程相比较,敏捷方法在灵活性等方面更有吸引力。这个方法的
11、创始人强调了在软件实践过程中的变更而不是孤立的进行一些实践。很多方法很难独立的使用。如:测试驱动的开发,结对开发,计划调整周期以及持续改进,不过,后来的结果证实,这些方法都取得了成功。使用这些方法并不能保证一定成功。开发者的经验和技术仍旧是影响开发结果的最主要因素。对于合适的人,基于敏捷原则的开发方法可以产生更好的结果,同时形成一个愉快地、有激情的工作环境,敏捷模式理念,最高目标是能持续地、及早地向客户交付软件;拥抱变化;频繁地发布可运行的软件;客户和开发人员在一起工作;以人为本;最重要的衡量开发过程的手段,是可工作的软件;稳定的开发速度;敏捷高效的设计;简单有效;重视Teamwork;积极的
12、调整。,敏捷开发介绍-极限编程XP,主要目的是降低需求变化的成本定义了一套简单的开发流程包括:编写用户案例,架构规范,实施规划,迭代计划,代码开发,单元测试,验收测试等等提倡互动交流、反馈、简单、勇气、团队核心做法:小规模,频繁的版本发布,短迭代周期。测试驱动开发(Test-driven development)。结对编程(Pair programming)。持续集成(Continuous integration)。每日站立会议(Daily stand-up meeting)。共同拥有代码Collative code ownership.系统隐喻(System metaphor)。,敏捷开发介
13、绍-精益,精益开发起源从丰田公司的产品开发方法中演化而来。它主要包括两个部分:一部分是核心思想及原则,另外一部分由一些在相应的工具构成。核心思想查明和消除浪费。在软件开发过程中,错误(bugs),没用的功能,等待以及其他任何对实现结果没有益处的东西都是浪费。浪费及其源头必须被分析查明,然后设法消除。精益开发的原则包括:强调学习。不断改进所开发的产品和开发效率。在最后时刻做决定。避免在可能改变的事情上做无谓的努力,避免浪费。用最快的速度交付用户。缩短迭代周期加速开发及交付,加快交流,提高生产力给团队自主权。激励团队并让团队成员自我管理-敏捷方法成功的基本因素之一。诚信。确保系统正常工作,客户需求
14、是团队努力坚持的诚信和对用户的承诺。全局观。精益开发强调整体优化的系统。无论开发的组织还是被开发的产品, 从整体上考虑优化比从各个局部去优化更高效。 精益软件更重要的是不断完善开发过程的一种思维方式。,SCRUM 开发流程是 Agile Process 的一种,以英式橄榄球争球队形 (Scrum) 为名,基本假设是开发软件就像开发新产品,无法一开始就能定义 Final Product 的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功。 Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作
15、,以高度弹性解决各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此 SCRUM 非常适用于产品开发项目。,敏捷开发介绍-scrum,敏捷开发介绍-scrum,SCRUM 开发流程通常以 30 天为一个迭代周期,每个迭代周期叫做一个Sprint,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于 30 天后交付成果,团队每天用 15 分钟开会检视每个成员的进度与计划,了解所遭遇的困难并设法排除,决定第二天的任务安排 .SCRUM较为有特色的,是它特别强调开发队伍和管理层的交流协作。每天,开发队伍都会向管理层汇报进度,如果有问题,也会向管
16、理层要求帮助解决。,敏捷开发介绍-scrum,SCRUM是一个敏捷开发框架它由一个开发过程,几种角色以及一套规范的实施方法组成。它可以被运用于软件开发,项目维护,也可以被用来作为一种管理敏捷项目的框架。Scrum定义了4种主要的角色:1、产品拥有者(Product Owner):该角色负责产品的远景规划,平衡所有利益相关者(stakeholder)的利益,确定不同的产品需求积压的优先级等。它是开发团队和客户或最终用户之间的联络点。2、利益相关者(Stakeholder):该角色与产品之间有直接或间接的利益关系,通常是客户或最终用户代表。他们负责收集编写产品需求,审查项目成果等。3、Scrum专
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 敏捷 开发 概念 实践 ppt 课件
链接地址:https://www.31ppt.com/p-1333986.html