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

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

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


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

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

瀑布模型

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

 


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


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


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


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


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


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


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


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

"V"模式开发模型

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

 

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


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


但该模型的特点是:


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

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

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

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

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


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

软件测试的W模型

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

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

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

总结

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

相关文章
|
Linux 网络安全
详解Linux常见命令及终端使用技巧
本文主要详解Linux常见命令及终端使用技巧
2800 10
|
12月前
|
人工智能 数据可视化 安全
瀑布模型是什么?在软件开发中有哪些主要阶段和步骤?
瀑布模型是一种经典的软件开发方法,将开发过程划分为需求分析、设计、编码、测试和维护等顺序阶段,强调阶段性和文档化。适用于需求明确、稳定且对安全性和可靠性要求高的项目。尽管存在局限性,但在特定场景下仍具重要价值。未来,瀑布模型可能与其他开发模型结合,更加灵活高效。
2302 3
瀑布模型是什么?在软件开发中有哪些主要阶段和步骤?
|
6月前
|
监控 安全 BI
防火墙事件日志及日志分析
在网络安全防护体系中,防火墙作为抵御外部威胁的第一道防线,其重要性不言而喻。而对防火墙日志进行分析,更是深入了解网络流量、发现潜在安全风险的关键手段。
404 1
|
缓存 搜索推荐 数据挖掘
TPS和QPS是什么?都是什么区别?
TPS和QPS是什么?都是什么区别?
8820 4
可观测性简史-可观测性价值精讲ppt-业务系统的护城河
可观测性价值精讲,文末随附可观测性简史,可以快速注册体验可观测性平台,构建业务系统的护城河,指标体系和价值体系
382 1
|
缓存 移动开发 算法
[计算机网络(第八版)]第三章 数据链路层(学习笔记)
[计算机网络(第八版)]第三章 数据链路层(学习笔记)
|
开发框架 Java 数据库
Spring Boot集成多数据源的最佳实践
Spring Boot集成多数据源的最佳实践
|
监控 安全 搜索推荐
企业应用集成(EAI):连接企业系统的技术探索
【6月更文挑战第25天】企业应用集成(EAI)技术连接异构系统,实现数据共享和业务流程优化。EAI包括界面、业务过程、应用和数据集成,提升协同效率、降低成本、改善客户体验、支持创新及强化风险管控。实施涉及规划、需求分析、选择方案、开发测试、部署监控及维护优化。EAI在企业信息化中扮演关键角色。
|
数据采集 Dart Apache
Github 2024-05-07 Python开源项目日报 Top10
在2024年5月7日的Github Trendings中,Python开源项目占据主导,共有10个项目上榜。其中热门项目包括:yt-dlp,一个增强版的youtube-dl分支,具有64K+星标;Home Assistant,专注本地控制和隐私的开源家庭自动化项目,拥有65K+星标;以及openpilot,一个开源驾驶辅助系统,支持多种车型,45K+星标。其他项目涵盖爬虫工具、实时应用框架Flet、可观测性平台Logfire等,涉及Python、Dart和C++等多种语言。
762 10
|
存储 Java 编译器
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
662 0