W模型和瀑布模型与“V”模式开发模型有何异同?_w开发模型_杭州小哥哥的博客-程序员秘密

技术标签: java基础  java面试题  

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

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

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

瀑布模型

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

 

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

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

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

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

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

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

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

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

 

"V"模式开发模型

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

 

 

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

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

但该模型的特点是:

系统需求确定后,系统测试工程师便开始写系统测试用例;
软件需求确定后,软件测试工程师便开始写软件测试用例;
软件设计确定后,软件工程师便开始写单元测试;
最底层才是软件编码的实现。
也即是说,在软件编码完成前,系统测试用例、软件测试用例以及单元测试用例已经完成。

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

 

软件测试的W模型

W模型是由两个V模型组成,一个是开发阶段,一个测试阶段

可以看出,在W模型中开发和测试是并行的关系

局限性:虽然开发与测试并行了,但是在整个开发阶段,仍然是串行的,上一阶段未完全完成无法进入下一阶段,不支持敏捷模式的开发。

总结

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/W_317/article/details/114312473

智能推荐

大数据踩过的坑——Hive insert_狂奔吧蜗牛的博客-程序员秘密

我在对Hive表数据清洗后,使用了如下SQL将结果集插入到新表中:    insert into db_name.table_name_1 (        col_1,col2,col3    )    with temp_table_1 as (       select id,col_2       from db_name.table_name_2 where id = condatiti...

非常棒的javascript代码片段,自己收藏用_ddk0574的博客-程序员秘密

相当于是 javascript DOM 编程艺术(第二版)的读书笔记 上面有很多很棒的代码 自己收藏 真的是完全用的上。1 addLoadEvent 函数有了这个函数,不管你打算在页面加载完毕时需要执行多少函数,都可以轻松应对。function addLoadEvent(func){ var oldonload=win...

易恩“功率器件测试系统”乘风破浪,亮相PCIM Asia 2020!_易恩 mos_「已注销」的博客-程序员秘密

易恩“功率器件测试系统”乘风破浪,亮相PCIM Asia 2020!2020年11月16日-11月18日,为期三天的PCIM Asia 2020在上海世博展览馆开展。本届PCIM Asia(上海国际电力元件、可再生能源管理展览会),现场演绎电力电子行业最前沿的趋势,展示尖端产品和其应用解决方案,吸引了大量专业买家到场参观采购。国际研讨会就“面向汽车应用的小型、高可靠性隔离DC/DC变换器与SiC驱动技术”为题的主题演讲及以“模块化多电平变换器—原理和应用”的专题讲座压轴登场,继续获得现场国际研讨会演讲嘉宾

win7x64 win11,全新安装 python,PyQt5,Eric6--ERIC6 后端调试器无法启动错误 The Debugger backend could not be started_eric6-19.7_國士无雙的博客-程序员秘密

win7x64 win11 全新安装 python,PyQt5,Eric6eric官网 http://eric-ide.python-projects.org/安装eric6要求python3.4以上Qt5.3或更高PyQt5.3或更高QScintilla2.8或更高计算机必须可以联网一 安装QT5二 安装python网址: https://www.python.org/downloads/windows/ ,选择可执行文件安装程序安装过程中必须选择安装pip,安装过程中勾上add

单射(或称单变换)、双射与满射_双射变换_PaniniGu的博客-程序员秘密

单射(或称单变换)、双射与满射原文链接: http://www.cnblogs.com/wanghetao/archive/2012/03/16/2400619.html数学上,单射、满射和双射指根据其定义域和陪域的关联方式所区分的三类函数。单射:指将不同的变量映射到不同的值的函数。 满射:指陪域等于值域的函数。即:对陪域中任意元素,都存在至少一个定义域中的元素与之对应。 双射(

堆和栈的概念以及区别_请简述堆和栈的概念以及区别_屁啦啦小魔仙的博客-程序员秘密

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

随便推点

最小生成树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind..._aizhao3648的博客-程序员秘密

最小支撑树树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind最小支撑树树前几节中介绍的算法都是针对无权图的,本节将介绍带权图的最小支撑树(minimumspanningtree)算法。给定一个无向图G,并且它的每条边均权值,则MST是一个包括G的所有顶点及边的子集的图,这个子集保证图是连通的,并且子集中...

草根程序员转型做项目管理走过的点点滴滴之_编程的热爱与坚持_Anderslu的博客-程序员秘密

我叫Anders lu,来自河北,从我07年春天实习开始至今从事了10年的软件开发,对开发的热爱还在,我还会坚持。我相信正能量,但我也相信新老话:"20不加班、30不熬夜、40无工作"。

python找不到dll_解决Python安装时报缺少DLL问题【两种解决方法】_weixin_39593523的博客-程序员秘密

准备开始学习Python,但是刚准备环境搭建时就遇到了下面的错误:仔细的看了看,说是缺少DLL。对于这个问题的解决办法:方法一:1. 在安装包上点右键以管理员身份运行2. C:\Users\用户名\AppData\Local\Temp 文件夹上右键->属性->安全,给everyone 完全控制权限;方法二:使用windows的msiexec 命令,让我们先简单看看用法:msiexec ...

树莓派安装python以及新建虚拟环境_Go__home的博客-程序员秘密

文章目录1、更新树莓派系统2、安装python依赖环境3、下载python3.6版本源码并解压4、编译安装5、检查安装6、更换国内源6.1 备份源文件6.2 修改软件更新源6.3 将第一行修改成中科大的软件源地址(或者其它地址),然后ctrl+s保存、ctrl+x退出6.4 修改系统更新源6.5 将第一行修改成中科大的系统源地址6.6 同步更新源6.7 更新升级以安装软件包(这个过程耗时较长)7 新建虚拟环境7.1 安装 virtualenv 虚拟环境管理包7.2 切换到想要存放虚拟环境的目录7.3 建立虚

Vue循环渲染组件,v-model绑定的值影响同一类组件_循环生成的结构,v-model是同一个_清风三里_的博客-程序员秘密

Vue循环渲染组件,v-model绑定的值影响同一类组件(单选、多选、文本域),如何解决

推荐文章

热门文章

相关标签