- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
极限编程在开发供电供电Kent Beck等人,在“敏捷联盟”中提出了一种创新的软件工程设计方法-极限编程(Extreme Programming 简称XP编程)。
Xp编程是一种轻量级的、灵活的编程方式,自身规定了核心价值和方法,强调沟通和反馈,整个设计过程由一系列简单却互相依赖的实践组成,在理念、管理和项目计划方法等方面和传统的软件开发过程不同。
二、极限编程
2.1 传统软件设计模型
如图1所示,传统软件设计中规定了各项软件工程的活动包括:制定系统计划,进行详细需求分析和说明,实现编码,对系统进行测试。整个设计规定了自上而下,相互衔接,如同瀑布一样将各个不同阶段串联起来,并用文档提交来驱动下一个环节,常有许多规则和文档,要正确的实施它,在开发流程上有较高的要求。
该模型最大的缺点是:缺乏适应需求变化的灵活性,更改程序的成本会随时间的推移而呈指数方式上升;而且对进度的估计经常容易失误,可能导致工期的延长,因而要付出高额代价来返工或者在维护中纠正错误。
图1
2.2 Xp编程的设计模型
简单来说,极限编程是一个高迭代的过程,在控制论(Control Theory)中,迭代过程可以不断向系统提出反馈,以确保得到预计的最终结果,而在Xp编程中,将需求分析的时间大大缩短,之后的开发中4个活动(需求、设计、编码、测试)同步进行,每一次迭代都是建立在上一次迭代的基础上进行,其开发模型如图2所示。
图2
2.3 Xp编程的核心思想
要达到高迭代过程,开发组中必须具备以下四种不同的思想:沟通(Communication)、简单(Simplicity)、反馈(Feedback)和勇气(Courage)。Xp编程认为开发组不只是包括开发人员,还包括客户和管理人员,强调成员间要经常进行交流。尽量减少在关键性的领域决策出现严重失误;开发人员应当在进行当前阶段设计,力求以简化的方式完成已知的工作,待在以后阶段中,如有必要再做修改,避免将资源花费在复杂而又不符合客户真正需求的程序中;对系统当前的状态不断的进行反馈,反馈要以不同的时间进行,以便提供更多的机会来调整设计,保证把握正确的方向;对于以上的这些思想,一旦发现错误,要勇于对自己的代码进行修改,才能符合Xp编程所提倡的“拥抱变化”。
2.4 Xp编程的实践方法
主要包括:
(1)小版本:符合需求的前提下,经过了一个或几个迭代周期后,向客户提供一个版本,通过频繁发布小版本,从客户中得到更多的反馈。
(2)规划策略:客户负责编写系统需求(Xp称为素材),程序员对每个素材所需要的开发时间做出估测,客户根据所估计的时间为基础,决定素材的优先级。通过以上活动开发人员可以迅速得到粗劣的计划,规划策略不是只进行一次,每次迭代完毕后,都要重新修正。
(3)现场客户:为加强同客户之间的交流,建议在开发过程中有一个客户随时与开发人员一起,现场随时向开发人员提供其业务需求,素材的优先级及其其他相关信息。
(4)系统比喻:为了让所有项目参与人员对系统有一致的理解,将系统设计制定一系列的比喻来表达系统的轮廓、工作和组织方式。
(5)简单设计:开发人员使他们的设计尽量简单,满足计划在本次迭代中要完成地用户需求,而不用考虑未来地用户需求,因为在每次的迭代中,系统设计不断的优化,使之正在实现的用户需求保持在最优状态。
(6)重构:在不改变代码所要完成的任务前提下,对其进行一系列的小改造,重构是持续进行的,而不是在项目结束时、迭代结束时才开始。通过重构,可以持续保持尽可能简单并且具有实用性的代码。
(7)测试驱动开发:先编写测试用例,再编写所有代码。由于要测试的功能还不存在,所以会运行失败。为了让使失败的单元测试能够通过,开始编写代码。这样做会确保更改没有对程序造成任何破坏,且有利用重构,降低各个模块间的耦合度。
(8)持续集成:程序员在独立开发后,要进行系统集成。程序员完成对模块的修改后拆入回去,所做的改动应该和在他前面拆入该模块的程序员做的改动进行合并。
(9)结队编程:所有代码都需由结对的程序员使用同一台电脑共同完成。结对人员中的一位控制键盘并输入代码,另一位观察代码并寻找代码中的错误和可以改进的地方,两人频繁互换角色,强烈的进行交互。
(10)代码共有:任何人在任何时候都有权对源代码做出修改,以增加新的功能、除错或进行重构。
(11)编码标准:为了实现代码共有的目的,必须建立一个所有人都遵守的编码标准,增强程序的可读性和可维护性,方便整个小组的工作。
(12)每周40小时工作制:极限编程不赞同长时间的工作,过长时间会引起错误率上升,不能保证高质量的工作。
这12个实践活动在我们以往的编程实践中已经用上了,因此不是独创。在Xp编程中,这些活动是相互支持,才能达到极限编程所体现的原则。
2.5 Xp编程的
您可能关注的文档
最近下载
- 建筑劳务大清包合同.docx VIP
- GB/T 28043-2019 利用实验室间比对进行能力验证的统计方法.pdf
- ISO9001-2026质量管理体系标准版中英文及变化点解析.docx VIP
- 2021年上半年教师资格证考试《保教知识与能力》(幼儿园)真题及部分答案.pdf
- 卢新国《小企业会计》课后练习题参考-答案.doc VIP
- 海神肌电图仪使用技术说明书.doc VIP
- 秀丽线虫的研究和饲养.ppt VIP
- 广东省深圳市(2024年-2025年小学六年级语文)统编版小升初真题((上,下)学期)试卷及答案.docx VIP
- 最新ISO22301:2019业务连续性管理体系管理评审一整套资料汇编(1).pdf VIP
- 2025上海市六年级升七年级暑假数学衔接讲义 第09讲 平方差公式(八大题型)(解析版).docx VIP
文档评论(0)