首页 > 代码库 > 敏捷开发和极限编程

敏捷开发和极限编程

敏捷软件开发(Agile software development):

它是一种用来应对软件需求的不断变更的新的软件开发技术。

强调整个开发过程中业务人员和开发人员紧密协作在一起,面对面交流,频繁性的交付软件,随时应对需求的变更。追求在尽可能短的时间内交付较小的可用的功能,并在整个项目周期中持续改善和增强。

极限编程(Extreme programming,简XP):

极限编程是敏捷开发中最富有成效的几种方法学之一。

XP是一种近螺旋式开发方法,它将复杂的开发过程分解成一个个小的开发周期,对需求分析、设计、编码、测试进行反复迭代。在小的开发周期中通过客户、业务人员和开发人员的积极交流可以非常清楚软件开发过程中现存的问题并进行及时调整。

需求:

把需求分为很多小的模块(功能),客户根据模块的商业价值进行优先级排序,开发人员确定每个模块的风险,保证高风险的模块先被开发,综合评估后将每个模块安排到开发过程中不同的时期。

设计:

XP内层的过程是一个个基于测试驱动的开发周期,即先进行测试再编码。每个开发周期开始都有很多相应的单元测试,最开始因为还未开发所有测试都是失败的,通过需求模块的不断完成,通过的单元测试也越来越多。XP设计的最终目标就是每个简单需求模块写出来的程序都能通过所有相关的单元测试。

编程:

提倡结对编程(PairProgramming),即两个人一起合作完成。

测试:

在开发之前就写好单元测试,开发人员将每次开发好的模块整合到一起进行单元测试,发现bug就要增加相应的测试。除了单元测试之外,还有集成测试、功能测试、压力测试和系统测试等。

敏捷开发和极限编程