软件开发中有哪几种过程模型

如题所述

    1.瀑布模型

    瀑布模型的特点是:

    阶段间具有顺序性和依赖性,前一阶段结束后才能开始后一阶段的工作,前一阶段的输出是厚意阶段的输入;推迟实现观点,尽可能推迟程序的物理实现;强调质量保证观点,每个阶段必须完成规定的文档,每个阶段结束前完成文档以便及早改正错误。

    优点:

    (1)原理简单,容易掌握。

    (2)各阶段间都有验证和确认环节,以便进行质量管理

    (3)主要用于支持结构化方法

    缺点:

    (1)缺乏灵活性,不能适应用户的需求变化。

    (2)缺乏演化性,返回上一级的开发需要付出十分高昂的代价

    (3)是线性的软件开发模型,回溯性差。

    使用场合:

    (1)适合于软件需求比较明确或很少变化,且开发人员可以一次性获取到全部需求的场合

    (2)适合开发技术比较成熟,工程管理比较严格的场合

    (3)一般用于低风险的项目,适合开发人员具有丰富的经验。

    2.快速原型模型

    快速原型是快速建立起来的可以在计算上运行的程序,是软件的一个早期可运行的版本,它的功能是最终产品的子集。用途主要是获取用户的真正的需求。

    优点:

    (1)增强了开发者于用户间的交流,有助于满足用户的真实需求。

    (2)用户可及早得到有用的产品,可及早发现问题,随时纠正错误,

    (3)减小技术、应用风险,可降低开发费用,缩短开发时间

    缺点:

    (1)缺乏丰富而强有力的软件工具和开发环境

    (2)对设计人员及开发环境要求较高

    (3)难于做到彻底测试,更新文档较为困难

    适用场合:

    (1)预先不能确切定义需求的软件系统,或需求多变的系统

    (2)开发人员对设计方案没信心或对将要采用的技术手段不熟悉或把握性不大

    (3)原型模型可作为单独的过程模型使用,也常被作为一种方法或实现技术应用于其他的过程模型中。

    3.渐增模型

    渐增模型也叫增量模型,其实质上是分段的线性模型,是一种非整体开发模型,渐增模型把软件产品作为一系列增量构件来设计、编码、集成和测试,在项目开发过程中以一系列的增量方式来逐步开发系统。

    优点:

    (1)可分批次提交软件产品,方便用户及时了解软件开发进展情况,及早发现问题。

    (2)以组件为单位进行开发,降低了软件开发的风险。

    (3)开发顺序灵活,优先级最高的服务首先交付。

    缺点:

    (1)由于对整个软件系统的需求没有一个完整的定义,会给总体设计带来麻烦。

    (2)在把每个新的增量构件集成到现有软件结构中时,必须不破坏原来已开发出的产品。

    (3)软件的体系结构必须是开放的,即向产品中加入新构件的过程必须简单、方便。每次增量开发的产品都应当是可测试的,可扩充的。

    适用场合:

    (1)软件产品可以分批次地进行交互

    (2)待开发的软件系统能够被模块化

    (3)软件开发人员对应用领域不熟悉、难以一次性地进行软件开发时。

    (4)项目管理人员把握全局的水平较高时

    (5)对软件需求把握不准确、设计方案有一定风险的项目

    4.喷泉模型

    喷泉一词体现了迭代和无间隙特性,迭代是指开发软件系统时,某些部分经常要重复多次,相关功能在每次迭代中随之加入演进的系统。

    特点:

    (1)各阶段相互重叠,反映了软件过程的并行性

    (2)以分析为基础,资源消耗呈塔形,在分析阶段消耗的资源最多。

    (3)反映了软件过程迭代的自然特性,从高层返回低层无资源消耗

    (4)强调增量开发,依据分析一点、设计一点为原则,不要求一个阶段完成,整个过程是一个迭代的逐步提炼过程。

    5.螺旋模型

    螺旋模型是在结合瀑布模型与快速原型模型基础上演变而成的 ,并且加入了风险分析。其基本思想是,使用原型及其它方法来尽量降低风险。

    在螺旋模型中,将软件过程表示为一个螺旋线,在螺旋线上的每一个循环表示过程的一个阶段。整个过程的实现按以下四个步骤完成:

    (1)指定计划

    (2)风险分析

    (3)工程实施

    (4)客户评估

    适用场合:

    (1)适用于面向规格说明、面向过程和面向对象的软件开发方法。

    (2)也适用于几种开发方法的组合和产生的组合模型。

    缺点:

    (1)要求开发人员必须具有丰富的风险评估经验和专门知识。

温馨提示:答案为网友推荐,仅供参考