敏捷开发方法课件.ppt

上传人:石*** 文档编号:84343348 上传时间:2023-04-04 格式:PPT 页数:40 大小:1.79MB
返回 下载 相关 举报
敏捷开发方法课件.ppt_第1页
第1页 / 共40页
敏捷开发方法课件.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《敏捷开发方法课件.ppt》由会员分享,可在线阅读,更多相关《敏捷开发方法课件.ppt(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、敏捷开发方法第1页,此课件共40页哦第7章 敏捷开发方法l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程第2页,此课件共40页哦第一节敏捷开发方法的核心思想第一节敏捷开发方法的核心思想l敏捷软件开发方法的思想是现代管理理敏捷软件开发方法的思想是现代管理理念的延伸,其核心是念的延伸,其核心是以人为本,发挥人以人为本,发挥人的主观能动性。的主观能动性。l敏捷软件开发方法认为,对项目最重要敏捷软件开发方法认为,对项目最重要的影响因素是人,而不是过程和技术。的影响因素是人,而不是过程和技术。不能把人员当做由过程驱

2、动的不能把人员当做由过程驱动的“可插拔可插拔替换的编程单元替换的编程单元”,而要发挥人的能动,而要发挥人的能动性,建立紧密协作的、自组织的团队。性,建立紧密协作的、自组织的团队。第3页,此课件共40页哦l以过程为核心(而不是以人为核心)的软件组织为了以过程为核心(而不是以人为核心)的软件组织为了少犯错误,保证项目成功,而从项目开发经验中总结少犯错误,保证项目成功,而从项目开发经验中总结和定义了许多过程,用于约束开发行为,避免重复相和定义了许多过程,用于约束开发行为,避免重复相同的错误。由于项目的复杂性和多样性,这种过程定同的错误。由于项目的复杂性和多样性,这种过程定义会越来越多,最终形成一个庞

3、大的、笨重的过程集义会越来越多,最终形成一个庞大的、笨重的过程集合,这样的过程集合会降低开发效率和产品质量,增合,这样的过程集合会降低开发效率和产品质量,增加开发成本。加开发成本。第4页,此课件共40页哦敏捷软件开发宣言敏捷软件开发宣言 我们正在通过亲身实践以及帮助他人实践,揭示更我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:好的软件开发方法。通过这项工作,我们认为:人和交互人和交互 重于重于 过程和工具过程和工具 可以工作的软件可以工作的软件 重于重于 面面俱到的文档面面俱到的文档 客户合作客户合作 重于重于 合同谈判合同谈判 随时应对变化随时应对变化

4、 重于重于 遵循计划遵循计划 虽然右项也有其价值,但我们认为左项更加重虽然右项也有其价值,但我们认为左项更加重要。要。第5页,此课件共40页哦人和交互重于过程和工具人和交互重于过程和工具l只有好的过程而缺乏合格的人员,不能保证项目不失只有好的过程而缺乏合格的人员,不能保证项目不失败。败。l优秀的人员不一定是顶尖的技术人才,但一定能和其优秀的人员不一定是顶尖的技术人才,但一定能和其它人员良好地协作。它人员良好地协作。l拥有一般的技术人才,但能够有效沟通、紧密协拥有一般的技术人才,但能够有效沟通、紧密协作的团队比那种虽拥有技术精英,但不能有效沟作的团队比那种虽拥有技术精英,但不能有效沟通的团队更有

5、可能取得成功。通的团队更有可能取得成功。第6页,此课件共40页哦l工具虽然重要,但那种最先进的、大而复杂的工工具虽然重要,但那种最先进的、大而复杂的工具不一定适合组织的需要,而且可能会给组织带具不一定适合组织的需要,而且可能会给组织带来负面影响。来负面影响。l先尝试小而灵便的工具。先尝试小而灵便的工具。l首先要致力于建立团队,然后让团队根据自己的首先要致力于建立团队,然后让团队根据自己的需要配置工具环境。需要配置工具环境。人和交互重于过程和工具人和交互重于过程和工具第7页,此课件共40页哦可以工作的软件重于面面俱到的文档可以工作的软件重于面面俱到的文档l过多的文档会带来许多负面影响。需花费许多

6、资源来过多的文档会带来许多负面影响。需花费许多资源来产生这些文档并保持它们之间的一致性(特别是文档产生这些文档并保持它们之间的一致性(特别是文档与编码之间的一致性)。如果不一致,文档将成为产与编码之间的一致性)。如果不一致,文档将成为产生混乱的根源。生混乱的根源。l应该书写一些文档来描述系统的基本结构和原理,但应该书写一些文档来描述系统的基本结构和原理,但文档一定要短而精炼,只用来描述总体设计原理和最文档一定要短而精炼,只用来描述总体设计原理和最高层次的系统结构。高层次的系统结构。l代码已包含了最丰富的、且无歧义的系统信息。代码已包含了最丰富的、且无歧义的系统信息。第8页,此课件共40页哦l当

7、有新的成员加入项目团队,通过与他不断地交流和当有新的成员加入项目团队,通过与他不断地交流和密切地合作来使他熟悉当前项目,而不是让他阅读大密切地合作来使他熟悉当前项目,而不是让他阅读大量文档。量文档。l不要去产生文档,除非有紧迫而明显的需求。不要去产生文档,除非有紧迫而明显的需求。可以工作的软件重于面面俱到的文档可以工作的软件重于面面俱到的文档第9页,此课件共40页哦客户合作重于合同谈判客户合作重于合同谈判l软件项目的成功依赖于客户频繁的反馈,而不是依赖软件项目的成功依赖于客户频繁的反馈,而不是依赖于与客户达成的合同或协议。于与客户达成的合同或协议。l合同中所规定的需求、进度和成本很容易变得没合

8、同中所规定的需求、进度和成本很容易变得没有意义,因为项目处在持续不断的变化中。有意义,因为项目处在持续不断的变化中。l客户必须每天与开发团队一起工作,对开发团队的工客户必须每天与开发团队一起工作,对开发团队的工作及时提供反馈。作及时提供反馈。第10页,此课件共40页哦随时应对变化重于遵循计划随时应对变化重于遵循计划l由于项目中存在很多不确定因素,应对变化的能力常由于项目中存在很多不确定因素,应对变化的能力常常决定了项目的成败。常决定了项目的成败。l计划必须是灵活的,能够适应业务和技术的变化。计划必须是灵活的,能够适应业务和技术的变化。l一个比较好的计划策略是:对未来两星期的工作制定一个比较好的

9、计划策略是:对未来两星期的工作制定详细的计划;对未来详细的计划;对未来3个月的工作制定很粗略的计划;个月的工作制定很粗略的计划;对更远的时间段,则制定最初级的计划。对更远的时间段,则制定最初级的计划。第11页,此课件共40页哦第7章 敏捷开发方法l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程第12页,此课件共40页哦第二节第二节 敏捷开发方法的原则敏捷开发方法的原则l由敏捷软件开发宣言的思想衍生出敏捷软件开发由敏捷软件开发宣言的思想衍生出敏捷软件开发的的12条原则。条原则。(1)我们最优先要做的是通过尽

10、早地、持续地交付有我们最优先要做的是通过尽早地、持续地交付有价值的软件来满足客户的需要。价值的软件来满足客户的需要。w有统计数字表明,越早、越频繁地向用户交有统计数字表明,越早、越频繁地向用户交付软件,软件的质量就越好。付软件,软件的质量就越好。w敏捷开发方法力求项目开始几周后,就向用敏捷开发方法力求项目开始几周后,就向用户交付一个最初的系统,以后每隔两周就交户交付一个最初的系统,以后每隔两周就交付一个增加了功能的系统。付一个增加了功能的系统。第13页,此课件共40页哦w对于每次交付的软件,客户可以将其投入应对于每次交付的软件,客户可以将其投入应用,如果软件的功能还不足以满足应用的需用,如果软

11、件的功能还不足以满足应用的需要,就只对其进行审查,并提出修改意见。要,就只对其进行审查,并提出修改意见。敏捷原则敏捷原则第14页,此课件共40页哦敏捷原则敏捷原则(2)欢迎需求的变化,即使到了开发的后期。敏捷过程欢迎需求的变化,即使到了开发的后期。敏捷过程能够驾驭变化,为客户创造竞争优势。能够驾驭变化,为客户创造竞争优势。w使用敏捷过程的开发组织欢迎需求的变化,使用敏捷过程的开发组织欢迎需求的变化,因为他们认为需求变化可以让它们更多地了因为他们认为需求变化可以让它们更多地了解市场。解市场。w敏捷开发组织采用各种方法和技术,使软件敏捷开发组织采用各种方法和技术,使软件的结构高度灵活,需求的变化对

12、系统的影响的结构高度灵活,需求的变化对系统的影响被最小化。被最小化。第15页,此课件共40页哦敏捷原则敏捷原则(3)频繁交付可以工作的软件,从几个星期到几个频繁交付可以工作的软件,从几个星期到几个月,时间越短越好。月,时间越短越好。w敏捷开发组织不满足于交付文档和计划,他敏捷开发组织不满足于交付文档和计划,他们的目标是频繁地交付可以工作的软件,从们的目标是频繁地交付可以工作的软件,从而满足客户的需要。而满足客户的需要。第16页,此课件共40页哦(4)在整个项目开发期间,业务人员和开发人员必在整个项目开发期间,业务人员和开发人员必须每天工作在一起。须每天工作在一起。w软件项目必须被不断地调整和引

13、导,这要求软件项目必须被不断地调整和引导,这要求用户、开发者和其他利益干系人要频繁地交用户、开发者和其他利益干系人要频繁地交流。流。敏捷原则敏捷原则第17页,此课件共40页哦敏捷原则敏捷原则(5)围绕斗志高昂的人构建项目,给他们提供所需的围绕斗志高昂的人构建项目,给他们提供所需的环境和支持,并且信任他们能够完成任务。环境和支持,并且信任他们能够完成任务。w在一个敏捷项目中,人员被认为是最重要的在一个敏捷项目中,人员被认为是最重要的因素,其它所有因素(过程、环境、管理等)因素,其它所有因素(过程、环境、管理等)都被认为是次要的,当这些因素对人员造成都被认为是次要的,当这些因素对人员造成不利影响时

14、,就必须对其做出改变。不利影响时,就必须对其做出改变。w例如,如果某些过程步骤对团队人员来说是例如,如果某些过程步骤对团队人员来说是个障碍,那么过程就必须改变。个障碍,那么过程就必须改变。第18页,此课件共40页哦(6)在团队内部,最有效率和最有效果的信息传在团队内部,最有效率和最有效果的信息传达方式就是面对面的交流。达方式就是面对面的交流。w在敏捷项目中,主要的交流方式就是交谈。在敏捷项目中,主要的交流方式就是交谈。文档在必要的时候会被创建,但不会试图用文档在必要的时候会被创建,但不会试图用文档来捕获所有项目信息。文档来捕获所有项目信息。w在敏捷项目组中,默认的交流方式是交谈,在敏捷项目组中

15、,默认的交流方式是交谈,而不是文档。而不是文档。敏捷原则敏捷原则第19页,此课件共40页哦(7)可以工作的软件是进度的主要度量标准。可以工作的软件是进度的主要度量标准。w对于敏捷项目来说,进度的度量标准是当前对于敏捷项目来说,进度的度量标准是当前可满足用户需求的软件的量,而不是当前项可满足用户需求的软件的量,而不是当前项目所处的阶段、文档数量或基础代码的数量。目所处的阶段、文档数量或基础代码的数量。w项目完成了项目完成了30%的含义是的含义是30%的用户所需功的用户所需功能已被实现。能已被实现。敏捷原则敏捷原则第20页,此课件共40页哦(8)敏捷过程提倡可持续开发。出资人、开发者和用敏捷过程提

16、倡可持续开发。出资人、开发者和用户应该共同维持一个稳定的开发速度。户应该共同维持一个稳定的开发速度。w敏捷小组会在整个项目开发期间保持一个适敏捷小组会在整个项目开发期间保持一个适当的、可持续的开发速度,从而维持最高的当的、可持续的开发速度,从而维持最高的质量标准。敏捷项目不会使开发者感到疲惫质量标准。敏捷项目不会使开发者感到疲惫不堪。不堪。敏捷原则敏捷原则第21页,此课件共40页哦(9)对卓越技术和良好设计的不断追求有助于提高敏对卓越技术和良好设计的不断追求有助于提高敏捷性。捷性。w敏捷开发团队认为提高质量会加快开发进度。敏捷开发团队认为提高质量会加快开发进度。因此要保持软件的精简和健壮。因此

17、要保持软件的精简和健壮。w敏捷开发团队的每个成员都要致力于开发高敏捷开发团队的每个成员都要致力于开发高质量的代码,不能把混乱的、底质量的代码质量的代码,不能把混乱的、底质量的代码留到以后去修改。留到以后去修改。敏捷原则敏捷原则第22页,此课件共40页哦(10)简单简单尽量减少工作量的艺术是至关重要尽量减少工作量的艺术是至关重要的。的。w敏捷开发方法总是选择达到目标的最简单途敏捷开发方法总是选择达到目标的最简单途径。径。w敏捷开发团队并不花费大量精力去预防将来敏捷开发团队并不花费大量精力去预防将来可能出现的问题,而是专注于对当前工作采可能出现的问题,而是专注于对当前工作采用最简单、最高质量的解决

18、方案,并相信将用最简单、最高质量的解决方案,并相信将来如果问题出现,可以很方便地进行修改。来如果问题出现,可以很方便地进行修改。敏捷原则敏捷原则第23页,此课件共40页哦(11)最好的架构、需求和设计都出自于自组织的团队。最好的架构、需求和设计都出自于自组织的团队。w敏捷开发团队是自组织的团队。职责并非是敏捷开发团队是自组织的团队。职责并非是从团队外部加给每一个团队成员,而是团队从团队外部加给每一个团队成员,而是团队作为一个整体接受职责并自己决定怎样去完作为一个整体接受职责并自己决定怎样去完成它。成它。w敏捷开发团队成员在项目的各个方面(架构、敏捷开发团队成员在项目的各个方面(架构、需求、测试

19、等)都是共同负责的,不会出现需求、测试等)都是共同负责的,不会出现某一人单独负责一方面任务的情况。某一人单独负责一方面任务的情况。敏捷原则敏捷原则第24页,此课件共40页哦(12)每隔一定时间,团队都要总结怎样更有效率地每隔一定时间,团队都要总结怎样更有效率地工作,然后相应地调整自己的行为。工作,然后相应地调整自己的行为。w敏捷开发团队认识到环境在不断地改变,因敏捷开发团队认识到环境在不断地改变,因此团队也需要不断地对组织、规则、惯例和此团队也需要不断地对组织、规则、惯例和各种关系进行调整,以保持自身的敏捷性。各种关系进行调整,以保持自身的敏捷性。敏捷原则敏捷原则第25页,此课件共40页哦第7

20、章 敏捷开发方法l敏捷开发方法的核心思想敏捷开发方法的核心思想l敏捷开发方法的原则敏捷开发方法的原则l敏捷开发方法的代表敏捷开发方法的代表极限编程极限编程第26页,此课件共40页哦第三节第三节 极限编程极限编程l符合敏捷软件开发思想和原则的具体实践方法有多符合敏捷软件开发思想和原则的具体实践方法有多种,如极限编程(种,如极限编程(XP)、)、Scrum、Crystal Methods、FDD等。等。l极限编程极限编程(Extreme Programming,XP)是最著)是最著名的敏捷开发方法,它由一系列简单的、互相依名的敏捷开发方法,它由一系列简单的、互相依赖的最佳实践组成。赖的最佳实践组成

