在做软件开发时,程序员们肯定接触过各式各样的软件开发模型,例如:写了再改模型、瀑布模型、增量模型等。其实,很多开发模型是在瀑布模型基础上衍生出来的。

然而,了解“V”模式开发模型的程序员应该不多。“V”模式开发模型是汽车电子行业在瀑布模型的基础上做了改进,以符合汽车ECU开发需要的模型。

今天来讲讲瀑布模型与“V”模式开发模型的异同。

瀑布模型

瀑布模型产生的历史背景是20世界70年代出现的软件危机,该模型将软件开发分为若干阶段,由于其类似于瀑布从上到下的过程,故称其为“瀑布模型”。


从图中可以看出,瀑布模型分为:项目提出及规划—需求分析—软件设计—软件编码实现—软件测试—上线运行等6个阶段。这几个阶段相互递进,也就是说本阶段完成后才能进行下一阶段的工作。

因此,瀑布模型在实践过程中具有以下局限性:

  • 试图将各步骤分离,然而这样严格的分离无法实现

  • 回溯修改几乎不可能,但软件开发需要时间回溯

  • 最终产品直到最后一个步骤才出现,而软件客户无法在早期直到软件原型,可能会引发软件功能与客户需求不匹配的情况

在移动互联网时代,快速抢占市场才是王道,如果企业采用瀑布模型开发软件,根本就无法存活。瀑布模型的上述局限性导致其已经无法完全适用于互联网行业的发展。

在我看来,瀑布模型不太适用于开发针对用户也就是针对“人”的软件。

然而,作为软件工程最先出现的开发模型,瀑布模型还有适用范围吗?当然有,比如汽车电子行业所采用的“V”模式开发流程便是遵循瀑布模型进行软件开发。

"V"模式开发模型

“V”模式开发模型是在瀑布模型的基础上发展而来的,那么什么是“V”模式呢?

该开发模型由于形似字母“V”而得名,但如果只看“V”的左边便能够看出是瀑布模型。因此,“V”模式开发模型是将瀑布模型进一步细化。

解释一下为何用"V"模型来表示,该模型开发流程仍是:系统需求—软件需求—软件设计—软件编码—单元测试—软件测试—系统测试—实车测试等几个步骤。

但该模型的特点是:

  • 系统需求确定后,系统测试工程师便开始写系统测试用例;
  • 软件需求确定后,软件测试工程师便开始写软件测试用例;
  • 软件设计确定后,软件工程师便开始写单元测试;
  • 最底层才是软件编码的实现。

也即是说,在软件编码完成前,系统测试用例、软件测试用例以及单元测试用例已经完成。

“V”模式开发流程将代码实现放在最后一步,即使客户需求发生变更也能很快做出修改,相比瀑布模型减少了回溯的成本和时间,提高了开发效率、降低了开发成本。

随着技术的更新,我认为汽车行业也不会严格采用“V”模型,毕竟现在很多车辆已经具备OTA工能。但涉及汽车安全方面的需求,可能还是需要遵循瀑布模型,毕竟车企会在保证车辆安全的前提下,才会将软件装车。

总结

不论是何种开发模型,其最终目的均是为了保证软件的开发质量。至于项目中使用何种模型,这需要结合软件特点以及所在行业共同确定。

ps: 欢迎关注我的公众号[酷酷的coder],分享转行菜鸟程序员成长过程汇总的烦恼和反思.

