V-Model in Software Engineering – Scaler Topics
Mục lục bài viết
What is a V-Model?
Every day we use multiple applications and software, and we notice how new features get added to our application every now and then. But we never think of how this application was developed first-hand, what all planning and processing might have happened. So in this article, we will study one of the popular software development life cycle models, known as the V Model, and will try to understand all of its features.
V model is a software development lifecycle model (SDLC) in which each step executes in a sequential manner with parallel testing for each development stage. The model is known as the V model because the diagram of the V model is quite similar to the V shape.
V model is an extension of the Waterfall model, with the improvement that each development phase will go through a testing phase before moving forward. Thus this model is also known as the Verification and Validation model.
V model is a strict model as the development only moves forward when the previous step is completed, and this is made sure by doing testing after each development activity.
Let us understand this model with the help of the above diagram.
Here we can see that each development phase is associated with the testing phase. And the development and testing happen parallelly, which forms a V shape, as shown in the diagram. The left half of the V shape depicts Verification, and the right half depicts Validation, and both halves are joined by a coding phase which gives it a V shape.
In the verification phase, the static analysis happens; that is, it is checked whether the present phase meets its desired requirements or not without actually executing the code.
In the validation phase, the dynamic analysis happens; that is, it is checked whether the present phase meets the desired requirements that customers want from the software or not by executing the code.
The Verification Phases of the V-Model
The verification phase is the first phase of software development in the V Model. In the verification phase, the proposed model is verified across all the possible dimensions. In this phase, developers make sure that the model is fulfilling all business requirements.
The verification happens in a sequential manner in various phases. The various phases are:
-
Business Requirement Analysis:
It is the very first phase of development. In this phase, the requirements and needs of customers are understood. What the customer expects from the final software, what functionalities customers want, and all such things are discussed in this phase.
This is indeed a very important phase, as many times there is confusion in the mind of both customer and developer regarding the final outcome of the software. Acceptance testing is carried out in this phase. -
System Design:
In this phase, the actual design of the system is decided. After the requirement analysis phase, based on the finalized requirements, the complete design of the system is discussed. It includes the hardware and the communicating setup requirements. -
Architectural Design:
This phase is also referred to as High-Level Design(HLD). After the system design is analyzed, the architecture of the system is decided. It consists of various modules, database tables, UML diagrams, etc. In this stage, all the communications between the internal modules of the system and the outer system are understood. -
Module Design:
This phase is also known as Low-Level Design (LLD). After the high-level design is analyzed, each component in the high-level design is discussed in detail. The compatibility of each internal module and its feasibility is checked. Unit testing is performed in this phase.
Coding Phase
This is the phase where actual coding and implementation take place. In this phase, the suitable programming language is decided based on the requirements. After code is written, it goes through multiple optimizations so as to produce the best possible functionality.
Validation Phase
The different validation phases are:
-
Unit Testing:
Unit testing is performed in the module design phase. Here each module goes through the testing by executing the code written for that module. It tests whether each module is able to perform its required functions or not. If not, the bugs are removed so as to produce effective modules. -
Integration Testing:
Integration testing is performed in the architectural design phase. In integration testing, we check whether each module is working properly with other modules or not. In integration testing, we do end-to-end flow testing by integrating all the modules. The bugs related to the compatibility between modules are resolved in this phase. -
System Testing:
System testing is performed in the system design phase. Here the functionality of the whole system is checked by checking the integration of hardware and software and how well they are coordinating with each other. The interaction of the system, both internally and externally, by means of hardware and software is tested. All the bugs related to hardware or software issues are resolved here. -
User Acceptance Testing:
User Acceptance testing happens in the requirement analysis phase. Here the system is checked in the user environment. If there is any problem in the user environment or there is any issue regarding compatibility with the other software available in the user environment then that is removed in this stage.