21、。lKent Beck所著所著解析极限编程解析极限编程拥抱变化拥抱变化系统地介绍了极限编程。系统地介绍了极限编程。第27页,此课件共40页哦客户也是开发团队成员客户也是开发团队成员l客户作为开发团队的成员,让提出需求的人们与客户作为开发团队的成员,让提出需求的人们与开发这些需求的人们直接沟通,减少浪费。开发这些需求的人们直接沟通,减少浪费。l完整的团队就意味着有客户参与。如果没有客户或真完整的团队就意味着有客户参与。如果没有客户或真实客户实客户“代理代理”的参与,开发的功能可能不被使用,的参与,开发的功能可能不被使用,书写的测试也可能不能反映真实的客户验收标准,这书写的测试也可能不能反映真实的

22、客户验收标准,这些都将导致浪费。些都将导致浪费。第28页,此课件共40页哦短交付周期短交付周期lXP项目每两周向客户交付一次软件,所交付的软件项目每两周向客户交付一次软件,所交付的软件涉及客户的一部分需求,客户要及时作出反馈。涉及客户的一部分需求,客户要及时作出反馈。l为了实现短交付周期,项目组需要制定迭代计划和发为了实现短交付周期,项目组需要制定迭代计划和发布计划。布计划。l两周为一个迭代周期,迭代代表向用户的一次产两周为一个迭代周期,迭代代表向用户的一次产品交付,是用户所需功能的一个集合。六个迭代品交付,是用户所需功能的一个集合。六个迭代(约三个月时间)形成一个发布(约三个月时间)形成一个

