




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十三章敏捷软件开发与极限编程 1 13 1敏捷软件开发概述13 2敏捷方法与规范化方法的关系13 3极限编程实践案例 2 一些经验丰富的软件设计师在应对快速交付 需求易变的开发要求实践中分别总结出自己独特且有效的软件开发方法 被业界概括为敏捷软件开发方法 其中以 极限编程 最为流行 3 13 1敏捷软件开发概述 敏捷软件开发方法其实不是一个具体的过程 而是一个涵盖性术语 用于概括那些应需而生的具有类似价值观的软件开发方式和方法 这些方法一般都具有以人为核心 循环迭代 响应变化等特点 着眼于能高质量地快速交付客户满意的工作软件 什么是敏捷软件开发方法 4 代表性的敏捷开发方法 极限编程 eXtremeProgramming 简称XP 特征驱动软件开发 FeatureDrivenDevelopment 简称FDD 动态系统开发 DynamicSystemsDevelopmentMethodology 简称DSDM 自适应软件开发 AdaptiveSoftwareDevelopment 简称ASD SCRUM 一种项目管理方法 Crystal 水晶法 5 敏捷联盟 的价值观 个体与交互重于过程与工具可以工作的软件重于面面俱到的文档与客户的合作重于与其合同的谈判对变化的响应重于对计划的遵循 可见 敏捷的软件开发方法的理念是 在保证软件开发有成功产出的前提下 尽量减少开发过程中的活动和制品的方法 在满足软件质量要求的前提下 力求适应变化和提高开发效率 6 敏捷软件开发的原则 就敏捷开发而言 最重要的是通过尽早和不断交付有价值的软件来满足客户的需求 敏捷开发欢迎需求的变化 即使是开发后期 敏捷过程能够驾驭变化并以此为客户创造竞争优势 经常交付可以工作的软件 从几个星期到几个月 时间间隔越短越好 业务人员和开发人员应该在整个项目过程中始终朝夕在一起工作 围绕斗志高昂的人进行软件开发 给他们提供适宜的环境 满足他们的需要 并相信他们能够完成任务 7 在团队中 最有效率也最有效果的信息表达方式是面对面的交谈 可以工作的软件是进度的主要度量标准 敏捷过程提倡可持续的开发速度 责任人 开发者和用户应该总是维持不变的节奏 对优秀的技能与好的设计的不断追求将有助于提高敏捷能力 简单 尽可能减少工作量的艺术是至关重要的 最好的架构 需求和设计都源自自组织的团队 每隔一定时间 团队都要总结如何更有效率 然后相应地调整自己的行为 敏捷软件开发的原则 8 典型敏捷方法 极限编程 XP XP方法的基础是4个价值观念 沟通 大多数项目的失败源于沟通不畅 所以要进行一些能够推动积极沟通的实践 简单 开发能够满足客户需要的最简单的产品 反馈 开发者必须要获取并且重视来自客户 系统的反馈以及相互之间的反馈 勇气 准备好做出支持其他原则和实践的艰难决定 9 XP在4个价值观之上 又定义了12个的必须遵循的实践 1 完整团队 XP项目的所有参与者 开发人员 客户 测试人员等 一起工作在一个开放的场所中 他们是同一个团队的成员 这个场所的墙壁上随意悬挂着大幅的 显著的图表以及其他一些显示他们进度的东西 2 计划游戏 计划是持续的 循序渐进的 每2周 开发人员就为下2周估算候选特性的成本 而客户则根据成本和商务价值来选择要实现的特性 3 客户测试 作为选择每个所期望的特性的一部分 客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作 典型敏捷方法 极限编程 XP 10 4 简单设计 团队保持设计恰好和当前的系统功能相匹配 它通过了所有的测试 不包含任何重复 表达出了编写者想表达的所有东西 并且包含尽可能少的代码 5 结对编程 所有的产品软件都是由两个程序员 并排坐在一起在同一台机器上构建的 6 测试驱动开发 编写单元测试是一个验证行为 更是一个设计行为 同样 它更是一种编写文档的行为 编写单元测试避免了相当数量的反馈循环 尤其是功功能能验证方面的反馈循环 程序员以非常短的循环周期工作 他们先增加一个失败的测试 然后使之通过 典型敏捷方法 极限编程 XP 11 7 改进设计 随时利用重构方法改进已经腐化的代码 保持代码尽可能的干净 具有表达力 持续集成 团队总是使系统完整地被集成 集体代码所有权 任何结对的程序员都可以在任何时候改进任何代码 没有程序员对任何一个特定的模块或技术单独负责 每个人都可以参与任何其它方面的开发 典型敏捷方法 极限编程 XP 12 10 编码标准 系统中所有的代码看起来就好像是一人单独编写的 11 隐喻 将整个系统联系在一起的全局视图的概念 它是系统的未来影像 是它使得所有单独模块的位置和外观变得明显直观 如果模块的外观与整个隐喻不符 那么你就知道该模块是错误的 12 可持续的速度 团队只有持久才有获胜的希望 他们以能够长期维持的速度努力工作 他们保存精力 把项目看作是马拉松长跑 而不是全速短跑 典型敏捷方法 极限编程 XP 13 极限编程是一组简单 具体的实践 这些实践结合在一起形成了一个敏捷开发过程 极限编程是一种优良的 通用的软件开发方法 项目团队可以拿来直接采用 也可以增加一些实践 或者对其中的一些实践进行修改后再采用 典型敏捷方法 极限编程 XP 14 13 2敏捷方法与规范化方法的关系 二者的比较 敏捷宣言 把关注的焦点从传统的计划驱动 基于过程的方法转移到更轻量 适应性更强的开发范型 但并不意味着可以忽略对传统方法中强过程规范和严格准则的需要 这些软件开发方法为规范软件开发的过程 提高软件项目的成功率起了重要的作用 15 如同过于繁琐与官僚化的过程和文档阻碍软件开发一样 过度地强调简单与抛弃文档也会对软件项目造成伤害 纯粹的敏捷开发方法同样要求软件企业组织管理能力和开发人员个人非常高的素质传统的计划驱动方法的擅长领域通常是大型 复杂的系统 这些系统时常具有关键的安全性或者其他高可靠性的属性 需求应该相当稳定 环境也具有相当的可预见性 敏捷方法则更适用于那些系统和开发团队规模较小 客户和系统的使用者随时可以到位 需求和环境容易变化的项目 16 平衡敏捷与规范 为了维持相关性并符合客户的需要和期望 国防和其他大型系统必须找到适当的途径在它们的方法学中融合敏捷性 但仍必须把规范作为适应性的基础 典型地 可以将敏捷方法与统一软件开发过程 RUP 等规范方法相结合 比如 RUP作为整体框架 负责最初前景分析 商业计划 敏捷建模负责业务建模 具体开发使用XP等敏捷方法 而在整个项目的项目管理 配置管理 质量管理使用RUP 进一步可将SW CMM作为整个过程改进的目标 根据CMM五级目标可以制定与过程改进相符的阶段目标和长远目标 17 极限编程实践细则 极限编程的12个核心实践具体分来有如下四个方面一些细则内容 1 计划写出用户素材 根据发布版本计划编制进度表 频繁发布小版本 度量项目速度 这个项目划分为多个迭代 每次迭代开始前制定迭代计划 角色互换 每日立式晨会 根据项目情况对XP作出调整 18 2 设计简单 选取一个系统比喻 在设计会上使用CRC卡片 通过探针方案降低风险 不要过早加入任何功能 尽可能的进行重构 极限编程实践细则 是目前比较流行的面向对象分析建模方法 在CRC建模中 用户 设计者 开发人员都有参与 完成对整个面向对象工程的设计 CRC卡是一个标准索引卡集合 包括三个部分 类名 类的职责 类的协作关系 每一张卡片表示一个类 19 3 编码客户一直在场 代码必须符合相应的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济宁市2024-2025学年七年级上学期语文期中测试试卷
- 电路基础知识大专培训广州课件
- 高速换电站基础知识培训
- 打工人的30个DeepSeek提示词
- 高血压糖尿病课件
- 高血压原理课件
- python大学考试大题及答案
- 电缆焊接入门知识培训课件
- 山东省聊城市莘县2022-2023学年九年级上学期期中化学试题(含答案)
- 电磁铁磁力课件
- 污水处理站运行记录台账范本
- 勉县一中小升初数学试卷
- 2025年消毒供应室业务学习考试试题(附答案)
- 2025一建《建设工程经济》计算、时间、数字考点笔记
- 校园基孔肯雅热防控措施课件
- 第1课 中国古代政治制度的形成与发展 课件 统编版高中历史选择性必修1
- 多彩贵州地方课程课件
- 劳技自制收纳盒课件
- 《管理学基础与实务》 课件全套 曾宪达 第1-11章 管理与管理者- 管理创新
- 药师考试历年真题综合测试试卷(含答案)
- 2025年村级防疫员考试模拟试题及答案
评论
0/150
提交评论