2019 年 5 月 26 感谢你的观看 1 Chapter 2 迭代、进化和敏捷 2019 年 5 月 26 感谢你的观看 2 本章目标 ? 定义迭代 (iterative) 过程和敏捷 (agile) 过程 ? 迭代 / 瀑布 ? 敏捷 / 重型 ? 定义统一过程中的基本概念 2019 年 5 月 26 感谢你的观看 3 软件过程 ? 什么是软件过程 软件过程定义了软件开发、部署和维护的步骤。 ? 软件过程本身就是软件 软件过程是一种被由人构成的虚拟机执行的软件。 ? 软件过程为什么重要(为什么不应该那么重要) 2019 年 5 月 26 感谢你的观看 4 软件过程的谱系 ? 软件过程 软件过程描述开发、部署和维护软 件系统的步骤。 ? 迭代式开发 迭代式开发将软件开发过程分解为 一系列小的,固定周期的 ( 比如, 4 个星期 ) 的小项目,每个小项目称 为一个迭代。 ? 统一过程 (Unified Process) 一种采用 OOA/D 方法学开发项目 的过程 (Ivar Jacobson) 。 ? 敏捷建模 UP( Agile UP ) 引入了敏捷概念的 UP, 是 UP 的一个 简集。 Software Processes Water Fall Others… Iterative Processes XP Unified Process RUP Agile UP 2019 年 5 月 26 感谢你的观看 5 迭代式开发 ? 瀑布生命周期 ? 在瀑布生命周期过程中,试图在编写代码之前定义几 乎所有的需求,以及明确详尽的时间表。 ? 迭代式的生命周期 ? 通过多次的迭代获得周期性的反馈,以这些反馈为驱 动力,对系统进行不断的扩展和精化。 ? 迭代式开发将软件开发过程分解为一系列小的,固定 周期的 ( 比如, 4 个星期 ) 的小项目,每个小项目称为一 个迭代。 2019 年 5 月 26 感谢你的观看 6 迭代式开发 2019 年 5 月 26 感谢你的观看 7 每一次迭代的周期 ? 迭代的一个关键思想是时间定量,即时间长度固 定。 ? 大部分迭代方法建议迭代时间在 2 到 6 周之间。 2019 年 5 月 26 感谢你的观看 8 示例 ? 在项目开始为期 3 周的迭代中 ? 周一启动会议,明确本次迭代的任务和目标。其间一小时制作 UML 图,打印最重要的部分。 ? 其他时间团队成员结对在白板上用 UML 图建模。 ? 开发,测试。 ? 发布,给客户 Review 本次迭代的成果,获取反馈。 ? 计划下一次的迭代。 ? 注意: ? 没有匆忙地开始编码,也没有长期的,试图完全定义系统的设计。 ? 迭代的成果不是用完后就抛弃的原型,而是最终产品的子集。 ? 获取用户反馈并不断改进是项目的主要驱动力量。 2019 年 5 月 26 感谢你的观看 9 迭代的过程 After a series of structured, build-feedback-adapt cycles, the system will be stable. 2019 年 5 月 26 感谢你的观看 10 拥抱变化 现实 ? 变化不可避免 ? 变化非常昂贵 方案 A ? 仔细地分析和设计 ? 和客户签订合同 ? 抱怨 方案 B ? 迭代式的开发 ? 欢迎变化 ? 与客户一起成功 2019 年 5 月 26 感谢你的观看 11 拥抱变化 ? 仅仅有态度并不够:软件并不是想大多数人的直觉那样容 易变化的。 ? 迭代式的开发不比瀑布式开发容易。 ? 我们应该构造能不断演化的软件系统。 2019 年 5 月 26 感谢你的观看 12 迭代式开发的优势 ? 能够较早地对付风险高的内容。 ? 能够让人明确地看到进展,给客户信心,给开发队伍成就 感。 ? 能够较早获得反馈,鼓励用户参与开发,使系统能够更接 近用户需求。 ? 控制复杂性。 2019 年 5 月 26 感谢你的观看 13 统一过程: Unified Process( UP ) ? UP 是迭代过程的一种。 提出人: Ivar Jacobson ? UP 提供了如何实施 OOA/D( 和如何介绍 OOA/D) 的示范结 构。这也形成了本书的结构。 ? UP 具有灵活性,可以应用于敏捷(轻量级)方法。 2019 年 5 月 26 感谢你的观看 14 UP 的阶段 ? UP 项目将其工作和迭代组织为 4 个主要的阶段 : ? 初始 (Inception) — ? 大体上的构想,业务用例,范围和初步的估计。 ? 细化 (Elaboration) — ? 进一步细化的构想,以迭代的方式实现风险较高的核心架构,识别出 大部分需求和范围,作更为准确地估计。 ? 构造 (Construction) — ? 以迭代的
原创力文档

文档评论(0)