TDD与敏捷模型驱动开发AMDD.DOC

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TDD与敏捷模型驱动开发AMDD

极限编程(eXtreme Programming)简介?收藏 (eXtreme Programming)是近几年才时兴起来的开发模型,极限编程(eXtreme Programming)主要是针对中小型开发团队在开发时间要求紧、需求不稳定的中小项目(大多数软件项目都是这个情况)时使用。极限编程(eXtreme Programming)打破了传统软件工程的框架,非常新巧。譬如整个开发过程中文档很少,大量使用“卡片?(如CRC卡片)”来描述开发计划和内容;没有真正意义上的软件功能规格说明书,取而代之的是一系列可测试的用例;没有独立的设计和测试阶段,它们总是在迭代中增量反复进行;设计:尽可能小和简单;一般没有代码复审(code review),大家共同拥有代码。而它的最显著的一个外在特征是它常使用“成对开发”,即一台机器前坐两个开发人员,共同开发(一个看,一个写),这乍听起来真是蛮有趣的:),极限编程(eXtreme Programming)的基本出发是认为成对开发的效率在一定条件下要高于两个人独立开发的和。??不要觉得天方夜谭,在很多项目中,这种做法的有效性已经被证实。 极限编程(eXtreme Programming)XP的特点可以用“快、小、灵”来概括,极限编程(eXtreme Programming)和传统瀑布模型(自顶向下)的区别在于它使用迭代增量(设计-代码-测试-设计-代码…)的方式。想法很简单:没有什么目标是可以一开始就容易确定的。用爬山来做一下比喻的话,传统的是在山下研究地图,选好一条路线,然后沿着此路前进,XP则是走一走,停一停,看一看,对下一步的方向作出新的选择,在很多时候,这样做会让你选择到更好的捷径。? 极端编程(eXtreme Programming)是一种开发纪律,以简单性、交流、反馈和勇气为基本宗旨。它的做法是以有效的实践规则将整个团队紧密联系起来,通过充分的反馈使团队能随时知道自己目前的状况和恰当的调节规则以适应自己的特殊情况。? 在极限编程(eXtreme Programming)中,每一个项目贡献者都是“团队”完整的一部分。这个队伍是围绕着一个每天和队伍坐在一起共同工作的商业代表——“客户”建立起来的。? 核心实践:整体团队? 极端编程的队伍采用一种简单的方式来进行规划和跟踪,以决定下一步要做什么和预知项目什么时候会完成。聚焦于商业价值,团队通过一系列的通过了客户定义的测试和完全集成的小的发布来创作软件系统。? 核心实践:规划策略,小发行版,客户测试? 极端编程者通过成对和小组的方式共同工作,通过简单设计和强制测试的代码,不断的提升设计以保证设计总是适合当前的需求。 核心实践:简单设计,成对编程,测试优先开发,设计改进? 极端编程队伍会总是保持系统能够集成并且在所有的时间运行。程序员以成对的方式编写所有的产品代码,并且在所有时间内都共同工作。他们以相似的形式编码以保证所有成员都可以按需要理解和改进所有的代码。? 核心实践:持续集成,集体代码所有权,编码标准? 极端编程队伍分享一个公共并且简单的系统蓝图。所有成员可以按照一种不时保持同步的节奏进行工作。? 核心实践:系统比喻,可接受的步伐? 团队整体? 一个XP项目的所有参与者都作为一个团队的成员坐在一起。这个团队必须包括一个业务的代表——“客户”,他提供需求,设置优先度,并掌管整个项目的方向。最好这个客户或者他的助手是一个最终用户,了解该领域,知道什么是所需要的。团队当然还要有程序员。团队可能会包含测试员,他帮助客户定义客户验收测试。分析员可以作为客户的助手,帮助客户定义需求。通常还会有一个指导,他帮助整个团队跟踪、推动开发进程。也可能会有一个管理者,他提供资源、处理对外交流和分工协作。这些职责中没有任何一个是必须某个个人独有的:每一个XP团队的成员都以任何他们所能做到的方式参与,最好的团队没有专家,只有一些有着特殊的技能的一般的参与者。? 规划策略? XP的计划解决软件开发中的两个关键问题:预知在责任期内哪些东西将被完成,并且确定下一步需要做什么。重点是把握项目的正确轨道——这是相当简单明了的——更胜于希望精确预知哪些东西将会需要以及可能花费多少时间——这是相当困难的。在XP这里有两个关键的规划步骤,用来解决这两个问题:? 发布计划是一个实践让客户向程序员们演示所希望获得的特性,然后程序员们评估它们的难度。当手中有了代价的评估和这些特性的重要程序的认知之后,客户安排一个项目计划。最初的发布计划需要留有足够的余地:优先级以及评估都不是真实可靠的,并且知道团队开始工作以前,我们都无法确切地了解队伍的开发进度。甚至最初的发布计划也不是足够精确能进行决断,所以XP队伍通常会不时地校正发布计划。? 迭代计划是一个实践籍此可以为团队提供每几个开发周的导

文档评论(0)

sunhongz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档