《敏捷开发介绍》PPT课件.ppt

上传人:max****ui 文档编号:7286979 上传时间:2020-03-18 格式:PPT 页数:22 大小:1.40MB
返回 下载 相关 举报
《敏捷开发介绍》PPT课件.ppt_第1页
第1页 / 共22页
《敏捷开发介绍》PPT课件.ppt_第2页
第2页 / 共22页
《敏捷开发介绍》PPT课件.ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
敏捷开发介绍 SCRUM 张华2010 08 25 目录 敏捷开发历史软件开发模式介绍软件生命周期模式敏捷开发介绍敏捷开发 SCRUM名词解释敏捷开发 实施Scrum的过程介绍敏捷开发 原则和方法敏捷开发 宣言推荐书籍及后期应用 敏捷开发历史 敏捷开发并不现代起源于20世纪30年代的一些项目 美国航天局水星计划 最早记载使用在20世纪70年代最早的有记载的使用迭代和增量开发的主要项目之一 是为第一艘美国三叉戟潜艇开发的第一指挥和控制系统 该项目有大约一百万行代码 进行得非常成功 在1976年 第一部阐述敏捷方法的书籍TomGilb在他的著作 软件度量 SoftwareMetrics 一书中阐述了他的迭代和增量开发实践20世纪80年代正式定义迭代开发螺旋模型20世纪80年代在1895年 巴里贝母 BarryBoehm 正式定义了使用迭代开发的螺旋模型 敏捷开发历史 美国国防部的项目审查早期使用瀑布模式开发的软件项目 有75 以失败告终 有些开发出来的产品根本没有被使用过 只有2 的软件产品无需大量修改就能被正常使用 20世纪90年代推荐使用迭代和增量开发的出版物和文献显著增加2001年二月敏捷开发宣言后形成敏捷联盟一组由17位在DSDM XP Scrum FSD等领域的专家组成的代表团齐聚美国犹他州 寻找这些方法的共同点 最终 这些专家制定并宣布了敏捷开发宣言 由此形成了现在我们所认识的敏捷开发和后来的敏捷联盟 软件开发模式介绍 软件生命周期 同任何事物一样 一个软件产品或软件系统也要经历孕育 诞生 成长 成熟 衰亡等阶段 这一般称为软件生命周期 软件开发生命周期 SDLC 是指软件开发的全部过程 活动和任务的结构框架 SDLC的一般步骤包括 确定问题 可行性分析与开发计划 收集需求 分析与设计 编码开发 测试 安装 维护 软件生命周期模式典型的几种生命周期模式包括 瀑布模式 演化模式 螺旋模式 快速原型模式 喷泉模式和混合模式等 在这里只介绍其中最常用的几种模式 软件生命周期模式 瀑布式它首先是由Royce提出 该模式由于酷似瀑布闻名 在该模式中首先确定需求 然后拟定规格说明 在通过验证后方可进入计划阶段 因此 瀑布模式中至关重要的一点是只有当一个阶段的文档获得认可才可以进入下一个阶段 瀑布模式通过强制性规约来确保每个阶段都能很好的完成任务 但是实际上却往往难以办到 因为整个瀑布模式几乎都是以文档驱动的 这对于非专业的用户来说是难以阅读和理解的 虽然瀑布模式有很多很好的思想可以借鉴 但是在过程能力上有天生的缺陷 演化模式它主要是针对事先不能完整定义需求的软件开发 它的方法是用户先给出待开发系统的核心需求 并且在核心需求实现后 再提出反馈以支持系统的最终设计和实现 也就是说 开发人员首先会根据用户的需求开发核心系统 然后提供给用户试用 用户试用后再提出增强系统能力的需求 最后开发人员再根据用户的反馈 实施迭代开发 实际上 这个模式可看作是重复执行的多个瀑布模式 演化模式要求开发人员把项目的产品需求分解为不同组 以便分批循环开发 但这种分组并不是随意性的 而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断 软件生命周期模式 螺旋模式 它是瀑布模式与演化模式相结合 并加入两者所忽略的风险分析所建立的一种软件开发模式 螺旋模式基本的做法是在瀑布模式的每一个开发阶段之前 引入非常严格的风险识别 风险分析和风险控制 直到采取了消除风险的措施之后 才开始计划下一阶段的开发工作 否则 项目就很可能被暂停 另外 如果有充足的把握判断遗留的风险已降低到一定的程度 项目管理人员还可作出决定让余下的开发工作采用另外的生命周期模式 如演化模式 瀑布模式或自定的混合模式 过程开发模式 它又叫混合模式或元模式 是指把几种不同模式组合成一种混合模式 它允许一个项目能沿着最有效的路径发展 因为上述的模式中都有自己独特的思想 现在的软件开发团队中很少说标准的采用那一种模式的 因为模式和实际应用还是有很大的区别的 实际上 许多软件开发团队都是在使用几种不同的开发方法组成他们自己的混合模式 软件生命周期模式 总结 最后 我们来总结一下 螺旋模式是典型的迭代式生命周期模式 而RUP则是近代迭代式生命周期的代表 与螺旋模式相比 RUP将风险管理放在更重要的地位 最新的迭代式生命周期模式的代表是模式驱动架构 MDA 和敏捷 Agile 软件开发 MDA模式是基于可执行规格说明的思想 是现代转换模式的代表 其核心技术是组件技术 而敏捷开发生命周期的典型代表是XP编程 是把传统的系统设计和实现由敏捷软件开发过程中的验收测试 重构和测试驱动所取代 把传统的集成和部署由敏捷软件开发中的持续集成和短周期所取代 其实上 无论是瀑布开发模式还是螺旋开发模式 软件生命周期模式的发展实际上是体现了软件工程理论的发展 在最早的时候 软件的生命周期处于无序 混乱的情况 一些人为了能够管理和控制软件的开发过程 就把软件开发严格的区分为多个不同的阶段 并在阶段间加上严格的审查 这就是软件开发模式产生的起因 它们体现了人们对软件过程的一个希望 严格控制 确保质量 来源 软件开发如何选择合适的生命周期模式 敏捷开发介绍 敏捷开发 agiledevelopment 是一种以人为核心 迭代 循序渐进的开发方法 在敏捷开发中 软件项目的构建被切分成多个子项目 各个子项目的成果都经过测试 具备集成和可运行的特征 简言之 就是把一个大项目分为多个相互联系 但也可独立运行的小项目 并分别完成 在此过程中软件一直处于可使用状态 捷开发由几种轻量级的软件开发方法组成 它们包括 极限编程 XP Scrum 精益开发 LeanDevelopment 动态系统开发方法 DSDM 特征驱动开发 FeatureDriverDevelopment 水晶开发 CristalClear 等等 敏捷开发介绍 极限编程XP 主要目的是降低需求变化的成本定义了一套简单的开发流程包括 编写用户案例 架构规范 实施规划 迭代计划 代码开发 单元测试 验收测试等等提倡互动交流 反馈 简单 勇气 团队核心做法 小规模 频繁的版本发布 短迭代周期 测试驱动开发 Test drivendevelopment 结对编程 Pairprogramming 持续集成 Continuousintegration 每日站立会议 Dailystand upmeeting 共同拥有代码Collativecodeownership 系统隐喻 Systemmetaphor 敏捷开发介绍 精益 精益开发起源从丰田公司的产品开发方法中演化而来 它主要包括两个部分 一部分是核心思想及原则 另外一部分由一些在相应的工具构成 核心思想查明和消除浪费 在软件开发过程中 错误 bugs 没用的功能 等待以及其他任何对实现结果没有益处的东西都是浪费 浪费及其源头必须被分析查明 然后设法消除 精益开发的原则包括 强调学习 不断改进所开发的产品和开发效率 在最后时刻做决定 避免在可能改变的事情上做无谓的努力 避免浪费 用最快的速度交付用户 缩短迭代周期加速开发及交付 加快交流 提高生产力给团队自主权 激励团队并让团队成员自我管理 敏捷方法成功的基本因素之一 诚信 确保系统正常工作 客户需求是团队努力坚持的诚信和对用户的承诺 全局观 精益开发强调整体优化的系统 无论开发的组织还是被开发的产品 从整体上考虑优化比从各个局部去优化更高效 精益软件更重要的是不断完善开发过程的一种思维方式 敏捷开发介绍 scrum SCRUM是一个敏捷开发框架它由一个开发过程 几种角色以及一套规范的实施方法组成 它可以被运用于软件开发 项目维护 也可以被用来作为一种管理敏捷项目的框架 Scrum定义了4种主要的角色 1 产品拥有者 ProductOwner 该角色负责产品的远景规划 平衡所有利益相关者 stakeholder 的利益 确定不同的产品需求积压的优先级等 它是开发团队和客户或最终用户之间的联络点 2 利益相关者 Stakeholder 该角色与产品之间有直接或间接的利益关系 通常是客户或最终用户代表 他们负责收集编写产品需求 审查项目成果等 3 Scrum专家 ScrumMaster Scrum专家负责指导开发团队进行Scrum开发与实践 它也是开发团队与产品拥有者之间交流的联络点 4 团队成员 TeamMember 即项目开发人员 敏捷开发 瀑布式开发对比 敏捷开发 SCRUM名词解释 backlog 可以预知的所有任务 包括功能性的和非功能性的所有任务 sprint 一次跌代开发的时间周期 一般最多以30天为一个周期 在这段时间内 开发团队需要完成一个制定的backlog 并且最终成果是一个增量的 可以交付的产品 sprintbacklog 一个sprint周期内所需要完成的任务 scrumMaster 负责监督整个Scrum进程 修订计划的一个团队成员 time box 一个用于开会时间段 比如每个dailyscrummeeting的time box为15分钟 敏捷开发 SCRUM名词解释 sprintplanningmeeting 在启动每个sprint前召开 一般为一天时间 8小时 该会议需要制定的任务是 产品Owner和团队成员将backlog分解成小的功能模块 决定在即将进行的sprint里需要完成多少小功能模块 确定好这个ProductBacklog的任务优先级 另外 该会议还需详细地讨论如何能够按照需求完成这些小功能模块 制定的这些模块的工作量以小时计算 DailyScrummeeting 开发团队成员召开 一般为15分钟 每个开发成员需要向ScrumMaster汇报三个项目 今天完成了什么 遇到了障碍无法继续下去 明天要做什么 通过该会议 团队成员可以相互了解项目进度 Sprintreviewmeeting 在每个Sprint结束后 这个Team将这个Sprint的工作成果演示给ProductOwner和其他相关的人员 一般该会议为4小时 Sprintretrospectivemeeting 对刚结束的Sprint进行总结 会议的参与人员为团队开发的内部人员 一般该会议为3小时 敏捷开发 实施Scrum的过程介绍 敏捷开发 实施Scrum的过程介绍 确定SprintBacklog将整个产品的backlog分解成SprintBacklog 这个SprintBacklog是按照目前的人力物力条件可以完成的 召开sprintplanningmeeting划分 确定这个Sprint内需要完成的任务 标注任务的优先级并分配给每个成员 注意这里的任务是以小时计算的 并不是按人天计算 sprint开发周期进入sprint开发周期 在这个周期内 每天需要召开DailyScrummeeting 成果演示整个sprint周期结束 召开Sprintreviewmeeting 将成果演示给ProductOwner 回顾团队成员最后召开Sprintretrospectivemeeting 总结问题和经验 下一次Sprint 敏捷开发 每日会议 目的 信息同步平台 非交流问题 讨论问题渠道 形式 固定地点 时间的站立会议 生产率估算燃尽线 敏捷开发原则和方法 迭代式开发 即整个开发过程被分为几个迭代周期 每个迭代周期是一个定长或不定长的时间块每个迭代周期持续的时间一般较短 通常为一到六周 增量交付 产品是在每个迭代周期结束时被逐步交付使用 而不是在整个开发过程结束的时候一次性交付使用 每次交付的都是可以被部署到用户应用环境中被用户使用的 能给用户带来即时效益和价值的产品 开发团队和用户反馈推动产品开发 敏捷开发方法主张用户能够全程参与到整个开发过程中 这使需求变化和用户反馈能被动态管理并及时集成到产品中 同时 团队对于用户的需求也能及时提供反馈意见 持续集成 新的功能或需求变化总是尽可能频繁地被整合到产品中 一些项目是在每个迭代周期结束的时候集成 有些项目则每天都在这么做 开发团队自我管理 拥有一个积极的 自我管理的 具备自由交流风格的开发团队 是每个敏捷项目必不可少的条件 人是敏捷开发的核心 敏捷开发总是以人为中心建立开发的过程和机制 而非把过程和机制强加给人 敏捷开发宣言 极限编程的思想体现了适应客户需求的快速变化 激发开发者的热情 也是目前敏捷开发思维的重要支持者 2001年 17名编程大师分别代表极限编程 Scrum 棒球 团队开发模式 特征驱动开发 动态系统开发方法 自适应软件开发 水晶方法 实用编程等开发流派 发表 敏捷软件开发 宣言 敏捷软件开发是一个开发软件的管理新模式 用来替代以文档驱动开发的瀑布开发模式 敏捷方式也称轻量级开发方法 敏捷软件开发宣言内容 个体和交互胜过过程和工具 可以工作的软件胜过面面具到的文档 可户合作胜过合同谈判 响应变化胜过遵循计划 推荐书籍及后期应用 Scrum 幸福来得挺突然 SCRUM轻松入门 硝烟中的Scrum和XP Scrum介绍 中文版 pdf 检查列表 如何保证质量 如何按期交付
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!