迭代式开发
2018-01-01 本文已影响23人
橙小张
一、迭代式开发实例
实例:
- 周期:三周
- 用周一上午启动会议,① 明确本次迭代的任务和目标,由一个人对迭代的代码进行逆向工程,制作UML图;② 在周一剩下的时间在白板以结对的工作方式进行敏捷建模,画出UML草图并记录,写出一些伪代码和设计概要;③ 剩余的工作日进行局部系统进行实现、测试,进一步的设计,集成和日常构造等工作。
二、迭代式开发的优点
- 减少项目失败的可能性
- 在早期缓解高风险(技术、需求、目标、可用性)
- 早期可见的进展
- 早期反馈
- 可控复杂性
- 一次迭代中的经验可以被系统的运用改进开发过程本身,并反复的进行
三、如何进行迭代和进化式分析和设计
- 在第一次迭代之前,召开需求工作会议,确切的定义需求时间(2天)
- 第一天上午,进行高阶需求分析,例如仅确定用例和特性的名称,以及关键的非功能性需求(可能会有缺陷)
- 从高阶列表中选择10%列表项,这些列表必须要有以下特性,并打标:
- 具有重要的架构意义(核心架构):UC1
- 高业务价值(业务真正关心的特性):UC2
- 具有高风险(例如能够处理500个并发交易):UC3
- 第一次迭代之前,选择列表子集进行设计,构造和测试,因为工作量比较大,不会在第一个迭代中就构造出全部的三个用例,选择特定子集目标后,在开发团队的帮助下,将其分解为更详细的迭代任务。
- 在规定时间内完成第一次迭代
- 开始两天,先进行建模和设计工作,画出UML草图和其他的模型
- 摘掉“建模帽子”,戴上“编程帽子”,开始编码,以草图作为起点,但是草图模型是局部和含糊的。
- 进行大量测试(重点)
- 结束前一周,检查是否可以完成迭代目标,如果不能,缩小迭代范围,将次要目标返回到任务列表中
- 最后一周的星期二,冻结代码,合并代码
- 周三下午,演示局部系统,展示早期的可视进展,获得回馈
- 周五进行下一次迭代计划会议