版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发方法-XP宿为民2002年6月6日主题o什么是XP方法?o发展沿革o主要思想o项目应用案例?什么是XP方法?oeXtreme ProgrammingoXP 是以开发符合变化的客户需求的软件为目标而是以开发符合变化的客户需求的软件为目标而产生的一种方法,产生的一种方法, 它的成功得益于它对客户满意它的成功得益于它对客户满意度的特别强调,度的特别强调,XP 使开发者能够更有效的响应客使开发者能够更有效的响应客户的需求变化,哪怕在软件生命周期的后期。户的需求变化,哪怕在软件生命周期的后期。o是一种经历过很多实践考验的软件开发方法是一种经历过很多实践考验的软件开发方法. . 已经已经被成功的应
2、用在许多大型的公司,如:被成功的应用在许多大型的公司,如:Bayeris che Landesbank , Credit Swis s Life,DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS.发展发展1990s,Kent Beck and Ward Cunningham together had experienced an approach to software development that made every thing seem simple and more efficient. M
3、arch, 1996, Kent started a project at DaimlerChrysler using new concepts in software development. The result was the Extreme Programming (XP) methodology. What Kent came to realize is that there are four dimensions along which one can improve any software project, which are Communication, Simplicity
4、, Feedback, and Courage. These are the four values sought out by XP programmers.The Rules and Practices oPlanningoDesigningoCodingoTestingPlanningo User stories are written.o Release planning creates the schedule.o Make frequent small releases.o The Project Velocity is measured.o The project is divi
5、ded into iterations.o Iteration planning starts each iteration.o Move people around.o A stand-up meeting starts each day.o Fix XP when it breaks.User storieso类似于use cases但不一样o用于估计release planning meeting的时间o替代详细的用户需求规格说明书o由用户书写,类似于用户“场景”,但不局限于界面的描述o没有技术术语o能够成为验收测试的依据Release planningo通过召开 release pla
6、nning meeting 来制订一份发布计划o发布计划详细描述用户所要求的各版本要求,这为后面的迭代计划打基础small releaseso经常向客户发布系统的迭代版本o在release planning meeting上确定哪些功能单元对用户业务有重要影响并可在早期加入到系统中o越晚向用户介绍系统的重要特征,开发队伍所获得的“搞定”系统的时间就越短。Project Velocityo项目周转时间是衡量项目工作进度速度的值。o“负载因子”近期被引进用于项目周期的测量Iterationso迭代式开发增加了开发过程的敏捷性o将总体进度划分为一系列长度为1-3周的小的迭代过程. 迭代周期固定且一致
7、,成为项目的“心跳” 。Iteration planningo在每个迭代的开始召集迭代计划会议,明确本次迭代任务o每次迭代1-3周长o由用户在 User stories中确定最有价值的特征作为本次迭代的目标o上次迭代时没通过验收测试的特征应当加入本次迭代Move people aroundo让所有人多掌握技能,避免知识孤岛和开发瓶颈o交叉培训,“结对编程”o并非一个人掌握所有的代码,而是要每个人掌握大多数的代码,所需要的人员可以随时被指派到最需要的地方,实现人员的“负载平衡”o每次迭代每个人试图做系统新的部分,Pair programming 能够保证这种形式stand-up meetingo
8、目标:在整个开发组(而非个别开发人员)中进行沟通o每天早上一次站立会议,主要沟通问题、方案,以集中小组注意力o避免了策划会议的时间odaily stand up meeting 不同于一般浪费时间的会议Fix XPo一旦破坏了XP流程,就马上更正!o可根据具体项目制定XP规则,一旦制定就必须执行,直到规则变更o所有人员都明确知晓规则DesigningoSimplicity.o Choose a system metaphor.o Use CRC cards for design sessions.o Create spike solutions to reduce risk.o No func
9、tionality is added early.o Refactor whenever and wherever possible. Simplicity is the Keyo决不增加没有列入到进度中的功能o“简单化”其实并不简单system metaphoro为系统选择一种metaphor使得开发小组能够为类及方法进行统一的命名. o命名方式易理解.CRC cardsoClass, Responsibilities, and Collaboration (CRC)oCRC cards的最大价值在于引导开发人员摆脱过程模型,精确掌握OO技术oCRC Cards 允许所有的人参与设计,参与的
10、人越多,就会有更多的好的主意引入spike solutionso创建关键问题解决方案,解决关键的技术和设计问题o大多数 spikes可能都不足以得到保持,有可能被丢弃. 但制作SPIKE的目标降低技术风险;o一旦技术困难对系统的开发造成了威胁,立即派一对开发人员关注于该问题一至两周,以降低潜在的风险No functionality is added earlyo切记不要实施你认为日后有用的额外特征o只有10% 的额外特征会有用o只关注目前进度中所要求的内容Refactor whenever and wherever possibleo随时随地可以对已做过的事重新考虑o毫不留情地将设计、编码简单
11、化,简单得足够容易理解、修改和扩展o所有的事只表达一次o修饰得太好的系统往往到后期赶不上进度要求Codingo The customer is always available.o Code must be written to agreed standards.o Code the unit test first.o All production code is pair programmed.o Only one pair integrates code at a time.o Integrate often.o Use collective code ownership.o Leave
12、optimization till last.o No overtime. The customer is always availableo随时能联系客户是XP方法的基本要求之一oXP的所有阶段都要求客户的强参与o最好有客户派员直接参与开发组o把客户“吊住”,并将客户由新手培养成为专家,开发组需要专家Code must be written to agreed standardso所有代码必须采用统一标准以便理解oSmalltalk projects : Smalltalk Best Practice PatternsCode the unit test firsto创建单元测试能够帮助开发
13、者清醒地意识到什么是真正需要的o需求是由测试活动明确下来的All production code is pair programmedo所有发布的代码都由两个程序员在一台机器上共同开发完成。o结对编程的最好方式是两人共同坐在显示器前,将键盘和鼠标在两人之间“滑动”,一人考虑所创建的方法(Method),而另一人同时考虑该方法如何在类中得到更好的体现。o适应结对编程需要时间,必须度过开始面临的尴尬境况Sequential Integration o每次加入一个模块做集成 Integrate ofteno开发人员应不断地将代码集成到代码库中,几小时一次,绝不超过1天o每个人需要在最后的版本上工作o
14、持续集成能够在早期避免或发现一些兼容性问题。“现在付钱还是以后付更多的钱?” Use collective code ownershipo“集体拥有代码”鼓励每个人对项目的所有部分提出新想法o任何开发人员都可改变任何代码以增加功能、修改错误o没有人会成为变更的瓶颈Leave optimization till lasto在项目快结束之前不要去优化o永远不要试图猜测系统的瓶颈在哪里,去度量它、让系统动起来、修正系统、去让系统变的更快!No overtime.o超时工作会吞噬开发组的精神和热情o利用版本计划会来改变项目的范围和时间要求o项目进度拖延时通过增加资源来改进也不是推荐的方法Testing
15、o All code must have unit tests.o All code must pass all unit tests before it can be released.o When a bug is found tests are created.o Acceptance tests are run often and the score is published. All code must have unit testso单元测试是XP方法中的小界石,但与传统的单元测试略有不同o1、要创建或下载一些单元测试工具以便能够自动生成测试数据o2、测试系统中所有的类o3、单元测试应与其所测试的代码一起发布o4、没有单元测试的代码不能发布o5、若发现没有进行单元测试,则立即开始进行All code must pass all unit tests before it can be releasedWhen a bug is found tests are createdAcceptance tests are run often and the score is publishedo验收测试来自user stories.o每一次迭代时的迭代计划会都应选取适当的 us
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度二手电脑及配件买卖与回收合同3篇
- 环保志愿公益活动总结范文
- 二零二五年度企业债券反担保协议2篇
- 二零二五年度城市景观照明设计调整与夜景经济发展协议3篇
- 2024年销售人员业绩提成合同模板版
- 2025版酒店餐饮业虫害防治及卫生安全服务合同3篇
- 2024年船舶抵押范本3篇
- 冬天适合的培训
- 二零二五年度大清包劳务分包合同精细化施工范本5篇
- 临床合理用血知识培训
- 2025年中小学春节安全教育主题班会课件
- 医院消防安全知识培训课件
- 抽奖券模板(可修改)
- 高压蒸汽灭菌效果监测记录簿表(完整版)
- 人教版物理八年级上册全册知识点总结
- 编织密度自动计算
- 硝酸及液体硝酸铵生产行业风险分级管控体系实施指南
- 瑶医目诊图-望面诊病图解-目诊
- 染色体标本的制作及组型观察
- 导游实务课件
- 艺术类核心期刊目录
评论
0/150
提交评论