It seems the V Model is just the Waterfall Model with the bottom half of the Waterfall bent upwards to form a V. I don't see how it adds anything new.
From the diagrams, I also don't understand the flow. There are arrows pointing in all directions and I can't understand what comes first. Do we follow the V from the upper left, down to the bottom center then back up to the upper right? Or do we progress down the V doing everything higher before the item lower?
The internet is lacking a sufficient explanation of this model. It would be awesome if someone can explain it in true StackExchange form 🙂
Best Answer
V-model is an extension of Waterfall model, so don't expect it to be hugely different.
Basically, you follow V-model from left to right, just like in Waterfall model. In Waterfall, you do requirements, design, implementation, verification and finally maintenance. In the same way, in V-model, you do requirements, design, implementation, verification and maintenance: same steps in both cases.
The major differences with Waterfall are the way it is presented and the emphasis on testing.
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.
The diagram in your question is a bit more complicated. What it tries to show is that, for example, system design step leads not only to the system design document, like Waterfall model would suggest, but also the system tests design, which will later help writing system tests. The diagram just puts even more emphasis on testing. Finally, doing system test design helps in architecture design (it would be awkward to do architecture design regardless system test design).
Searching what other explanations on the internet, I can't avoid quoting the following article by Bhakti Satalkar:
This explanation is misleading. It would be true only if you replace “V-model” in the quote by any Agile method.
Unlike the article states, in V-model, testing is done after the coding; for example, see Wikipedia:
While, in V-model, system test design follows system design without waiting until product implementation is done, this doesn't mean that tests themselves are performed before coding. The author confounds V-model with Agile approaches like Test Driven Development (TDD) in Extreme Programming (XP).