V-Model Used In Software Development
Tags: webdev, programming, software, softwareengineering
Published: 2023-06-23 16:36:34

The V model is the SDLC Model where execution of the process happens sequentially. V model is also known as validation and verification. The V model is the extension of the Waterfall model based on the associated testing phase and development stages. This means that every phase in the V model is directly associated with the testing phase this is a highly disciplined phase.

### V Model Design

The V-model is the testing phase of the development phase is designed in parallel, so the validation is one side of the V-Model and Verification is Another side of the V-Model, and the coding phase joins these two phases.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bivvsb4u4tc33n5t6rf9.png)

### Business Requirement Analysis

This phase includes the identification of system requirements by continuously communicating with customers and developers and Business Analysts (BA). This phase begins with the gathering of business requirements of the system this is the most important activity and need to be managed well most of the customer is not sure about what exactly they need. The system test plan is based on the system design.

### System Design

Once you have clear and crystal requirements then it’s time to design the complete system. The system design is the understanding of the complete product under development.

### Architectural Design

In the architectural design, one technical approach is proposed which based on this technical and financial decisions will be taken. In architectural design, the system design is divided into more modules taking up different functionality this is also called high-level design. In this phase, we study how the communication is occurred between the modules and with the other software system is understood clearly in this stage of the V-Model. 

### Module design

In this phase, the detailed internal design for all the systems modules is specified referred to as low-level design. It is very much important that the design is compatible with other module designs in system architecture as well as other external system designs. The unit test is an important part of the development phase this helps us to find the maximum error and faults in the early stage of the development process. These unit tests can be designed based on internal module design.

### Coding Phase

The actual coding of a module is designed in the design phase is taken up to the coding phase the best suitable programming language is decided based on architectural design. The coding is based on the coding standards the code is going through different code reviews and code optimization tests so that performance of the code is checked for the final build and external delivery.

## Validation Phase

The different phases of the validation of the V model are explained below.
### Module testing:
Unit testing is associated with the testing of modules. In module testing, we will test each module and ensure that every module and check whether the functionalities work properly in the way that we want. We create a separate and small testing procedure for every single module and tried to test each module of the application separately. Testing is done on the module level by dividing the module into chunks and checking the quality of the module separately. The following module is being tested under the umbrella of Module testing.

Example:

1. Accounts Module
2. Manage Account Module
3. Manage Contact Module

### Integration testing:
Integration testing is associated with Architectural design. After we test each module separately then we tried the fundamental principle of integration testing in which we combine individual units are combined and tested as a group to identify the faults and bugs from the result of integration testing. We used test drivers and test stubs to identify the faults and bugs from the group of units and clarify how individual units interact with each other and work as expected.

### System Testing:
System testing is directly associated with the system design phase. After Integration testing then we tried the fundamental principle of system testing in which we test complete software systems the purpose of this testing is to evaluate the compliance of the software product with the given software requirements.

### Acceptance testing:
Acceptance testing is directly associated with the requirement analysis phase. After Integration testing then we tried the fundamental principle of acceptance testing in which we test the system for acceptability and test the complete software system the purpose of this testing is to evaluate the compliance of the software product with the given business requirements and assess that whether this system or product is acceptable for delivery.

### Applications

V model is the same as the waterfall model both are sequential models and requirements are very clear before the start of the project. V-Model is widely used in the software development industry given below points explains the usage of the spiral model in the industry.

1. Requirements are well defined and clearly defined in the document.
2. Product definition is stable.
3. There is no ambiguity in the requirements.
4. V model is suitable for short projects.
### Advantages of V-Model

1. This is a high declined model so stages are completed one at a time.
2. V-Model works well in small projects where requirements are well defined.
3. Simple to understand and easy to use
4. Easy to manage due to the rigidity of the model each phase has a specific deliverable and review process.
### Dis-Advantages of V-Model

1. High risks and uncertainty.
2. Not a good model for complex and object-oriented projects.
3. Poor model for ongoing and long projects.
4. No working software is produced until late during the life cycle.