您的位置:首页 > 其它

【软件工程】 软件开发模型

2016-10-23 22:18 232 查看


瀑布模型-Waterfall Model

定义:将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型。

优点:①容易理解;②管理成本低。

缺点:①用户必须完整、正确、清晰表达需求;②进度难以把控。

演化模型-Evolutionary Model

● 原型模型-Prototype Model(探索型、实验型、演化型):

定义:通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。

优点:①避免设计错误;②缩短开发周期;③降低成本。

缺点:用户难以接受重新生产产品这件事情。

● 螺旋模型-Spiral Model:

定义:采用周期性的方法来进行系统开发,该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。

优点:①设计灵活;②成本计算容易;③开发人员和用户对每个演化层的风险了解

缺点:建设周期长,无法满足当前用户需求

增量模型-Incremental Model

定义:采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。

优点:①第一个可交付版本所需要的时间很少;②风险变小;需求变更变少。

缺点: ①初始增量可能会造成后来增量的不稳定;②因为重新开发,发布,管理成本会上升。

喷泉模型-Water Fountain Model

定义:采用对象技术的软件开发,开发过程自下而上周期的各阶段是相互迭代和无间隙。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。

优点:①各个阶段没有明显界限;②可以同步开发,开发效率高。

缺点:需要大量的开发人员,需要严格管理文档。管理难度大,审核难度大。

总结

从开始软件危机的爆发,人们发现软件难以控制,所以引入了工程的思想。

工程的思想第一是阶段完成,第二是标准。

瀑布模型应用而生,按照制定的计划一步步的去完成。

但是问题来了,软件开发是从无到有的过程,我们往往是在创造一个新的东西。那么所谓的计划如果不符合实际,这种模型是很难应用的。所以,按照计划的结果就是最后发现不是自己想象的那样。

演化模型来解决需求不清这个问题。

既然最后发现做出的产品不是想要的样子,修改的话之前的人力物力就相当于白白浪费。那么就快速做出一个简易的原型用来探明需求到底是什么。通过多次的迭代,将原型演化成最终目标。但是这样开发的话每次的原型都会抛弃掉,这也是一种不可避免的浪费。

增量模型来避免这种浪费。

结合快速开发和阶段性开发,同时利用上每一次的产品。那么最好的方法就是增量,每一次都是在之前的产品上增量开发。这样依然会出现问题,因为你抱着不抛弃的精神在原来的基础上开发,那么如果原来的基础出问题了,整体就出问题了。

喷泉模型的提出了一种新的思路,面向对象。

它的各个阶段是重叠的,这样一来开发人员同步进行。效率当然立刻上来了,但是很显然管理就会变得困难,因为没有阶段了,没有工程所谓的起始和终止。另外,文档的审计也变得困难,因为文档作为一种对现实世界事物的反映,如果现实很复杂,是动态的,作为它的一个印象,也是一样的复杂。

总体来看,从软件危机的出现引进了工程学的思想,进行管理。

从但是工程学的思想还是“过程化”的,而过程化是应付成熟重复的劳动,所以存在着一些弊端。之后加入了面向对象的思想,这样从工程就走入了管理。

当然还有基于构建的开发模型和形式化方法模型都是在添加新的思想,来解决当前存在的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: