`
zz563143188
  • 浏览: 2263764 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:576351
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1084452
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1650839
社区版块
存档分类
最新评论

软件开发模式对比(瀑布、迭代、螺旋、敏捷)

阅读更多

 

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

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


2、迭代式开发也被称作迭代增量式开发迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
什么是迭代式开发?
每次只设计和实现这个产品的一部分, 
逐步逐步完成的方法叫迭代开发, 
每次设计和实现一个阶段叫做一个迭代. 

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

迭代式开发的优点:
  1、降低风险
  2、得到早期用户反馈
  3、持续的测试和集成
  4、使用变更
  5、提高复用性



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

  “螺旋模型”的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。 
       (1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件; 

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

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

  (4)客户评估:评价开发工作,提出修正建议,制定下一步计划。 
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。


 



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

  • 人和交互 重于过程和工具。
  • 可以工作的软件 重于求全而完备的文档。
  • 客户协作重于合同谈判。
  • 随时应对变化重于循规蹈矩。


其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。
人员彼此信任 人少但是精干 可以面对面的沟通

项目的敏捷开发:
敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果; 
关注业务优先级; 检查与调整。

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




四者对比区别:

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

迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,

最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。

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

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

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


企业级项目实战(带源码)地址:  http://zz563143188.iteye.com/blog/1825168
收集五年的开发资料下载地址:  http://pan.baidu.com/share/home?uk=4076915866&view=share

参考文章:

1.瀑布模型百度百科参考  http://baike.baidu.com/view/551037.htm

2.迭代模型参考http://baike.baidu.com/view/1380740.htm

3.敏捷开发参考http://baike.baidu.com/view/309926.htm  

4.软件开发模式对比(瀑布、迭代、螺旋、敏捷)  http://www.cnblogs.com/-OYK/archive/2012/10/08/2714669.html

  • 大小: 67.7 KB
分享到:
评论
20 楼 yu120 2013-06-18  
   
19 楼 矢风快乐 2013-05-23  
太好了,终于有目标了,呵呵
18 楼 zz563143188 2013-05-12  
LinApex 写道
zz563143188 写道
LinApex 写道
这一块比较给力,看来我正处于 中级到高级之间。

那要继续努力,步入顶峰

当然,需要看看工作流引擎,搜索引擎。
有几块不太清楚,规则引擎?集成JCA?

现在正在研究Apache+tomcat负载均衡集群,此时有个问题,如果控制器,apache 宕机了怎么办?

对于规则搜索,你可以先了解SEO优化。JCA你要考虑它的成熟性和在事务上的性能。
至于宕机这需要你提供运行场景和环境,不然很难分析。
17 楼 LinApex 2013-05-11  
zz563143188 写道
LinApex 写道
这一块比较给力,看来我正处于 中级到高级之间。

那要继续努力,步入顶峰

当然,需要看看工作流引擎,搜索引擎。
有几块不太清楚,规则引擎?集成JCA?

现在正在研究Apache+tomcat负载均衡集群,此时有个问题,如果控制器,apache 宕机了怎么办?
16 楼 zz563143188 2013-05-10  
LinApex 写道
这一块比较给力,看来我正处于 中级到高级之间。

那要继续努力,步入顶峰
15 楼 zz563143188 2013-05-10  
JamesQian 写道
JMS(java管理体系)这个是Java Message service?

有消息管理系统
14 楼 LinApex 2013-05-10  
这一块比较给力,看来我正处于 中级到高级之间。
13 楼 JamesQian 2013-05-07  
JMS(java管理体系)这个是Java Message service?
12 楼 zz563143188 2013-05-04  
札小白 写道
多谢LZ,沿着路线,一步步前进!

是的,我也是这样在做。
11 楼 札小白 2013-05-04  
多谢LZ,沿着路线,一步步前进!
10 楼 zz563143188 2013-04-27  
fuyboy 写道
希望前辈能推荐提升这方面知识的书籍,小弟急需

http://pan.baidu.com/share/link?shareid=372668&uk=4076915866#dir/path=%2F%E5%AD%A6%E4%B9%A0%E6%96%87%E4%BB%B6  这里去下载
9 楼 fuyboy 2013-04-27  
希望前辈能推荐提升这方面知识的书籍,小弟急需
8 楼 zz563143188 2013-04-24  
cwchen 写道

惭愧啊,从业9年,学的都是皮毛,从来不深入,看到LZ列出的目录,不由得脸红起来

学习都是要有规划的,不然很迷茫。
7 楼 cwchen 2013-04-23  

惭愧啊,从业9年,学的都是皮毛,从来不深入,看到LZ列出的目录,不由得脸红起来
6 楼 zz563143188 2013-04-16  
zhang69011486 写道
zz563143188 写道
zhang69011486 写道
不错,顶一个,很清晰明了

你可以关注我博客更多的文章,基础知识应该够用了。

嗯,一直在关注,我入门不久,正在按照体系一点点前进,谢谢你的文章

zhang69011486 写道
zz563143188 写道
zhang69011486 写道
不错,顶一个,很清晰明了

你可以关注我博客更多的文章,基础知识应该够用了。

嗯,一直在关注,我入门不久,正在按照体系一点点前进,谢谢你的文章

好的,希望你能走上成功。
5 楼 zhang69011486 2013-04-16  
zz563143188 写道
zhang69011486 写道
不错,顶一个,很清晰明了

你可以关注我博客更多的文章,基础知识应该够用了。

嗯,一直在关注,我入门不久,正在按照体系一点点前进,谢谢你的文章
4 楼 zz563143188 2013-04-16  
zhang69011486 写道
不错,顶一个,很清晰明了

你可以关注我博客更多的文章,基础知识应该够用了。
3 楼 zhang69011486 2013-04-16  
不错,顶一个,很清晰明了
2 楼 zz563143188 2013-04-14  
sking945 写道
头一次看到这么清晰的说明!! 

还有更精彩的
1 楼 sking945 2013-04-14  
头一次看到这么清晰的说明!! 

相关推荐

    对比十几种软件开发模型 传统模型(瀑布模型,演化模型,螺旋模型,喷泉模型),敏捷开发,极限编程XP.zip

    对比十几种软件开发模型 瀑布模型 演化模型 螺旋模型 喷泉模型 快速原型模型 智能模型 混合模型 敏捷开发 极限编程XP

    从瀑布型开发到迭代型

    从瀑布型开发到迭代型开发的转变,很经典的论述。

    告别瀑布拥抱敏捷

    告别瀑布拥抱敏捷,敏捷开发,开发模式,新的开发方式

    敏捷开发模式.xls

    通俗易懂的解释了什么是敏捷开发模式!敏捷开发带来的好处和优点!传统的瀑布开发模式有哪些弊端,敏捷开发模式和瀑布开发模式的比较和不同!

    【软件测试003】软件开发(瀑布、快速原型、螺旋、敏捷开发)与测试(V、W、H)模型.pdf

    随后,您将了解到快速原型模型、螺旋模型以及近年来备受推崇的敏捷开发模型,包括Scrum框架的详细解读。这些模型各具特色,适应不同的项目需求,让您在软件开发过程中有更多选择。 进入软件测试模型的章节,您将...

    30天软件开发:告别瀑布拥抱敏捷 英文原版PDF(Software in 30 days)

    30天软件开发:告别瀑布拥抱敏捷 Software in 30 days: how agile managers beat the odds, delight their customers, and leave competitors in the dust

    30天软件开发 : 告别瀑布拥抱敏捷(En)

    英文---- 本书讲解了Scrum 敏捷软件开发方法,让你在30 天内开发出全新的软件。读完本书,你会发现用敏捷开发方法能够让软件开发事半功倍,节省人力物力,大大提高工作效率。

    敏捷软件开发与传统软件开发的对比分析1

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

    软件工程-软件开发模型比较分析.doc

    软件工程-软件开发模型比较分析 1.2 ... 本节将简单地比较并分析瀑布模型、螺旋模型和变换模型等软件开发模型。 1.2.1 瀑布模型 瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分 开,便于

    瀑布模式与敏捷开发.pptx

    从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈;...可在迭代模型中应用瀑布模型,并且它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

    敏捷开发-快速迭代

    借鉴敏捷开发模式,来改善软件开发过程,提高项目的开发效率。要想借鉴,首先得弄懂以下3个问题。百度百科中是这样解释的:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切...

    软件开发模型-瀑布模型

    瀑布模型,还有其他模型的介绍,内容不多,所以就没有什么资源分了,但是里面有一个相关的连接,可能帮助会比较大。

    敏捷与瀑布

    敏捷与瀑布,不同类型的开发模式,摘抄自网络

    敏捷开发知识总结

    敏捷软件开发是一个开发软件的管理新模式,用来替代以文件驱动开发的瀑布开发模式。   敏捷开发集成了新型开发模式的共同特点,它重点强调: 1.敏捷就是“快”。快才可以适应目前社会的快节奏,要快就要发挥个人的...

    Scrum敏捷软件开发过程

    Scrum敏捷软件开发过程 敏捷软件开发是软件项目的一个概念框架. 有许多建立在敏捷概念上的方法,如 Scrum 和 Extreme Programming (XP). 与僵化的、重量级的、...最大限度地降低短期固定时间的迭代式软件的开发风险.

    大话软件项目管理之软件开发模式

    常用的软件开发模型有哪些? 为什么有这么多的软件开发模型? 它们之间的区别在哪里? 它们分别适合什么类型的项目?

    软件项目管理:从瀑布到敏捷.pdf

    讲述项目管理的定义、特定和过程,以及从瀑布到敏捷的过程。 项目是一个独特的任务或是系统化的流程;项目的目的是创造新的产品或服务,完成产 品或者服务的交付。...软件项目有其特点,并由瀑布发展到敏捷。

    敏捷软件开发

    1.1.2.1. 敏捷软件开发和瀑布式开发 说到敏捷软件开发,就不得不提瀑布式开发。 瀑布式开发倾向于制定详实的计划,然后尽可能遵循计划实施。在瀑布式开发中,一般认为计划得越准确越好。 原因之一是为了减少返工,...

    从瀑布型开发到迭代型开发的转变.pdf

    从瀑布型开发到迭代型开发的转变.pdf

Global site tag (gtag.js) - Google Analytics