×

V-Model

The V-model is also known as the verification and validation model. The V-model is also known as the verification and validation model. In this, each phase of the SDLC must be completed before the next phase begins. It follows a gradual design process, the same as the waterfall model. This means that for every single phase in the development cycle, there is a directly connected testing phase. The testing phase is also planned in parallel with the development. So, there is the verification phase on one side and the validation phase on the other side. The coding phase connects to both sides of the V-model.

V-Model Verification phases

The V-model has several verification steps, each of which is described in more detail below.

Business Requirement Analysis

This is the first phase of the development cycle, where product requirements are understood from the customer's point of view. This phase involves detailed communication with the customer to understand his preferences and requirements. This is a very important activity and needs to be well managed, as most customers are not sure about what they need. Acceptance test design is planned at this level because business requirements can be used as an input for acceptance testing.

System Design

Once you have clear and detailed product requirements, it is time to design the entire system. System design will have an understanding and description of the entire hardware and communication setup for the product under development. The device test plan is developed based on the system design. Doing this in the first stage leaves more time for actual test execution.

Architecture Design

Architectural features are understood and designed at this stage. More than one technical approach is usually proposed, and a final decision is made based on technical and financial feasibility. System design is further broken down into modules taking different functionality. It is also known as High-Level Design (HLD).

Module Design

In this step, a detailed internal design is specified for all system modules, referred to as low-level design (LLD). The design must be compatible with other modules and other external systems in the system architecture. Unit testing is an essential part of any development process and helps to eliminate maximum faults and errors at a very early stage. These unit testing can be designed at this level based on internal module design.

Coding phase

The actual coding of the system modules designed in the design phase is taken up in the Coding phase. The most appropriate programming language is decided based on the system and architectural requirements.

V-Model Validation phases

The V-model has several validation steps, each of which is described in more detail below.

Unit Testing

In the V-model, a unit test plan (UTP) module is developed during the design phase. They are executed to eliminate errors at the UTP or unit code level. A unit is the smallest building block that can exist independently, for example, a program module. Unit testing verifies that the smallest unit can function correctly if it is different from other codes.

Integration Testing

Integration testing architecture is associated with the design phase. Integration testing is performed to test the coexistence and communication of internal modules within the system.

System Testing

System testing is directly related to the design phase of the system. System tests examine the functionality of the entire system and the communication of the system under development with external systems. Most software and hardware compatibility issues can be exposed during test execution of this system.

Acceptance Testing

Acceptance testing is related to the business needs analysis phase and involves testing the product in a user environment. Acceptance tests highlight compatibility issues with other systems available in user environments. It also explains non-functional issues such as load and performance faults in real user environments.

Advantages of the V-Model

  1. It is a highly-disciplined model, and the steps are completed at once.
  2. Works well for small projects where the requirements are very well understood.
  3. Easy to understand and use.
  4. It is easy to manage due to the rigor of the model.

Disadvantages of the V-Model

  1. This model is not suitable for complex and object-oriented projects.
  2. This model is not appropriate for long and ongoing projects.
  3. Not suitable for projects where there is a high to moderate risk of changing requirements.
  4. Once the software is in the testing phase, it is difficult to go back and make modifications.
  5. No working software is produced late during the life cycle.

Related Topics

Software Project Planning

Project planning is a management process that focuses on the activities required to complete a project successfully. Project planning helps to prevent problems that occur during the project development, such as a...

2 minutes read.

RAD Model in Software Engineering

RAD Model is an incremental process model and was developed by IBM in the 1980s and described in the book of James Martin entitled Rapid Application Development. Hence, user involvement is essential from...

3 minutes read.

Halstead's Software Metrics

Halstead’s software science metrics According to Halstead’s software metrics, a program is the implementation of an algorithm. These steps are considered as a number of tokens, and tokens are classified as...

6 minutes read.

Load Balancer – System Design

As software engineering students or IT enthusiasts, most of us have wondered how these huge IT applications handle the millions of simultaneous requests on their servers. The sheer hard work...

9 minutes read.

Metrics for testing

There are different types of metrics used in software testing to measure different parameters. So, for different purposes, different metrics are used by the developer. For example: The type of metrics...

3 minutes read.

Software Quality Assurance (SQA)

Software Quality Assurance (SQA) is a process that ensures the quality of software while developing software. It also ensures that all processes, procedures, and activities are monitored and properly implemented. It works along...

3 minutes read.

Project Monitoring and Control

Project Monitoring and Control Project monitoring and control process includes procedures which are performed to observe project performance so that potential problems are identified, and appropriate action can be taken to meet the desired performance...

3 minutes read.

Agile Model in Software Engineering

The Agile method acquires the features of the iterative or incremental process model. More focus on process adaptability and customer satisfaction through the timely delivery of working software. The agile method split the...

2 minutes read.

Constructive Cost Model (COCOMO)

The constructive cost model (COCOMO) is one of the most widely used software cost estimation models. This model is developed by B.W.Boehm in 1981. COCOMO model is based on LOC, i.e., the number...

5 minutes read.

What is System Design

System design is simply the systematic process used to design the basic architecture of an electronic control system by defining essential elements like modules or components and their interfaces. This...

3 minutes read.

Spiral Model

The problem with traditional software process models is that they do not adequately deal with uncertainty, which is inherent to software projects. Major software projects had failed because project risks were neglected, and...

3 minutes read.

Project Management Tools

Project Management Tools Risk and uncertainty increase in the size of the project, even when the project is developed according to the prescribed methods. We use project management tools to manage project management systems properly...

3 minutes read.

Routing Requests through Load Balancers

Let us first understand what load balancers are Assume a system works with multiple machines or servers, and as the requests arrive, they need to be routed to any one of...

3 minutes read.

Dropbox - System Design

While trying to upload or share any file, whether images, pdfs or documents, you would have come across the dropbox file posting service. Dropbox keeps all your data secure and...

9 minutes read.

Big-Bang Model in Software Engineering

In the Big-Bang Model, developers do not adopt any specific process. Development begins only with the necessary funds and efforts as input, and output is developed software that may or may not be...

1 minute read.

Iterative Model in Software Engineering

This model consists of the same phases as the waterfall model, but with fewer restrictions. Generally, the phases occur in the same order as in the waterfall model, but these may be conducted...

2 minutes read.

Strategies for System Design

System Design is crucial to showcase the System's architecture used for the business. System Design is essential to implement the interfaces and the data flow to satisfy all the requirements...

4 minutes read.

Software Configuration Management

Software Configuration Management The process of Software Configuration Management contains operations such as controlling, managing, and organizing the source-code, documents, and other essential components during the Software Development Life Cycle.SCM is essential for all project...

3 minutes read.

Structured Analysis and Design (SA/SD)

When the software systems keep getting bigger and more complex, you need a way to represent the model systematically. Structured Design and Structured Analysis, often referred to as SA/SD, is...

4 minutes read.

Project management activities

Project management activities Software project management involves many activities, including project planning, software product scope, cost estimation in various terms, scheduling of tasks and events, and resource management. Project management activities may include: Project PlanningScope ManagementProject...

2 minutes read.