Introduction
Software Process Model Articles Series,
- What is Software Development Life Cycle
- Waterfall Model Used In Software Development
- Iterative Model Used In Software Development
- Spiral Model Used In Software Development
The V model is the SDLC Model, where the 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, which is a highly disciplined phase.
V Model Design
The V-model is the testing phase of the development phase designed in parallel. Hence, the validation is one side of the V-Model, the Verification is Another side of the V-Model, and the coding phase joins these two phases.
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 needs 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, 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, and 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 and 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 and 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 and 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 goes through different code reviews and code optimization tests so that the 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 created 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
- Accounts Module
- Manage Account Module
- Manage Contact Module
Integration testing
Integration testing is associated with Architectural design. After we tested each module separately, then we tried the fundamental principle of integration testing in which we combined individual units are combined and tested them 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 in 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, we tried the fundamental principle of system testing, which tests 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, we tried the fundamental principle of acceptance testing, in which we test the system for acceptability and 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 whether this system or product is acceptable for delivery.
V Model similar to Waterfall Model
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 explain the usage of the spiral model in the industry.
- Requirements are well defined and clearly defined in the document.
- Product definition is stable.
- There is no ambiguity in the requirements.
- V model is suitable for short projects.
Advantages of V-Model
- This is a highly declined model, so stages are completed one at a time.
- V-Model works well in small projects where requirements are well-defined.
- Simple to understand and easy to use
- Easy to manage due to the rigidity of the model, each phase has a specific deliverable and review process.
Disadvantages of V-Model
- High risks and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for ongoing and long projects.
No working software is produced until late during the life cycle.