The software development life cycle has various models which follow a different approach to culminate a prototype to a successful product. In the previous chapter, you have learned about the Waterfall model - the V-model is an extension of the waterfall model. Usually, this model is pronounced as Vee model. This model is quite different from the Waterfall model because, in every phase of it, there is a related testing stage associated. In this chapter, you will learn about the V-Model and its approach to software development.
What is the V-Model?
The V-model of SDLC carries out its execution in a sequential manner. The structure it follows takes the shape of the letter V. This model is also popularly termed as a Verification and Validation model. Here, each phase has to be finished before beginning the next phase. A sequential design progression is followed like that of the waterfall model.
The Design of the SDLC V-Model
In parallel to the software development phase, a corresponding series of test phase also runs in this model. Each stage comprises a specific type of testing done, and once that testing is passed, only then the next phase starts.
- Verification: In the concept of verification in the V-Model, static analysis technique is carried out without executing the code. This evaluation procedure is carried out at the time of development to check whether specific requirements will meet or not.
- Validation: This concept of V-Model comprises of dynamic analysis practice (both functional as well as non-functional), and testing is done by code execution. The validation of a product is done once the development is complete for determining if the software meets up the customer hope needs.
So both verification and validation are combined and work in parallel to make the V-Model fully functional.
- Requirement Analysis: In this stage of SDLC, a detailed conversation with the customer is made to understand their requirements as well as anticipation. Requirement gathering is another name of this phase.
- System Design or High-level Design: In this phase of SDLC, the system is designed with the entire hardware & the setup is constructed for product development.
- Architectural Design: The breakdown of system design to a more detailed version, i.e., into modules which creates different functionalities. Transferring of data and connection between internal and external modules (i.e., the outside world) is evidently identified.
- Low-level design or Module Design: This particular phase breaks down the entire product development into tiny modules where each intended module is specified. So it is also termed as Low-Level Design (LLD).
- Unit Testing: During the development of module design, unit testing is carried out. This plan is executed for eliminating bugs that are found in code at the development of your software.
- Integration Testing: Once the unit testing is done, the integration testing is carried out where the integration of modules in the system is hardened. This testing is done in the architecture design phase.
- System Testing: This ultimate test is done when the entire product is completed in conjunction with the functionality, internal dependency requirement and merging of different modules into a single unit.
- User Acceptance Testing: This type of testing is carried out in front of the user or in a user environment where the product will ultimately set up. The UAT particularly test whether the product is capable enough to launch in the market or ready to work in the real world.