


单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,‹#›,敏捷开发,什么是敏捷开发?一种以人为核心、迭代、循序渐进的开发方法在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态敏捷开发什么是敏捷开发?一种以人为核心、迭代、循序渐进的开发,1,主要的敏捷方法,,(,1,)极限编程(,XP,),-,后面介绍 (,2,)水晶方法(,Crystal,)(,3,)动态系统开发方法(,DSDM,) (,4,)特征驱动的软件开发(,FDD,) 自适应软件开发(,ASD,),SCRUM,方法,……,主要的敏捷方法 (1)极限编程(XP)-后面介绍 (2,2,Extreme Programming,(极限编程,简称,XP,),XP,是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法它的四大价值观是,沟通、简单 、反馈和勇气,即,:,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。
XP,是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程Extreme Programming(极限编程,简称XP),3,四大价值,:沟通、简单、反馈、勇气1,沟通要学习如何说话要多发私人,email,一些有意义的实践:单元测试,结对编程,任务估算2,简单只做当前需要的事情只写当前必须的代码,3,反馈单元测试,得到系统的反馈;估算任务,得到客户的反馈;等等,4,勇气敢于对代码做大手术;用于放弃很烂的代码四大价值:沟通、简单、反馈、勇气4,,五个原则,,快速反馈、简单性假设、制造增量式的变化、包容变化、质保工作五个原则 快速反馈、简单性假设、制造增量式的变化、包容变化,5,12,条手段来保证达到目标:,1,、通过客户、开发人员、经理三方共同参加的计划游戏(,planning game,)来确定开发计划,2,、小版本发布,----,尽快发布,尽早发布,3,、通过系统隐喻(,metaphor),来让每个人了解整个系统,4,、简单设计,----,为明确的功能进行最优的设计,不考虑未来可能需要的功能。
5,、重构(,refactoring,),---,不断优化系统设计,使之保持简单,6,、单元测试,----,先写测试,后写代码,7,、双人编程,(pair programming)----,系统的每一行代码都是,2,个人用一个键盘完成的8,、代码集体拥有,--,开发队伍中任何人可以修改任何其他人的代码,代码不属于某个个人9,、持续集成,----,至少每天将整个系统集成一次,保持一个能运转的系统10,、,40,小时工作制,----,保证休息,保持体力,11,、现场客户,----,客户自己也是软件开发队伍的重要一份子,12,、编码标准,----,必须有统一的编码规范,确保代码的可读性,12条手段来保证达到目标:1、通过客户、开发人员、经理三方共,6,极限编程实践,完整团队,,XP,项目的所有参与者(开发人员、业务分析师、测试人员等等)一起工作在一个开放的场所中,他们是同一个团队的成员这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西极限编程实践完整团队,7,计划游戏,计划是持续的、循序渐进的每,2,周,开发人员就为下,2,周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。
客户测试,作为选择每个所期望的特性的一部分,客户定义出自动验收测试来表明该特性可以工作简单设计,团队保持设计恰好和当前的系统功能相匹配它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码计划游戏,8,结对编程,所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的测试驱动开发,程序员以非常短的循环周期工作,他们先增加一个失败的测试,然后使之通过改进设计,随时改进糟糕的代码保持代码尽可能的干净、具有表达力持续集成,团队总是使系统完整地被集成结对编程,9,集体代码所有权,任何结对的程序员都可以在任何时候改进任何代码编码标准,系统中所有的代码看起来就好像是被单独一个,——,非常值得胜任的,——,人编写的隐喻,团队提出一个程序工作原理的公共景像可持续的速度,团队只有持久才有获胜的希望他们以能够长期维持的速度努力工作他们保存精力,他们把项目看作是马拉松长跑,而不是全速短跑集体代码所有权,10,极限编程的核心思想,从长远看,早期发现错误以及降低复杂度可以节约成本极限编程强调我们将任务,/,系统细分为可以在较短周期解决的一个个子任务,/,模块,并且强调测试、代码质量和及早发现问题。
通常,通过一个个短小的迭代周期,我们就可以获得一个个阶段性的进展,并且可以及时形成一个版本供用户参考,以便及时对用户可能的需求变更作出响应极限编程的核心思想从长远看,早期发现错误以及降低复杂度可以节,11,,●,极限编程,(XP),包含了策划、设计、编程和测试四个活动,其十二个最佳实践中的“持续集成”实践在,(30),,活动中进行30)A.,策划和设计,B.,设计和编程,C.,设计和测试,D.,编程和测试,,,D,● 极限编程(XP)包含了策划、设计、编程和测试四个活动,其,12,C,C,13,统一过程,(UP),统一过程模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架Rational Unified Process,是软件工程的过程它提供了在开发组织中分派任务和责任的纪律化方法它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品统一过程(UP)统一过程模型是一种“用例驱动,以体系结构为核,14,统一过程,UP,中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段,(Inception),、细化阶段,(Elaboration),、构造阶段,(Construction),和交付阶段,(Transition),。
每个阶段结束于一个主要的里程碑,(Major Milestones),;每个阶段本质上是两个里程碑之间的时间跨度在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足如果评估结果令人满意的话,可以允许项目进入下一个阶段统一过程UP中的软件生命周期在时间上被分解为四个顺序的阶段,,15,,初始阶段结束时是第一个重要的里程碑:,生命周期目标,(Lifecycle Objective),里程碑细化阶段结束时第二个重要的里程碑:,生命周期结构,(Lifecycle Architecture),里程碑构建阶段结束时是第三个重要的里程碑:,初始功能,(Initial Operational),里程碑在交付阶段的终点是第四个里程碑:,产品发布,(Product Release),里程碑初始阶段结束时是第一个重要的里程碑:,16,,● RUP(Rational Unified Process),分为,4,个阶段,每个阶段结束时都有重要的里程碑,其中生命周期架构是在,(18),,结束时的里程碑18)A.,初启阶段,B.,精化阶段,,C.,构建阶段,D.,移交阶段,B,● RUP(Rational Unified Process,17,,A,A,18,,UP(,统一过程,),是用例驱动的、以架构为核心、迭代和增量的软件过程框架,它提供了一种,(32),,的特性。
32)A.,演进,B.,敏捷,C.,测试驱动,D.,持续集成,A,UP(统一过程)是用例驱动的、以架构为核心、迭代和增量的软件,19,。