23、发布(Release),发),发布是一个主要的产品交付,会被集成到最终产品布是一个主要的产品交付,会被集成到最终产品中。中。第29页,此课件共40页哦l项目组必须为每次迭代和发布制定预算。用户根据预项目组必须为每次迭代和发布制定预算。用户根据预算来选择迭代和发布中所包含的功能。算来选择迭代和发布中所包含的功能。短交付周期短交付周期第30页,此课件共40页哦结对编程结对编程l两个程序员用一台电脑一起工作,其中一人操作键盘,两个程序员用一台电脑一起工作,其中一人操作键盘,输入程序,另一人与他密切交流,检查错误和需要改输入程序,另一人与他密切交流,检查错误和需要改进的地方。两人的角色频繁互换。进的地

24、方。两人的角色频繁互换。l所编写的代码由两人共同负责。所编写的代码由两人共同负责。l经常地更换搭档,每个程序员至少每天更换一次搭经常地更换搭档,每个程序员至少每天更换一次搭档,这样当一个迭代结束后,每个程序员都与小组档,这样当一个迭代结束后,每个程序员都与小组中所有其它程序员配过对,工作涉及到本次迭代的中所有其它程序员配过对,工作涉及到本次迭代的所有内容。所有内容。第31页,此课件共40页哦l结对编程能够极大地促进知识在团队中的传播,没有结对编程能够极大地促进知识在团队中的传播,没有任何一个程序模块由单独一人完成,这样就保证了任任何一个程序模块由单独一人完成,这样就保证了任何人的工作在必要时都

