瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型,瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。

瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

​​

迭代式开发也被称作迭代增量式开发迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。

什么是迭代式开发?

1、每次只设计和实现这个产品的一部分

2、逐步逐步完成的方法叫迭代开发

3、每次设计和实现一个阶段叫做一个迭代

在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。

迭代式开发的优点:

1、降低风险

2、得到早期用户反馈

3、持续的测试和集成

4、使用变更

5、提高复用性

​​

螺旋开发,1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。“螺旋模型”刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开。

“螺旋模型”的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。

(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

(3)实施工程:实施软件开发和验证;

(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

​​

敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不 尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织 型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

人和交互重于过程和工具。

可以工作的软件 重于求全而完备的文档。

客户协作重于合同谈判。

随时应对变化重于循规蹈矩

其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。

人员彼此信任 人少但是精干 可以面对面的沟通

项目的敏捷开发:

敏捷开发小组主要的工作方式可以归纳为:

1、作为一个整体工作

2、按短迭代周期工作

3、每次迭代交付一些成果

4、关注业务优先级

5、检查与调整

最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,40、30、20、10人或者更少。大规模的敏捷软件开发尚处于积极研究的领域。

四者对比区别:

传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。

迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。

螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。

适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化.

四种软件开发模式(瀑布、迭代、螺旋、敏捷),对比分析相关推荐

  1. 四种分布式数据库场景选型、优缺点对比分析和未来展望 | 趋势解读

    [摘要]随着互联网金融场景的不断拓展,海量的数据访问和处理造成传统的集中式数据库开始表现出性能瓶颈,分布式数据库的研究和场景使用应运而生,而数据的安全和合规也随着企业对数据使用的要求越来越高更加重视. ...

  2. 【广告算法工程师入门 13】机制设计-私人价值模型下四种拍卖形式的报价策略与均衡分析

    回顾 私人价值模型的五个假设:风险中兴,私有估价,独立性,对称型,理性. 四种拍卖形式:英式拍卖,荷兰式拍卖,第一价格密封拍卖,第二价格密封拍卖 从竞价策略上分析,荷兰式拍卖与第一价格密封拍卖存在等价 ...

  3. MySQL 四种事务隔离级别详解及对比--转

    http://www.jb51.net/article/100183.htm 接的隔离级别.它的语法如下: ? 1 SET [SESSION | GLOBAL] TRANSACTION ISOLATI ...

  4. python 文本相似度计算函数_四种计算文本相似度的方法对比

    作者:Yves Peirsman 编译:Bing 编者按:本文作者为Yves Peirsman,是NLP领域的专家.在这篇博文中,作者比较了各种计算句子相似度的方法,并了解它们是如何操作的.词嵌入(w ...

  5. 四种两轮差速驱动机器人底盘特性分析

    关注同名微信公众号"混沌无形",有趣好文! 原文链接:https://mp.weixin.qq.com/s/Mj5iLR_4TKeJiaOVqJf6Vg(包含原文PDF百度云下载链 ...

  6. Redis学习总结(16)——Redis 集群的5种使用方式,及各自优缺点对比分析

    一.常见使用方式 Redis 的几种常见使用方式包括: Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研 二.各种使用 ...

  7. 详解FOF基金的四种运作模式

    华夏资本联盟 官网:www.ccuorg.com 日前中国证监会发布了<公开募集证券投资基金运作管理办法>,将FOF正式纳入管理办法中,<办法>规定:80%以上的基金资产投资于 ...

  8. 【笔记】关于全栈开发、技术发展方向,软件开发模式的思考

    Full Stack Developer 全栈/全端开发者 掌握多种技能,并能利用独立完成产品的人. 优势-视野/全局思维,节约时间/经济成本. 横向开发,纵向开发  横向是把程序按数据,业务,表示等 ...

  9. 2016设置方框的尺寸_四种模板脚手架分类、优缺点及参数设置对比

    一.模板脚手架的分类及特点 模板脚手架按照连接形式,分为四类: ①钢管扣件式 ②碗扣式 ③承插型盘扣式 ④直插型盘扣式 钢管扣件式 规范JGJ130-2011<建筑施工扣件式钢管脚手架安全技术规 ...

  10. C++四种cast的详细介绍

    目录 一.static_cast 1.基本数据类型转换 2.指针和void指针的转换 3.父类和子类之间的转换 二.dynamic_cast 三.const_cast 1.加上const 2.去掉co ...

最新文章

  1. Java OOP(Object Oriented Programming)个人理解及总结
  2. mysql 删除数据 降低_活见鬼,明明删除了数据,空间却没减少!
  3. [mybatis]Configuration XML_mappers
  4. GBDT与XGBOOST
  5. 为什么现在越来越多的人买手机都喜欢从官网购买,而不从实体店买?
  6. vsftp不同帐号的目录和权限
  7. ASP.NET 首页性能的4大做法
  8. php session的一些理解
  9. for循环中包含跨服务查询优化
  10. WSL2 Docker Distro迁移
  11. 新东方的负载均衡架构探索和实践
  12. 公众号文章怎么批量下载导出?
  13. mac系统下安装pycharm
  14. 《Java并发编程的艺术》读书笔记
  15. 2020图灵奖颁给“龙书”两位作者!合作数十年,他们让计算机读懂码农代码
  16. 极路由通过SSH添加静态路由表之后无法跳转的问题
  17. MiniGUI移植过程
  18. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
  19. 2019中国信息安全自主可控行业政策盘点及网络安全行业分析
  20. ZooKeeper安装教程

热门文章

  1. 红帽linux镜像下载教程,最新版:如何到Redhat官网下载RedHat镜像及申请试用安装序号...
  2. 计算机硬件主板各部分内部结构,电脑主板各个模块介绍与原理解读
  3. kindeditor 文件上传 java_富文本编辑器kindeditor上传图片的配置方法
  4. 安卓桌面软件_抖猫视频桌面下载-抖猫视频桌面官网版v4.0.8
  5. kali之——安装免杀工具Veil-Evasion
  6. java调用webService方法
  7. 批量doc转docx的两种方法--Office Migration Planning Manager使用、插件使用
  8. 传奇私服网站php源码,传奇h5私服源码+教程
  9. 100兆的网速在电脑上怎样测试软件,电脑如何测网速多少兆(台式电脑怎么测网速多少兆)...
  10. Java编程必备软件