一:什么是迭代和进化式开发

1:迭代和进化式开发:通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明;

2:迭代方法与较高的成功率、生产率和低缺陷率具有关系;

3:软件开发过程描述了构造、部署以及维护软件的方式;

4:迭代生命周期基于对经过多次迭代的系统进行持续扩展和精化,并以遁环反馈和调整为核心驱动力,使之最终成为适当的系统;

5:因为反馈和调整使规格说明和设计不断进化,所以这种方法也称为迭代和进化式开发。

6:在项目开始为期三周的迭代中,可以用周一上午一个小时的时间与团队成员召开启动会议,明确本次迭代的任务和目标;

7:每次迭代都产生可执行的但不完整的系统,它不是已经准备好可以交付的产品。直到多次迭代(如10次或15次迭代)之后,系统才可能合格地用于产品部署;

8:在复杂、变更系统中,反馈和调整是成功的关键要素;

9:迭代提倡风险驱动与客户驱动相结合,早期的迭代目标要能够识别和降低最高风险,并且能构造客户最关心的可视化特性;

10:来自迭代N的反馈引起在迭代N+1中对需求和设计进行精化和调整;

每次迭代后系统是增量式增长的,最后是一个完整的产品

二:如何在迭代项目处理变更

1:瀑布式过程是在实现之前,企图全面和正确地规格化、冻结,以及“签署”需求集和设计,以此与软件开发中不可避免的变更进行抗争。

2:迭代和进化式开发抱以接受变更和改写的态度,并以此为真正本质的驱动力。

3:迭代开发并不是提倡不受控制的,明确了其构想或市场变化时如何平衡需求,一方面认同和稳定一组需求,另一方面接受需求不断变更的事实。

4:迭代快速反馈来自用户、开发人员和测试(诸如负载测试和可用性测试)的反馈。

5:迭代是通过一系列有序的构造->反馈->调整遁环向前进展。早期迭代中系统偏离“正解轨迹”的程度会大于后继迭代;

6:在后期迭代中,很少会在需求上产生显著变化,但是存在这种可能性。这种后期的变化可能会给组织带来业务竟争优势;

三:迭代开发的优点

1:减少项目失败可能性,较高的成功率、生产率和低缺陷率具有关系

2:在早期(而不是晚期)缓解高风险(技术、需求、目标、可用性等)

3:早期可见的进展

4:早期反馈、用户参与和调整,会关生更接近涉从真实需求的精化系统

5:可控复杂性,团队不会被“分析瘫痪”或长期且复杂的步骤所淹没;

6:一次涉代中的经验可以被系统地用于改进开发过程本身,并如此反复进行下去;

四:一次迭代的持续时间和时间定量

1:大部分迭方法建议迭代时间在2到6周之间,小步骤、快速反馈和调整是迭代开发的主要思想,迭代时间过长会破坏迭代开发的核心动机并增加项目风险。

2:仅一周的迭代时间不足以获得有意义的产出和反馈,若迭代时间大于6周,则复杂性会变得不可控制,反馈将延期;

3:迭代的一个关键思想是时间定量,如果看起来难以满足期限要求,那么建议从本次迭代中除去一些任务或需求,并将其分配在将来的迭代中而不是推迟完成日期;

五:什么是瀑布生命周期

1:瀑布(或顺序)生命周期过程中,试图在编程之前(详细)定义所有或大部分需求;研究表明瀑布模型和软件项目高失败率具有极大关系;

2:瀑布方法需求中45%的特性从未被使用,期早期时间表和估计与最终实际情况可相差400%;

3:不要让瀑布思维侵蚀迭代项目,初始化阶段进行大量的分析和建模是导致其失败的一个关键原因;

4:瀑布模型有如此的错误倾向是因为典型的软件项目在需求上会经历25%变更,对于大型项目,其变更率甚至高达35%到50%;

5:任何基于事物长期稳定这一假设所作出的分析、建模、开发或管理实践都是具有根本缺陷的,变更对于软件项目来说是永恒。

感谢您的阅读,坚持每天进步一点点,离成功就更进一步;希望本文对您有所帮助;

UML和模式应用学习笔记-2(迭代和进化式开发)的更多相关文章

  1. UML和模式应用学习笔记-1(面向对象分析和设计)

    UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...

  2. C#学习笔记-----基于AppDomain的"插件式"开发

    很多时候,我们都想使用(开发)USB式(热插拔)的应用,例如,开发一个WinForm应用,并且这个WinForm应用能允许开发人员定制扩展插件,又例如,我们可能维护着一个WinService管理系统, ...

  3. UML和模式应用3:迭代和进化式分析和设计案例研究

    1.前言 如何进行迭代和进化式分析和设计?将采用案例研究的方式贯穿始终.案例研究所包含的内容: UI元素 核心应用逻辑层 数据库访问 与外部软硬构件的协作 本章关于OOA/D主要介绍核心应用逻辑层 2 ...

  4. UML-对象设计要迭代和进化式

    1.在<如何面向对象设计>和<如何进行对象设计?>中,对如何迭代和进化式的设计对象做些总结: 1).轻量+简短 2).快速进入编码+测试 3).不要试图在UML中细化所有事物 ...

  5. Python学习笔记014——迭代工具函数 内置函数enumerate()

    1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...

  6. 《SQL 反模式》 学习笔记

    第一章 引言 GoF 所著的的<设计模式>,在软件领域引入了"设计模式"(design pattern)的概念. 而后,Andrew Koenig 在 1995 年造了 ...

  7. Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)

    一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...

  8. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  9. JavaScript设计模式之策略模式(学习笔记)

    在网上搜索“为什么MVC不是一种设计模式呢?”其中有解答:MVC其实是三个经典设计模式的演变:观察者模式(Observer).策略模式(Strategy).组合模式(Composite).所以我今天选 ...

随机推荐

  1. 「SCOI2016」美味

    「SCOI2016」美味 题目描述 一家餐厅有 \(n\) 道菜,编号 \(1 \ldots n\) ,大家对第 \(i\) 道菜的评价值为 \(a_i \:( 1 \leq i \leq n )\) ...

  2. bzoj 1468

    大概思路:树点分治,重心树中每个重心维护一个总的平衡树,树中保存属于该重心的点到该重心的距离,然后对于去掉该重心后形成的子树分别再保存一份. 用这种方式实现的话,还可以支持修改与多次查询,每次操作都是 ...

  3. java中重载(overload)与重写(override)的区别

    方法重载(overload): 方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同的定义,调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就 ...

  4. python开发_calendar

    如果你用过linux,你可能知道在linux下面的有一个强大的calendar功能,即日历 在python中,同样也有这样的一个强大的calendar 下面是我做的demo: #python中的cal ...

  5. Shell基础学习(三) 传递参数

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数 ...

  6. 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX

    https://www.v2ex.com/t/279405 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX pip 更新到最新 sudo apt inst ...

  7. POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题

    http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...

  8. STM32F401

    The STM32F401 line is the entry level to the STM32 F4 series. It is designed for medical, industrial ...

  9. 一、 Log4E插件下载

    下载地址:http://log4e.jayefem.de/content/view/3/2/ 二.安装Log4E插件 将下载下来的压缩包解压缩,如下图所示: 解压缩生成的[de.jayefem.log ...

  10. jquery css 主菜单样式的跳转

    想要实现的效果事实上是挺常见的那种:网页的主菜单一開始有一种默认的样式(如A样式),当鼠标经过某一菜单项时.此菜单项会套用一种样式(如B样式),当鼠标点击某一菜单项时.当前菜单项会套用B样式,其余菜单 ...