25、可由其他人代替完成。何人的工作在必要时都可由其他人代替完成。l结对编程使结对的双方都专注于任务,互相启发,结对编程使结对的双方都专注于任务,互相启发,理清思路,共同讨论解决难题。理清思路,共同讨论解决难题。l经验证明,结对编程没有降低开发团队的效率,而经验证明,结对编程没有降低开发团队的效率,而且大幅度地减小了缺陷率。且大幅度地减小了缺陷率。结对编程结对编程第32页,此课件共40页哦集体所有权集体所有权l代码归集体所有,团队中的所有成员都有权访问和改代码归集体所有,团队中的所有成员都有权访问和改进项目的所有模块代码。进项目的所有模块代码。l没有一个人单独负责某一模块或技术。没有一个人单独负责某

26、一模块或技术。l集体所有权可促进交流,增强团队凝聚力和发挥集体所有权可促进交流,增强团队凝聚力和发挥集体创造力。集体创造力。第33页,此课件共40页哦可持续的开发速度可持续的开发速度l软件项目不是短跑,而是马拉松,它需要一个可软件项目不是短跑,而是马拉松,它需要一个可持续的速度,能够保持能量和敏锐性。持续的速度,能够保持能量和敏锐性。l极限编程的一个原则是极限编程的一个原则是“不要加班不要加班”,但也有例外,但也有例外,即在一个发布周期的最后一周加班是允许的,因为即在一个发布周期的最后一周加班是允许的,因为这时可能需要加速以达到发布目标。这时可能需要加速以达到发布目标。第34页,此课件共40页

