有人可以解释V模型的过程吗?为什么与瀑布模型不同?


19

似乎V模型只是瀑布模型,其瀑布的下半部分向上弯曲以形成V。我不知道它如何添加任何新内容。

从图中,我也不了解流程。有指向各个方向的箭头,我不明白首先要做什么。我们是否从左上方跟随V,向下到底部中心,然后再回到右上方?还是我们降低V,在物品降低之前先做所有升高的事情?

互联网对此模型缺乏足够的解释。如果有人可以用真正的StackExchange形式解释它,那就太好了:)

V型

Answers:


17

V模型是Waterfall模型的扩展,因此不要期望它有很大的不同。

基本上,您从左到右遵循V模型,就像在瀑布模型中一样。在Waterfall中,您可以进行需求,设计,实现,验证以及最终维护。在V模型中,您以相同的方式执行需求,设计,实现,验证和维护:两种情况下的步骤相同。

Waterfall的主要区别在于其呈现方式和对测试的强调。

将流表示为V形有助于区分编码之前的所有内容(需求,体系结构和设计)和编码之后的所有内容(本质上是测试)。尽管测试只是Waterfall中五个步骤之一,但实际上似乎只是V模型中过程的一半。

您所问的图表有点复杂。它试图显示的是,例如,系统设计步骤不仅可以引出瀑布模型所建议的系统设计文档,还可以引出系统测试设计,这将在以后帮助编写系统测试。该图只是更加强调了测试。最后,进行系统测试设计有助于体系结构设计(无论系统测试设计如何,进行体系结构设计都是很尴尬的)。


在互联网上搜索其他解释时,我不可避免地引用了Bhakti Satalkar的以下文章

瀑布模型和V模型之间的主要区别在于,在瀑布模型中,测试活动是在开发活动结束后进行的。另一方面,在V模型中,测试活动从第一阶段本身开始。换句话说,瀑布模型是一个连续的过程,而V模型是一个同时的过程。与使用瀑布模型制作的软件相比,使用V模型制作的软件中的缺陷数量更少。这是由于存在这样的事实,即存在在V模型中同时执行的测试活动。因此,在确定用户要求时使用瀑布模型。如果用户的需求不确定并且不断变化,则V模型是更好的选择。

这种解释具有误导性。仅当您用任何敏捷方法替换引号中的“ V型”时,这都是正确的。

与文章所述不同,在V模型中,测试是在编码后完成的;例如,请参阅Wikipedia

对V模型的普遍实践批评是,当开发的早期阶段已经超支但实施日期仍是固定的时,它会导致测试在开发结束时被压缩到狭窄的窗口

尽管在V模型中,系统测试设计遵循系统设计而无需等待产品实现完成,但这并不意味着测试本身是在编码之前执行的。作者将V模型与敏捷方法(例如极限编程(XP)中的测试驱动开发(TDD))相混淆。


1
是的-像您引用的那句话一样使我感到困惑!它看起来好像进程正在向下进行,并且没有遵循V
CodyBugstein 2014年

2
另外,在瀑布上,V模型显示了现实中存在的责任水平层。例如,较高的级别同时显示了需求和系统测试,而不必担心源代码的细节。源代码级别与最终产品是分开的(非常大型的系统需要-您可能需要20个CSCI,每个CSCI由数百万个SLOC组成。)
mattnz 2014年

Representing the flow as V-shape helps making the difference between everything which comes prior to coding (requirements, architecture and design) and everything which follows coding (essentially testing). While tests are just one of five steps in Waterfall, it looks like practically half of the process in V-model.=钉牢了!谢谢
CodyBugstein 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.