软件开发模型 - 瀑布模型 快速原型模型 增量模型 螺旋模型 及优缺点详解

一、软件开发过程模型

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段软件开发模型(目的)能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。
软件开发过程模型是软件开发人员在公司里工作的过程
在这里插入图片描述
常见的软件开发过程模型有:瀑布模型、快速原型模型、增量模型、螺旋模型,在日常开发中,瀑布模型最为常用,需重点学习。

二、瀑布模型在这里插入图片描述

1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落
瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架

优点
1. 为项目提供了按阶段划分的检查点。
2. 当前一阶段完成后,您只需要去关注后续阶段。
3. 可在迭代模型中应用瀑布模型。
4. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
缺点
1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4. 瀑布模型的突出缺点是不适应用户需求的变化。

三、快速原型模型在这里插入图片描述

快速原型是利用原型辅助软件开发的一种新思想经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量

优点
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点
1. 所选用的开发技术和工具不一定符合主流的发展。
2. 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
3. 使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。
4. 不适合大型项目的研发。

四、增量模型在这里插入图片描述

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

优点
1. 将待开发的软件系统模块化,可以分批次的提交软件产品,使用户可以及时了解软件项目的进展。
2. 以组件为单位进行开发降低了软件开发的风险,一个开发周期内的错误不会影响到整个软件系统。
3. 开发顺序灵活,开发热源可以对组件的实现顺序进行优先级排序,先完成需要稳定的核心组件,当组件的优先级发生变化时,还能及时的对实现顺序进行调整。
缺点
1. 要求待开发的团建能给进行增量式的开发,否则会很麻烦。
2. 在软件开发过程中需求变化是不可避免的,增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速开发模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

五、螺旋模型

在这里插入图片描述
1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:

四种象限
1. 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
2. 风险分析:分析评估所选方案,考虑如何识别和消除风险;
3. 实施工程:实施软件开发和验证;
4. 客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中

优点
1. 设计灵活可以在项目各个阶段进行变更。
2. 风险驱动,每个项目上线前都要进行风险分析。
缺点
1. 螺旋模型强调风险分析,需要相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必造成重大损失。
2. 如果执行风险分析将大大影响项目的利润,那么进行风险分析就毫无意义了。

  • 16
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值