软件工程-五大模型概述

文章目录

  • 引言
  • 瀑布模型/线性模型/传统生命周期模型
    • 优点
    • 缺点
  • V模型
    • 优点
    • 缺点
  • 快速原型模型
    • 优点:
    • 缺点
      • 渐增模型/增量模型/迭代模型
    • 优点
    • 缺点
  • 螺旋模型
    • 优点
    • 缺点
  • 喷泉模型
    • 优点
    • 缺点
  • 改进的喷泉模型

参考文章

引言

软件过程就是从软件项目需求定义至软件运行维护的整个生命周期过程中系统开发、运行和维护所实施的全部过程。软件过程模型/软件生命周期模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。
对一个软件的开发无论其大小,我们都需要选择一个合适的软件过程模型,这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点

瀑布模型/线性模型/传统生命周期模型

瀑布模型是一个特别经典,老套的周期模型,一般情况下将其分为计划、需求分析、概要设计、详细设计、编码、测试、运行维护等几个阶段。
瀑布模型的周期是环环相扣的。每个周期中交互点都是一个里程碑,上一个周期的结束需要输出本次活动的工作结果,本次的活动的工作结果将会作为下一个周期的输入。
但是,如果当某一个阶段出现了不可控的问题的时候,就会导致返工到上一个阶段,甚至会延迟下一个阶段。
一般自己写过项目的,都是按这个流程走的。

img

优点

  • 清楚的标识了开发和测试的各个阶段,包含底层测试(单元测试)和高层测试(系统测试)。
  • 自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。

缺点

  • 自上而下的顺序导致测试工作在编码后,不能及时的进行修改。
  • 实际工作中,需求经常变化,导致V模型步骤反复执行,返工量很大,灵活度较低。
    缺点和瀑布模型类似

快速原型模型

快速原型模型的第一步就是创建一个快速原型,让开发者与用户直接可以通过原型进行交互,再进行充分的讨论和分析,最终弄清楚当前系统的需求,最后在原型的基础上开发出用户满意的产品。

image-20210328201611270

优点

  • 能在较短时间内向用户提交可完成部分工作的产品
  • 逐步增加产品功能,使用户有更多时间学习和适应产品,减少一个全新软件可能给用户带来的冲击。
  • 开发可以在一开始不用投入过多的人力资源。
  • 可以有效管理技术风险。

缺点

  • 与瀑布模型和快速原型模型相比增量模型需要更精心的设计,有时开发者很难给出大小适合的增量。
    很好理解,一开始拆分不好,可能后来的开发直接翻盘。
  • 一方面把软件看作一个整体,另一方面又要求把软件看作一个个构件序列,这就要求开发人员要有很强的技术能力。

参考文章

螺旋模型

螺旋模型尤其重视风险分析阶段,特别适用于庞大并且复杂高风险的项目。
螺旋模型通常由四个阶段组成:制定计划、风险分析、实施工程和客户评估
螺旋模型中,发布的第一个模型甚至可能是没有任何产出的,可能仅仅是纸上谈兵的一个目标,但是随着一次次的交付,每一个版本都会朝着固定的目标迈进,最终得到一个更加完善的版本。
螺旋模型适用于一个风险很高且很大的工程,所以务必要谨慎地分析风险。

image-20210328221130578

优点

  • 提高开发效率,节省开发时间。

缺点

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

改进的喷泉模型

image-20210328221701310

来源:Suprit

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月1日
下一篇 2021年3月1日

相关推荐