才子佳人博客

我的故事我讲述

极限编程与敏捷开发
 
来源:xjh  编辑:xjh  2009-10-27

极限编程(eXtreme Programming XP)是敏捷方法中最著名的一个。它是由一系列简单却互相依赖的实践组成。这些实践结合在一起形成了一个胜于部分结合的整体。

下面是极限编程的有效实践:

客户作为开发团队成员

XP项目的所有参与者(开发人员、客户、测试人员等)一起工作在一个开放的场所中,他们是同一个团队的成员。

使用用户素材

用户素材就是跟用户谈话的主要内容。

短交付周期 计划是持续的、循序渐进的

每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。

客户测试

客户测试作为选择每个所期望的特性的一部分。

简单设计

团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码。

结对编程

结对编程所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。

测试驱动开发

编写单元测试是一个验证行为,更是一个设计行为。同样,它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环,尤其是功能验证方面的反馈循环。

重构---改进设计

随时利用重构方法改进已经腐化的代码,保持代码尽可能的干净、具有表达力。

持续集成

团队总是使系统完整地被集成。一个人上传代码(Check in)后,其它所有人的责任代码要Check out集成。

代码集体所有

任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。

编码标准

系统中所有的代码看起来就好像是被单独一人编写的。

使用隐喻

将整个系统联系在一起的全局视图,它是系统的未来影像,是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。

可持续的速度

团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他们保存精力,他们把项目看作是马拉松长跑,而不是全速短跑。

及时调整计划

计划应该是灵活,循序渐进的。制定的计划应根据项目的进展及时调整。

极限编程是一组简单、具体的实践,这些实践结合形成了一个敏捷开发过程。极限编程是一种优良的、通用的软件开发方法,项目团队可以拿来直接采用,也可以增加一些实践,或者对其中的一些实践进行修改后再采用。

敏捷开发过程

人与人之间的交互是复杂的,并且其效果从来都是难以预期的,但却是工作中最重要的方面。 -- Tom DeMacro和Timothy Lister

敏捷软件开发宣言:

个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划

虽然右项也有价值,但是我们认为左项具有更大的价值。

敏捷设计是一个过程,不是一个事件。它是一个以持续的应用原则、模式以及实践来改进软件结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能得简单、干净和富有表现力。

参考来源:
清华大学 《软件工程》 张海潘
http://www.vckbase.com/document/viewdoc/?id=1027((作者:徐景周))


分类:编程开发| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: