版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发方法-XP宿为民2002年6月6日主题o 什么是XP方法?o 发展沿革o 主要思想o 项目应用案例?什么是XP方法?o eXtreme Programmingo XP 是以开发符合变化的客户需求的软件为目标而是以开发符合变化的客户需求的软件为目标而产生的一种方法,产生的一种方法, 它的成功得益于它对客户满意它的成功得益于它对客户满意度的特别强调,度的特别强调,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 effic
3、ient. March, 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, Sim
4、plicity, Feedback, and Courage. These are the four values sought out by XP programmers.The Rules and Practices o Planningo Designingo Codingo TestingPlanningo User stories are written.o Release planning creates the schedule.o Make frequent small releases.o The Project Velocity is measured.o The proj
5、ect is divided 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 planning
6、o 通过召开 release planning meeting 来制订一份发布计划o 发布计划详细描述用户所要求的各版本要求,这为后面的迭代计划打基础small releaseso 经常向客户发布系统的迭代版本o 在release planning meeting上确定哪些功能单元对用户业务有重要影响并可在早期加入到系统中o 越晚向用户介绍系统的重要特征,开发队伍所获得的“搞定”系统的时间就越短。Project Velocityo 项目周转时间是衡量项目工作进度速度的值。o “负载因子”近期被引进用于项目周期的测量Iterationso 迭代式开发增加了开发过程的敏捷性o 将总体进度划分为一系
7、列长度为1-3周的小的迭代过程. 迭代周期固定且一致,成为项目的“心跳” 。Iteration planningo 在每个迭代的开始召集迭代计划会议,明确本次迭代任务o 每次迭代1-3周长o 由用户在 User stories中确定最有价值的特征作为本次迭代的目标o 上次迭代时没通过验收测试的特征应当加入本次迭代Move people aroundo 让所有人多掌握技能,避免知识孤岛和开发瓶颈o 交叉培训,“结对编程”o 并非一个人掌握所有的代码,而是要每个人掌握大多数的代码,所需要的人员可以随时被指派到最需要的地方,实现人员的“负载平衡”o 每次迭代每个人试图做系统新的部分,Pair pro
8、gramming 能够保证这种形式stand-up meetingo 目标:在整个开发组(而非个别开发人员)中进行沟通o 每天早上一次站立会议,主要沟通问题、方案,以集中小组注意力o 避免了策划会议的时间o daily stand up meeting 不同于一般浪费时间的会议Fix XPo 一旦破坏了XP流程,就马上更正!o 可根据具体项目制定XP规则,一旦制定就必须执行,直到规则变更o 所有人员都明确知晓规则Designingo Simplicity.o Choose a system metaphor.o Use CRC cards for design sessions.o Creat
9、e spike solutions to reduce risk.o No functionality is added early.o Refactor whenever and wherever possible. Simplicity is the Keyo 决不增加没有列入到进度中的功能o “简单化”其实并不简单system metaphoro 为系统选择一种metaphor使得开发小组能够为类及方法进行统一的命名. o 命名方式易理解.CRC cardso Class, Responsibilities, and Collaboration (CRC)o CRC cards的最大价值
10、在于引导开发人员摆脱过程模型,精确掌握OO技术o CRC Cards 允许所有的人参与设计,参与的人越多,就会有更多的好的主意引入spike solutionso 创建关键问题解决方案,解决关键的技术和设计问题o 大多数 spikes可能都不足以得到保持,有可能被丢弃. 但制作SPIKE的目标降低技术风险;o 一旦技术困难对系统的开发造成了威胁,立即派一对开发人员关注于该问题一至两周,以降低潜在的风险No functionality is added earlyo 切记不要实施你认为日后有用的额外特征o 只有10% 的额外特征会有用o 只关注目前进度中所要求的内容Refactor whenev
11、er and wherever possibleo 随时随地可以对已做过的事重新考虑o 毫不留情地将设计、编码简单化,简单得足够容易理解、修改和扩展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
12、.o Integrate often.o Use collective code ownership.o Leave optimization till last.o No overtime. The customer is always availableo 随时能联系客户是XP方法的基本要求之一o XP的所有阶段都要求客户的强参与o 最好有客户派员直接参与开发组o 把客户“吊住”,并将客户由新手培养成为专家,开发组需要专家Code must be written to agreed standardso 所有代码必须采用统一标准以便理解o Smalltalk projects : Smal
13、ltalk Best Practice PatternsCode the unit test firsto 创建单元测试能够帮助开发者清醒地意识到什么是真正需要的o 需求是由测试活动明确下来的All production code is pair programmedo 所有发布的代码都由两个程序员在一台机器上共同开发完成。o 结对编程的最好方式是两人共同坐在显示器前,将键盘和鼠标在两人之间“滑动”,一人考虑所创建的方法(Method),而另一人同时考虑该方法如何在类中得到更好的体现。o 适应结对编程需要时间,必须度过开始面临的尴尬境况Sequential Integration o 每次加入
14、一个模块做集成 Integrate ofteno 开发人员应不断地将代码集成到代码库中,几小时一次,绝不超过1天o 每个人需要在最后的版本上工作o 持续集成能够在早期避免或发现一些兼容性问题。“现在付钱还是以后付更多的钱?” Use collective code ownershipo “集体拥有代码”鼓励每个人对项目的所有部分提出新想法o 任何开发人员都可改变任何代码以增加功能、修改错误o 没有人会成为变更的瓶颈Leave optimization till lasto 在项目快结束之前不要去优化o 永远不要试图猜测系统的瓶颈在哪里,去度量它、让系统动起来、修正系统、去让系统变的更快!No
15、overtime.o 超时工作会吞噬开发组的精神和热情o 利用版本计划会来改变项目的范围和时间要求o 项目进度拖延时通过增加资源来改进也不是推荐的方法Testingo 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
16、 testso 单元测试是XP方法中的小界石,但与传统的单元测试略有不同o 1、要创建或下载一些单元测试工具以便能够自动生成测试数据o 2、测试系统中所有的类o 3、单元测试应与其所测试的代码一起发布o 4、没有单元测试的代码不能发布o 5、若发现没有进行单元测试,则立即开始进行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 每一次迭代时的迭代计划会都应选取适当的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医医院员工考勤制度
- 小公司奖金考勤制度
- 金融机构总经理助理面试技巧
- 服装企业人力资源部的招聘与管理工作安排
- 苗木供应计划方案
- 学校教师家访管理评价制度
- 现代化农业产业园管理方案
- dxp复杂课程设计
- 比赛信息管理课程设计
- 2026年比例应用题专项习题16道含答案
- 2025至2030中国真空(泵和阀门)行业项目调研及市场前景预测评估报告
- 机场值机考试试题及答案
- 房子转让过户协议书范本
- 《网络与通信技术》全套教学课件
- 防御性驾驶安全培训内容
- 家校沟通策略与实施方法
- 物业工程主管岗位面试问题及答案
- 脾切除术后的护理常规
- 军人俱乐部管理办法
- 【课件】数列探究课+斐波那契数列与黄金分割比+课件-2024-2025学年高二上学期数学人教A版(2019)选择性必修第二册
- 风湿性多肌痛病例分析
评论
0/150
提交评论