← New search

Other meanings of V-model (software development)

Software Engineering

V-model (software development)

The V-model is a software development process model that emphasizes the relationship between each phase of the development lifecycle and its corresponding testing phase. It is an extension of the waterfall model, where the development phases are arranged in a V-shape, with verification on the left side and validation on the right side. The model was first introduced in the 1980s by the German Federal Ministry of the Interior for use in military and government projects, and it has since been adopted in various industries, particularly in safety-critical systems.

1980s
Introduced
Origin decade
2
Main branches
Verification and validation
6
Typical phases
Common number of stages
1

Core principles and structure

The V-model is structured as a sequence of phases that mirror each other across the two arms of the V. On the left (descending) side are the development phases: requirements analysis, system design, architecture design, and module design. On the right (ascending) side are the corresponding testing phases: unit testing, integration testing, system testing, and acceptance testing. Each development phase has a direct counterpart in the testing phase, ensuring that verification and validation are planned from the start.1

The model emphasizes early test planning: test plans are developed in parallel with each development phase, not after coding. This reduces the risk of discovering defects late in the lifecycle, which is a common problem in the waterfall model. The V-model is often contrasted with agile methodologies, which are more iterative and flexible.2

2

Variants and standards

Several variants of the V-model exist, tailored to different domains. The V-Model XT (Extreme Tailoring) is a German adaptation that allows for agile practices and is used in federal IT projects. The V-Model 97 is another version that focuses on system development. In the automotive industry, the V-model is a key part of the Automotive SPICE (Software Process Improvement and Capability Determination) framework, which is used to assess and improve software development processes.

The V-model is also embedded in standards such as ISO 26262 for functional safety in road vehicles, which mandates a V-model-like development process for safety-related systems. This has made the V-model a de facto standard in safety-critical industries, where traceability and verification are paramount.3

3

Criticisms and limitations

Critics argue that the V-model is too rigid and does not accommodate changes well, especially in projects with evolving requirements. The model assumes that requirements can be fully defined upfront, which is rarely the case in complex software projects. This can lead to significant rework if requirements change after the design phase.4

Another limitation is that the V-model does not explicitly address risk management or iterative development, which are strengths of agile methods. However, some practitioners combine the V-model with iterative cycles, creating a hybrid approach that retains the structure of the V while allowing for incremental delivery. This is common in large-scale systems engineering projects.2

4

Lesser-known aspects

The V-model has a lesser-known variant called the "W-model," which adds a second V for testing the requirements and design documents themselves, emphasizing static testing. This model is used in some European defense projects.

Another obscure fact is that the V-model was originally developed for the German military's software projects, and its early documentation was in German, which limited its initial spread. The model's name comes from the shape of the diagram, but the "V" also stands for "Verification and Validation." In practice, the V-model is often used in conjunction with model-based systems engineering (MBSE), where the left side of the V is supported by formal modeling languages like SysML.5

Glossary

Verification
The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.
Validation
The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies the specified requirements.
Waterfall model
A sequential software development process in which progress flows steadily downward through phases of conception, initiation, analysis, design, construction, testing, and maintenance.
Automotive SPICE
A framework for evaluating and improving software development processes in the automotive industry.
ISO 26262
An international standard for functional safety of electrical and electronic systems in road vehicles.

The V-model remains a foundational process model in safety-critical software development, balancing structure with the need for rigorous verification and validation.