W模型和瀑布模型与“V”模式开发模型有何异同?

简介: W模型和瀑布模型与“V”模式开发模型有何异同?

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


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

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

瀑布模型

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

 


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


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


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


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


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


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


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


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

"V"模式开发模型

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

 

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


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


但该模型的特点是:


系统需求确定后,系统测试工程师便开始写系统测试用例;

软件需求确定后,软件测试工程师便开始写软件测试用例;

软件设计确定后,软件工程师便开始写单元测试;

最底层才是软件编码的实现。

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


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

软件测试的W模型

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

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

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

总结

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

相关文章
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
大模型的特点、重要概念及工作方式详解
大模型是具有大量参数和复杂结构的深度学习模型,通过处理大量数据实现高效任务解决。其特点包括参数规模庞大、深层网络结构、预训练与微调、多任务学习和自适应能力。重要概念有注意力机制、Transformer架构、迁移学习和分布式训练。大模型的工作方式包括输入处理、特征提取、预测与损失计算、反向传播与优化,以及评估与微调。这些特性使其在自然语言处理、计算机视觉等领域取得显著进展。
|
6月前
|
设计模式 算法
23种设计模式分类
23种设计模式分类
101 0
设计模式分类与介绍
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。
728 0
《面向对象分析与设计》一3.6 用况模型与OOA模型
本节书摘来自华章出版社《面向对象分析与设计》一书中的第3章,第3.6节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1074 0