迭代、原型、螺旋、敏捷模型之间的区别

此前一直对于项目生命周期的模型中出现的各种模型不是非常了解,对于迭代、原型、螺旋、敏捷开发经常感觉都一样,这次细细思考了一会,有点感觉了,关键点就是这几种模型的侧重点不一样,就如同每个人虽然都是看同一个女人,但是眼睛的焦点是不一样的。

  1. 瀑布模型:强调开发工作(计划、设计、开发、测试、维护等)各阶段之间的先后顺序,不可以并行操作。
  2. 迭代模型:与瀑布模型不同,不再强调开发工作的序列化过程,而是将这些过程并行化,分为多个阶段,每个阶段都包含这些工作,只是不同阶段,不同的比例。
  3. v模型:强调将测试和开发同等重要,对于开发阶段都有与之对应的测试阶段。
  4. 原型化模型:强调产品以用户为中心,先开发出原形,和用户进行持续沟通,最终确定需求,并设计出最终的产品。氛围 进化型和抛弃型。
  5. 敏捷开发模型:强调以为核心,这点和原型化模型很像,但是更强调程序员团队和业务专家之间的紧密联系,频繁交付新的软件版本,紧凑的自我组织型团队,更注重软件开发中人的作用。
  6. 螺旋模型:强调的是风险,面对大型、复杂的项目,采用这种方式,要根据需求,制定计划,风险分析,设计原型,客户评估,这四个阶段不断重复。不断地增量发布,针对每次的原型或者产品不断的进行风险评估,及时调整方案、需求、设计,以此迭代方式,最终完成产品。 强调的是产品从小到大,不断改进,不断风险分析的过程。虽然有迭代,但角度与迭代模型不一样,虽然用原型,但侧重点不是用户需求分析,而是风险分析,风险不仅仅来源于需求。

原文地址:http://blog.51cto.com/ggwhsd/2164406

时间: 2024-10-04 04:20:19

迭代、原型、螺旋、敏捷模型之间的区别的相关文章

MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本章迭代更新) 一.数据库之间的区别 MySQL MySQL概述 关系型数据库.无论数据还是索引都存放在硬盘中.到要使用的时候才交换到内存中.能够处理远超过内存总量的数据. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目

云计算模型laas paas saas 三者之间的区别(转)

云计算模型的三种模型 – 基础架构即服务(IaaS).软件即服务(SaaS)和平台即服务(PaaS) —— 正在快速演变.而云服务提供商都试图在模式栈的上下两个方向进行扩展,以期能提供一站式的IT服务. Jeffrey Kaplan是咨询公司ThinkStrategies Inc.的常务董事,他认为首先了解历史有助于理解三种模式是如何进化交融的.首先,从SaaS谈起. 在2006年,Salesforce.com吸引其客户关系管理(CRM)SaaS服务最终用户(而不是IT人员)的战略初见成效,其他

软件工程中的瀑布模型和敏捷模型

还有两天笔者就要面临一次大型的软件工程项目验收了.这个项目笔者已经管理了两月有余.在管理的过程中,利用课堂中所学习的理论知识和自己实践过程中的摸索,本人逐渐体会到了不同软件管理模型之间的差异,并具备了一定的选择管理方案的能力. 首先,对于绝大多数人来说,刚接手一个新项目的时候都会不自觉的选择"瀑布模型"----我们跟客户交谈后指定需求分析,之后进行简单的设计,之后编写代码,提交,完成.新手会不自觉的选择这种方案,因为它直白,想到哪一步做到哪一步,需要做什么就做什么.但是,这在有些时候是

多个敏捷团队之间的版本控制

http://www.infoq.com/cn/articles/agile-version-control/ 多个敏捷团队之间的版本控制 如果我们有多个敏捷团队在同一个代码库上工作时,如何将彼此之间代码互相冲突的风险最小化?如何确保每个迭代结束时拥有一个干净的.可发布的软件版本?本文讲述了关于如何在敏捷的环境中与多个团队共同进行版本控制工作的实例——这正是我们在<Scrum and XP from the Trenches>中描述的公司所采纳的方式. 本文并非专为版本控制专家所写,实际上这样

socket,tcp,http三者之间的区别和原理

http.TCP/IP协议与socket之间的区别下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层 例如HTTP.SMTP.SNMP.FTP.Telnet.SIP.SSH.NFS.RTSP.XMPP.Whois.ENRP 6 表示层 例如XDR.ASN.1.SMB.AFP.NCP 5 会话层 例如ASAP.TLS.SSH.ISO 8327 / CCITT X.225.RPC.NetBIOS.ASP.Winsock.BSD sockets 4 传输层 例如TC

第二十一节,基本数据类型,之间的区别

基本数据类型,之间的区别 数字类型int => 整数 浮点数float => 浮点数(1.55) 字符串str => 字符串 字节类型bytes => 将字符串转换成进制代码,将进制代码转换成字符串,(如16进制,10进制,2进制) 布尔类型bool => 真,假 列表list => 有序,内容可重复,可迭代,可修改 元组tuple => 有序,内容可重复,可迭代,不可修改 字典dict => 无序(有键),内容可重复,可迭代,可修改 集合set =>

编写高质量代码改善C#程序的157个建议——建议28:理解延迟求值和主动求值之间的区别

建议28:理解延迟求值和主动求值之间的区别 要理解延迟求值(lazy evaluation)和主动求值(eager evaluation),先看个例子: List<int> list = new List<int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var temp1 = from c in list where c > 5 select c; var temp2 = (from c in list where c > 5 sele

servlet与Javabean之间的区别

在JSP中调用JAVA类和使用JavaBean有什么区别? 可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类.特殊在可以通过<jsp:useBean/>调用JavaBean而其他类,可以和一般java中一样使用.  Bean的参数中还可以指定范围, <jsp:useBean   scope="application"   />该Bean在服务器的JVM中将只有一个实例. Bean是和WebServer相关的,不同的页面可以通过Bean 交互.