27、哦开放工作空间开放工作空间l开发小组在一个大的办公区域中一同工作,每个开发小组在一个大的办公区域中一同工作,每个桌子上放两到三台电脑,墙上可以张贴状态图、桌子上放两到三台电脑,墙上可以张贴状态图、任务分解图等各种图表。任务分解图等各种图表。l这样的工作环境便于交流,每个人员都可以及时了解这样的工作环境便于交流,每个人员都可以及时了解到小组其他人员的工作状态,知道他们是否遇到了麻到小组其他人员的工作状态,知道他们是否遇到了麻烦。烦。第35页,此课件共40页哦计划游戏计划游戏lXP项目计划的主导思想是将业务责任和开发责项目计划的主导思想是将业务责任和开发责任相分离。业务人员(客户)确定哪些产品特征

28、任相分离。业务人员(客户)确定哪些产品特征是重要的,开发人员确定实现这些特征需花费多是重要的,开发人员确定实现这些特征需花费多少成本。少成本。l在每个迭代或发布周期的开始,开发人员交给客在每个迭代或发布周期的开始,开发人员交给客户一个预算,说明在该迭代或发布周期中能够完户一个预算,说明在该迭代或发布周期中能够完成多少工作,客户根据这个预算选择需实现哪些成多少工作,客户根据这个预算选择需实现哪些产品功能。产品功能。第36页,此课件共40页哦持续集成持续集成l不超过两个小时就对改变的地方进行一次集成和不超过两个小时就对改变的地方进行一次集成和测试。团队编程并不是单纯的分而治之,而是分测试。团队编程

