几种常见的软件开发模型:瀑布模型,快速原型模型、增量模型、螺旋模型、喷泉模型

瀑布模型

瀑布模型是20世纪80年代之前最受推崇的软件开发模型,它是一种线性的开发模型,具有不可回溯性。开发人员必须等前一阶段的任务完成后,才能开始后一阶段的工作,并且前一阶段的输出往往就是后一阶段的输入。由于它的不可回溯性,如果在软件生存周期的后期发现并改正前期的错误,那么需要付出很高的代价。传统的瀑布模型是文档驱动的:需求分析→设计→编码与单元测试→集成与系统测试→运行与维护。
瀑布模型的优点是过程模型简单,执行容易;缺点是无法适应变更。
瀑布模型适应于具有以下特征的软件开发项目。
(1)在软件开发过程中,需求不发生或发生很少变化,并且开发人员可以一次性获得全部需求。否则,由于瀑布模型较差的可回溯性,在后续阶段中需求经常性变更需要付出高昂的代价。
(2)软件开发人员具有丰富的经验,对软件应用领域很熟悉。
(3)软件项目的风险较低。瀑布模型不具有完善的风险控制机制。

快速原型模型

快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用······一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的,能做到按线性顺序开发的主要原因如下。
(1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的反功。
(2)开发人员通过建立原型模型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。

增量模型

增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程,相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
一般情况下,开发人员会首先实现提供基本核心功能的增量组件,创建一个具备基本功能的子系统,然后再对其进行完善。
增量模型最大的特点就是将待开发的软件系统模块化和组件化。基于这个特点,增量模型具有以下优点。
(1)将待开发的软件系统模块化,可以分批次的提交软件产品,使用户可以及时了解软件项目的进展。
(2)以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
(3)开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生发生变化时,还能及时的对实现顺序进行调整 。
增量模型的缺点是要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。
增量模型适用于具有以下特征的软件开发项目:
(1)软件产品可以分批次地进行交付。
(2)待开发的软件系统能够被模块化。
(3)软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
(4)项目管理人员把握全局的水平较高。

螺旋模型

螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。螺旋线每个周期对应于一个开发阶段,每个阶段开始时的任务是:确定该阶段的目标,为完成这些目标选择方案及设定这些方案的约束条件。接下来的任务是:从风险分析角度分析上一步的工作结果,努力识别并排除各种潜在的风险。通常用构建原型的方法来排除风险,如果风险不能排除,则停止开发工作或大幅度的削减项目规模;如果成功的排除了所有风险,则启动下一个开发步骤,在这个步骤的工作过程相当于纯粹的瀑布模型。最后是评价该阶段的工作成果并计划下一阶段的工作。

螺旋模型有许多优点:对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护知识模型的另一个周期,在维护和开发之间并没有本质区别。
螺旋模型主要适用于内部开发的大规模软件项目。如果进行风险分析的费用接近整个项目的经费预算,则风险分析是不可行的。事实上,项目越大,风险也越大,因此,进行风险分析的必要性也越大。此外,只有内部开发额项目,才能在风险过大时方便地中止。
螺旋模型的主要优势在于,它是风险驱动的,但是,这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

喷泉模型

喷泉模型是典型的面向对象生命周期模型。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。事实上,用面向对象方法开发软件时,在分析、设计、编码等项开发活动之间并不存在明显的边界。

    原文作者:小阿兜
    原文地址: https://blog.csdn.net/weixin_43814020/article/details/90784531
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