×

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

Online Library Management System ER Diagram in Software Engineering

Description of an ER Diagram The relationship between entity sets that are kept in a database is depicted in a diagram known as an entity relationship diagram, or ER Diagram. Alternatively,...

10 minutes read.

Umbrella Activities in Software Engineering

The various stages of software engineering are tied to one another. Various software process models have different ways of expressing or making these processes available. To manage the development, quality,...

3 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.

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.

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.

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.

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.

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.

Object Oriented Metrices in Software Engineering

Metrics are used to measure the quality of software on different parameters. It provides acomputed accurate estimation of projects that help in developing software with minimal fault. “Metric is a set...

7 minutes read.

Twitter - System Design

You might have heard of Twitter, a widely used social media platform. Everybody tends to check it every few minutes. Imagine what you would do if you were asked to...

8 minutes read.

Netflix - System Design

System design questions are common in many technical rounds for huge tech companies like Amazon, Google Flipkart. Candidates get confused about how they should answer the system doesn't question in...

12 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.

Waterfall Model in Software Engineering

The most popular model is the waterfall model. This model has five phases: Requirement analysis and specification DesignImplementation & unit testing Integration and system testing phaseOperation and maintenance These phases often occur one...

3 minutes 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.

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.

Object Oriented Analysis and Design in Software Engineering

Using object-oriented programming, object-oriented analysis and design (OOAD) is a technical way for evaluating and organising an application, system, or business. It also uses visual modelling to direct stakeholder interaction...

9 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.

Incremental Model in Software Engineering

Incremental Model is a software development process where requirements are divided into several stand-alone software development modules. In this example, each module passes through the requirement, design, development, implementation, and testing phases. That subsequent...

2 minutes read.

Data Structure Metrics

In the size metric, we have learned to measure/ determine the size of a program by various software metrics such as line of code, Function count, and Token Count. A program...

6 minutes read.

Software Metrics

Introduction Software metrics is the term used in software engineering. Software engineering is the detailed study of the step-by-step making of user-interactive software that fulfills users' needs. Let's discuss two terms...

4 minutes read.