软件开发模型对比

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础

下面对瀑布模型 增量模型 快速原型模型 螺旋模型 喷泉模型做简要分析。

1.瀑布模型

瀑布模型是经典的软件开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,每个阶段之间的依赖性强

优点:1)为项目提供了按阶段划分的检查点  2) 当前一阶段完成后,只需要去关注后续阶段

缺点:1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
            2) 与用户见面晚,从而增加了开发的风险;
            3) 早期的错误可能要等到开发后期的测试阶段才能发现,发现问题越晚代价越高

适用范围:需求很明确的软件开发项目;

在开发时间内需求没有或很少变化;

分析设计人员应对应用领域很熟悉;

低风险项目(对目标、环境很熟悉);

用户使用环境很稳定;

用户除提出需求以外,很少参与开发工作

2.增量模型

增量模型是一种非整体开发的模型,分为两种形式:基于瀑布模型的渐增模型;基于原型的快速原型模型

增量模型的优点:人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量客户可以不断地看到所开发的软件,从而降低开发风险

缺点: 1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。 
                    2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

优点:减少由于软件需求不明确带来的开发风险。

缺点:所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。

3.螺旋模型

螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析,主要分为四个工作步骤:

(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
  (2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
  (3)实施工程:实施软件开发和验证;
  (4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

优点:1)设计上的灵活性,可以在项目的各个阶段进行变更。
        2)以小的分段来构建大型系统,使成本计算变得简单容易。
        3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
        4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
        5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品

缺点:1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
       2)过多的迭代次数会增加开发成本,延迟提交时间。

4.喷泉模型

喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。

优点:该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

时间: 2024-10-10 23:06:32

软件开发模型对比的相关文章

软件开发模式对比

1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法.瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析.设计.编码.集成.测试.维护的步骤顺序进行.步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等. 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂.瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的. 2.迭代式开发也被称

软件工程之软件开发模型类型

软件工程之软件开发模型类型 1.边做边改模型 2.瀑布模型 3.演化模型 4.增量模型 5.螺旋模型 6.喷泉模型 7.敏捷模型-SCRUM 各种模型的优点和缺点 瀑布模型 文档驱动 系统可能不满足客户的需求 快速原型模型 关注满足客户需求 可能导致系统设计差.效率低,难于维护 增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差.效率低 螺旋模型 风险驱动 风险分析人员需要有经验且经过充分训练 1边做边改模型(Build-and-Fix Model) 国内许多软件公司都是使用

软件工程--常用软件开发模型比较分析

正如任何事物一样,软件也有其孕育.诞生.成长.成熟和衰亡的生存过程,一般称其为"软件生命周期".软件生命周期一般分为6个阶段,即制定计划.需求分析.设计.编码.测试.运行和维护.软件开发的各个阶段之间的关系不可能是顺序且线性的,而应该是带有反馈的迭代过程.在软件工程中,这个复杂的过程用软件开发模型来描述和表示. 软件开发模型是跨越整个软件生存周期的系统开发.运行和维护所实施的全部工作和任务的结构框架,它给出了软件开发活动各阶段之间的关系.目前,常见的软件开发模型大致可分为如下3种类型.

软件评测时笔记_软件开发模型学习20161021

软件开发模型 为了指导软件的开发,可以用不同的方式将软件生命周期中的所有开发活动组织起来,从而形成了不同的软件开发模型.常见的开发模型有瀑布模型(Waterfall Model).快速原型模型(Rapid Prototype Model).演化模型(Evolutionary Model).增量模型(Incremental Model).螺旋模型(Spiral Model)和喷泉模型(Water Fountain Model)等. 1.瀑布模型 瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划.

(未完结)软件开发模型比较

软件开发模型比较 软件开发模型是跨越整体软件生命周期的系统开发,测试.运维的全部工作和任务的结构框架,他给出了软件开发各个阶段之间的关系. http://blog.chinaunix.net/uid-11572501-id-2868606.html 瀑布模型:         常见开发模型有: 瀑布模型. 快速原型模型.增量模型.螺旋模型等,这里主要介绍瀑布模型:瀑布模型是一种自上而下对的模型. 瀑布模型将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运维等六个基本活动.

软件工程与软件开发模型、软件开发方法

什么是软件工程? 软件工程一直以来都缺乏一个统一的定义. IEEE给出的定义是:软件工程是:1.将系统化的.严格约束的.可质量化的方法应用于软件的开发.运行和维护,即将工程化应用于软件:2.在1中所述方法的研究. 比较认可的一种定义是:软件工程是研究和应用如何以系统性的.规范化的.可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来. 什么是软件开发方法(或软件开发过程)? 软件开发方法找不到统一的定义,但是我们说极限编程(Extr

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

1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法.瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析.设计.编码.集成.测试.维护的步骤顺序进行.步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等. 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂.瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的. 2.迭代式开发也被称

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

1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法.瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析.设计.编码.集成.测试.维护的步骤顺序进行.步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等. 瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂.瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的. 2.迭代式开发也被称

几大软件开发模型之间的区别与联系

软件有其孕育.诞生.成长.成熟和衰亡的生存过程,一般称其为“软件生命周期”.软件生命周期一般分为6个阶段,即制定计划.需求分析.设计.编码.测试.运行和维护.典型的开发模型有:瀑布模型.增量模型.快速原型模型.螺旋模型.喷泉模型.智能模型.混合模型等. 瀑布模型,其最大的特点就是简单,他按照软件生命期划分成六个部分顺序进行.但是这其中也会带来问题,相较于快速原型模型和增量模型,瀑布模型要求用户在最初就提出一套清晰完整的需求,在软件编程之前必须先撰写出详细的需求说明书.用瀑布模型开发的软件系统可能