29、并不是单纯的分而治之,而是分散、解决问题然后集成。散、解决问题然后集成。l集成过程是不可预知的,很容易花费比原先编程集成过程是不可预知的,很容易花费比原先编程更多的时间。等待集成的时间越长,代价就越高,更多的时间。等待集成的时间越长,代价就越高,集成过程就越不可预知。集成过程就越不可预知。第37页,此课件共40页哦l敏捷开发方法是针对传统的重量级开发方法的缺敏捷开发方法是针对传统的重量级开发方法的缺点而提出的,但它并没有全盘否定重量级开发方点而提出的,但它并没有全盘否定重量级开发方法。法。l两种方法不是谁取代谁的关系,它们互相吸取对方两种方法不是谁取代谁的关系,它们互相吸取对方的长处,将长期并存。的长处,将长期并存。l软件组织应根据团队和项目的实际情况从两种方软件组织应根据团队和项目的实际情况从两种方法中提取所需要的技术和方法,灵活应用。法中提取所需要的技术和方法,灵活应用。第38页,此课件共40页哦本章小结l理解敏捷开发方法的核心思想理解敏捷开发方法的核心思想敏捷宣言敏捷宣言l理解敏捷开发方法的原则理解敏捷开发方法的原则l理解极限编程的最佳实践理解极限编程的最佳实践第39页,此课件共40页哦作业题l请阐述敏捷开发方法的核心思想。请阐述敏捷开发方法的核心思想。l什么是什么是“结对编程结对编程”?使用结对编程有哪些好处?使用结对编程有哪些好处?第40页,此课件共40页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com