瀑布模型
  瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
  简单的说就是先定好需求和相关文档,然后构建框架,然后写代码,然后测试,最后发布个产品

一旦文档需求确定,开发人员就按文档开发,直到产品开发完后,才会拿出来给客户。不过这种方式基本不适应现今快速发展的市场现状了。

迭代模型
迭代的方式就有所不同,假如这个产品要求6个月交货,我在第一个月就会拿出一个产品来,当然,这个产品会很不完善,会有很多功能还没有添加进去,bug很多,还不稳定,但客户看了以后,会提出更详细的修改意见,这样,你就知道自己距离客户的需求有多远,我回家以后,再花一个月,在上个月所作的需求分析、框架设计、代码、测试等等的基础上,进一步改进,又拿出一个更完善的产品来,给客户看,让他们提意见。

就这样,我的产品在功能上、质量上都能够逐渐逼近客户的要求,不会出现我花了大量心血后,直到最后发布之时才发现根本不是客户要的东西的情况。

两种方法的比较:

瀑布模型:假如我们对用户的需求判断的不是很准确时——这是很常见的问题,一点也不少见——你开发了几个月甚至是几年,当你把产品拿给客户看时,可能与客户原先想要的相差很远。

迭代模型:相较瀑布较好,但也有自己的缺陷,那就是周期长、成本很高。适合大项目、高风险项目,比如是航天飞机的控制系统时,迭代的成本比项目失败的风险成本低得多,用这种方式明显有优势。


敏捷开发和迭代不是一回事

敏捷开发与迭代式开发是整体与局部的关系。打个比方,前者就像地球,而后者像欧亚大陆。

敏捷开发是一个总体概念,而迭代式开发只是几乎所有敏捷开发所采用的一个主要的基础实践。敏捷开发除迭代式开发外,还包含了其他许多管理与工程技术实践,如演进式架构设计、敏捷建模、重构、自动回归测试(ART)等等。

瀑布模型、迭代模型和敏捷开发相关推荐

  1. 瀑布模型,迭代模型,敏捷开发

    瀑布模型: 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开.将软件生命周期划分为制定计划.需求分析.软件设计.程序编写. ...

  2. 浅谈软件研发模式中瀑布模型、迭代模型、敏捷模型

    要比较模型的区别,首先说说什么叫软件开发.软件开发是一项包括版本计划.需求捕捉.需求分析.设计到代码编写.调试.维护的一系列过程.软件开发不仅仅是编程.而对于软件研发(Reserch and Deve ...

  3. BS和CS架构,软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发、软件测试分类,测试的分类和理解

    1.BS和CS架构 1.1  BS:浏览器与服务器结构 优点:客户端无需安装,有web浏览器即可 缺点:在速度和安全性上需要花费巨大的设计成本 1.2  CS:客户机与服务器结构 优点:CS架构的页面 ...

  4. JAVA伴我行——项目篇(一):开发模型,敏捷开发和瀑布模型的结合

    在项目的开发过程中,我们或多或少都会遵循一定的模式.最常见的就是瀑布模型了(也许平时没有注意,但你确实在遵循这个模型). 瀑布模型的典型表现就是遵循以下顺序:需求调研/分析,详细设计/概要设计,编码阶 ...

  5. 从瀑布模型、极限编程到敏捷开发

    从瀑布模型.极限编程到敏捷开发 ---软件开发管理者思维的变化 Jack zhai 软件开发是一种对人类智慧的管理,对人大脑思维的"工厂化"管理.人是有感情的.有情绪的.变化的.相 ...

  6. 软件开发常见模型(瀑布模型、V模型、W模型、敏捷开发模型)

    软件开发经典流程图 一.瀑布模型 模型图 定义:瀑布模型(Waterfall Model)是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品. 地位:这是一 ...

  7. 软件生命周期模型(瀑布型、V模型、W模型、敏捷开发模型)

    软件生命周期 软件生存周期的各项活动:需求分析.概要设计.详细设计.coding.测试.交付.验收.维护 软件开发模型 瀑布模型 定义:瀑布模型(Waterfall Model)是将软件生存周期的各项 ...

  8. 几种常用的软件生命周期模型与敏捷开发解读

    瀑布式开发和敏捷开发,看过软件工程相关的书籍的同学,对瀑布模型,增量模型 ,喷泉模型,W模型,V模型以及H模型都是知道一些的,那么现在提到更多的敏捷开发它们之间有什么不同和适用的范围,是否敏捷开发适用 ...

  9. 瀑布式开发、迭代开发、敏捷开发的区别

    瀑布式开发.迭代开发,区别[都属于,生命周期模型] 两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试 ...

最新文章

  1. 怎么编写段错误(Segmentation fault)的程序
  2. lipo 制作通用版本 静态库
  3. Silverlight Image Source URI 加反斜杠引和不加的区别
  4. CodeForces - 160E Buses and People(线段树+三维偏序)
  5. CVE-2017-7921复现(解密文件)
  6. WGho_Setup 雨林木风 一键备份
  7. php ftp是什麽,FTP是什么
  8. DEFINE_PER_CPU
  9. Win10声音图标呈灰色的解决教程
  10. Font Manager :字体管理及批量安装工具
  11. 大端字节序小端字节序(网络字节序主机字节序)
  12. 最全面的C#开源项目介绍
  13. openssl加解密原理
  14. python简单计算器异常处理_Python计算器(正确除零)
  15. Acrel 2000E/G配电室综合监控系统
  16. 具体案例 快速原型模型_【复习资料】软件工程之快速原型模型
  17. 《幸福的勇气》笔记四——自立就是摆脱“自我”
  18. 微信自定义分享功能;分享朋友,分享到朋友圈
  19. java while语句打印三角形_java基础之五小节带你走进java流程控制—多重循环
  20. 小程序(四):微信登录功能的实现+云开发数据库

热门文章

  1. python依照概率抽样_统计概率思维之总体与抽样
  2. 版本管理工具和as的一些配置
  3. 通用路由封装协议--GRE的简单配置
  4. 国内TCP单边 加速 的 正确 做法
  5. 僵尸java7723_僵尸王国7723游戏盒子
  6. Xcode中iOS项目目标变为Mac的解决办法
  7. 手机控件查看工具uiautomatorviewer中一些方法
  8. BeanUtils.populate()抛出异常处理
  9. 谷歌金融 Onebox 实现实时信息更新
  10. 详细了解如何在npm上发布自己的包?