瀑布模型与“V”模式开发模型有何异同?相关推荐

  1. 104. 软件工程的开发过程几种模型(瀑布模型、快速原型开发模型、增量模型、迭代模型、螺旋模型)

    文章目录 1.前言 2.瀑布模型--按阶段严格完成 (1)瀑布模型把整个项目过程分成了六个主要阶段: (2)举个例子来理解瀑布模型 (3)优缺点 (4)解决的重要问题 3.快速原型模型--低成本快速的 ...

  2. 测试——开发模型(瀑布模型,螺旋模型,增量,迭代,敏捷)和测试模型(V模型,W 模型),软件开发生命周期与软件测试生命周期的对比

    目录: 软件测试生命周期与软件开发生命周期 开发模型 2.1 瀑布模型 2.2 螺旋模型 2.3 增量 和 迭代 2.4 敏捷 测试模型 3.1 V模型 3.2 W模型 1. 软件开发生命周期与软件测 ...

  3. 软件测试(概念Ⅱ) · 开发模型 · 软件的生命周期 · 瀑布模型 · 螺旋模型 · 增量模型 · 迭代模型 · 敏捷模型 · scrum · 软件测试模型之 V 模型 W 模型

    一.开发模型的由来 二.软件的生命周期 三.瀑布模型(Waterfall Model) 四.螺旋模型(Spiral Model) 五.增量模型(Incremental Model) 六.迭代模型(Ra ...

  4. 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结

    瀑布模型 在瀑布模型中,开发过程是线性的.任务和阶段按严格顺序一个接一个地完成.进度平稳地向下流动,就像瀑布上的水一样. 将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运行维护 ...

  5. 软件开发模型-瀑布模型、V形模型、原型模型、增量模型、快速开发、敏捷模型

    文章目录 0x01 边做边改模型 0x02 瀑布模型 0x03 V形模型 0x04 原型模型 0x05 增量模型 0x06 螺旋模型 0x07 快速应用程序开发模型 (RAD) 0x08 敏捷模型 0 ...

  6. 软件开发常见模型(瀑布模型、V模型、W模型、敏捷开发模型)

    软件开发经典流程图 一.瀑布模型 模型图 定义:瀑布模型(Waterfall Model)是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品. 地位:这是一 ...

  7. 瀑布模型之外,还有哪些开发模型?

    前一篇介绍了瀑布模型.你现在知道了,瀑布模型简单易行,对于软件质量是有比较高保障的.但是瀑布模型对于前期需求不明确的项目,很难开展需求分析,后续如果有需求变更,瀑布模型便很难响应. 而且,每个软件项目 ...

  8. hualinux 编程概念 3.13:瀑布模型之外,还有哪些开发模型

    目录 一.快速开发快速改 1.1快速原型模型 二.大瀑布拆小瀑布 2.1增量模型--按模块分批次交付 2.2迭代模型--每次迭代都有一个可用的版本 三.我该选择什么过程模型? 总结 我们在开发项目的时 ...

  9. 测试基础(瀑布模型、V模型、W模型)

    什么是软件测试? 通过一些方法手段对软件产品进行正确性.功能性.安全性.兼容性等验证的过程. (1)软件测试是一种实际输出与预期输出之间的审核或者比较过程. (2)经典定义:在规定的条件下对程序进行操 ...

最新文章

  1. 中的 隐藏鼠标菜单_如何移动隐藏删除mac菜单栏图标——macw教程
  2. 洛谷P4216 [SCOI2015]情报传递(树剖+主席树)
  3. 思科安全:加密流量威胁检测、加密流量威胁和恶意软件检测、识别无线干扰或威胁、Talos 情报源可加强对已知和新型威胁的防御、分布式安全异常检测...
  4. Thinkphp中import的几个用法详细介绍
  5. VS2010中如何更改项目名称【转】
  6. indexes和indices的区别(下标)
  7. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
  8. python正则表达式中原生字符r的作用
  9. 【Siddhi 5】Siddhi 5 源码编译
  10. 基本法求解位示图编号问题
  11. 学习之学习--混沌大学商学院--第一课--HHR计划
  12. k8s-身份认证与权限
  13. 【我的架构师之路】- golang源码分析之channel的底层实现
  14. 一文了解刀片服务器与机架服务器,原创好文!
  15. 30天自制操作系统——第四天使用C语言制作操作系统进度条
  16. 雅西高速交警列16处危险路段 司机需小心行驶
  17. iOS中的传感器---摇一摇, 计步器,距离感应,陀螺仪
  18. 【教程】批量删除B站抽奖动态
  19. 【佛山】地铁2号线“海口站”改“张槎站”设7换乘站
  20. 五、空气质量分析与结果展示

热门文章

  1. Dependency check配置Mysql数据库存储nvd数据
  2. Win7系统很卡应该如何解决?[系统天地]
  3. Kaggle教程 机器学习中级7 数据泄露
  4. amd的cpu跑python_Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py
  5. 中原工学院大学计算机挂科,挂科
  6. IBM推出区块链食品跟踪网络,零售巨头家乐福参与合作
  7. JAVA 开发规范标准(集合)
  8. SqlServer geometry 转 geography
  9. 转:大数据面试之_01_IT 从业人员面试小技巧
  10. C语言编程入门之--第一章初识程序