瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型

北京喷泉公司 2024-04-13 阅读:15

 定义:

软件开发的全部过程、活动和任务的结构框架,通过该模型能清晰、直观地表达软件开发全过程,明确地规定要完成的主要活动和任务,它奠定了软件项目工作的基础。

 其中最为代表的就有此五类模型,瀑布模型,原型模型,增量模型,螺旋模型,喷泉模型,但是注意的是,在实际项目中,通常数个模型方法共同使用。

 定义:

 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品

特点:

软件开发的各个活动按线性方式进行

优:

为项目提供各阶段的检查点可在迭代模型中应用瀑布模型

缺:

 1、各阶段划分比较固定,阶段之间会产生大量文档,增大工作量

 2、由于开发模型为线性的,客户只能等到过程末期才见到效果,增大开发风险

 3、无法适应用户需求的变化

 定义:

原型法又称快速原型法,基本的思想是——在限定的时间内,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,对原型进行修改,统一使用,评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止

原型还分为两类:

抛弃型原型,此类原型在系统真正实现以后就抛弃不用了进化型原型,此类原型的构造从目标系统的一个或多个基本需求出发,通过修改和追加的过程逐渐丰富,演化成为最终的系统

特点:

实际可行具有最终系统的基本特征构造方便、快速、造价低

优:

增加用户与开发人员的交流用户在项目开发中占主导作用满足用户的动态需求降低开发风险

缺:

因为用户的参与,使得忽视原型对实际环境的适应性等技术问题,所以不适合大型、复杂项目开发对于技术层面远大于其分析层面的问题不宜使用原型法

定义:

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交

 特点:

最大特点就是将待开发的软件系统模块化和组件化增量模型是瀑布模型和原型进化模型的综合如同原型进化模型一样,增量模型逐步地向用户交付软件产品,但不同于原型进化模型的是,增量模型在开发过程中所交付的不是完整的新版软件,而只是新增加的构件

优:

将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整

缺:

待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦对项目管理人员管理全局水平有较高要求对开发人员也有要求

 定义:

螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。

特点:

最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止。螺旋模型更适合大型的昂贵的系统级的软件应用

优:

设计上的灵活性,可以在项目的各个阶段进行变更以小的分段来构建大型系统,使成本计算变得简单容易客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性

缺:

很难让用户确信这种演化方法的结果是可以控制的建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求

 定义:

 该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。

简化模型为:

 特点:

 1、面向对象生命周期模型。

 2、具有较好的可移植性。

 3、容易适应各种运行环境。

 4、迭代,无间隙。

 5、各阶段是相互重叠和多次反复的

优:

 1.各个阶段没有明显的界限,开发人员可以同时进行多步骤,故软件项目开发效率高,节省开发时间。

 2.软件的某个部分通常被重复多次。

缺:

 1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发,则开发过程中需要大量开发人员。

 2.需严格管理文档,从而又使得审核的难度加大,因为随时面对加入的各种信息、需求与资料等

假设你要为一家生产和销售长筒靴的公司开发一个软件,该产品将监控该公司的存货:跟踪从购买橡胶开始,到靴子生产,发货到各个连锁店,直至卖给顾客的全过程。全过程复杂,功能较多,需求不是很明确,开发有较大风险。请问用什么模型开发?想开发一个作为电话交换系统控制器的软件产品。电话交换系统,这是一个简单而熟悉的行业和领域,公司已有相类似的产品,请问用什么模型开发?你刚刚为生产和销售长筒靴的公司开发的存货监控软件很受用户欢迎,你所在的软件开发公司决定把它重新写成一个通用软件包,以卖给各种生产并通过自己的连锁店销售产品公司。因此,这个新产品必须是可移植的,并且应该能够很容易地适应新的运行环境(硬件或操作系统),满足不同用户的需求。请你选择最佳的一种开发模型。某大型企业计划开发一个“综合信息管理系统”,涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的想法是按部门优先级别逐个实现,边应用边开发。对此,需要一种比较合适的过程模型。请对这个过程模型作出符合应用需要的选择,并说明选择理由。软件开发的瀑布模型是()。A.适用于需求被清晰定义的情况 B.一种需要快速构造可运行程序的好方法 C.最适合于大规模团队开发的项目 D.已不能用于现代环境的过时模型现有一种软件开发方法,它将软件开发过程分成以下阶段:需求分析、原型开发和评价、系统设计和系统实现。这种软件开发方法称为。( )

 1、解答:采用螺旋模型。

 原因:螺旋模型可以降低产品不能满足用户需求的风险,也可以逐步取得明确的需求,逐步的完善。

 2.解答:采用螺旋模型。

 原因:螺旋模型可以降低产品不能满足用户需求的风险,也可以逐步取得明确的需求,逐步的完善。

 3.解答:应采用喷泉模型。

 原因:喷泉模型是典型的面向对象生命周期模型。具有较好的可移植性,容易适应各种运行环境,满足不同用户的需求。喷泉模型很好地缩短了软件维护的时间。

 4.解答:采用增量模型

 原因:增量模型比较适合该项目,理由是可使系统功能按应用领域逐个实现,并可按优先级别安排各功能构件的开发顺序,有利于边开发边应用。


评论(0)