The V model is one of the SDLC methodologies where project development completes in a linear manner forming a V like shape.
Alternatively, it gets called with names like Verification and Validation methods. It works on the association of a validation stage for each related development phase.
Development of every step has a direct linkage with the testing phase. The next step begins only after fulfillment of the previous one, i.e., for every dev task, there is a similar testing activity.
It is a static code analysis method which doesn’t require code execution. In this process, the evaluation of the product development takes place to confirm if it meets the needs of the client.
It is a dynamic analysis method and works while the code is getting executed. In this process, the software goes through the validation to check whether if it fulfills the client expectations or not.
V-Model has the Verification stage on one end and the Validation phase towards the finish. Both of these techniques coincides with the programming phase in the V style. Hence, we call it the V Model.
V Model’s Design Phase:
1. Requirement Analysis:
This stage records the complete communication happened with the client to understand his needs and expectations. This phase is known as Requirement Collection.
2. System Design:
This stage elaborates the design of the system and captures the detailed H/W and communication infra for developing the software product.
3. Architectural Design:
The team architects split up the System design into components having different functionality. The data exchange between the core modules and with the external world (other subsystems) get also noted down.
4. Module Design:
In this step, the entire system splits into smaller modules. The detailed design of system components gets written down with greater clarity. We may call it the Low-Level Design (LLD) document.
V Model’s Testing Phase:
1. Unit Testing:
The developer prepares the UTP (unit test plan ) while working on the module development. They include scenarios which get executed to uncover the bugs at the programming/module level.
2. Integration testing:
After finishing up the of unit-level validation, integration testing occurs. In this, the team integrates the components and validate the system. Integration testing happens to run in the Architecture design stage. This method confirms the communication of elements among themselves.
3. System Testing:
System testing puts the whole system into check and establishes that it has the desired functionality, interdependency, and data-exchange ability. This method verifies the product from both the functional and non-functional perspective.
4. User Acceptance Testing (UAT):
UAT is a testing activity which occurs in a production-level environment. It ensures that the delivered product fulfills the client requirements and the same is ready to run in the production.
Ne technologies are more complicated, faster, and forever evolving. However, each of them complies to the basic principles and standards of the IT industry.
1. Correct definition and the refinement of the client requirements.
2. Architect the software as per the client’s specification.
3. Follow a testing process which establishes that the final product adheres to the end user’s business requirements.
Principles of V-Model:
1. Large to Small:
In the V Model, the testing process runs in a hierarchical flow. The product team identifies the requirements, prepares the HLD (High-Level Design), and the Comprehensive Design stages of the product lifecycle. As these stages implement the features, the process gets more refined and descriptive.
2. Data and Process Integrity:
This principle insists on extending the association and cohesion of both Data and Process for producing a successful design. The identification of process components should happen for all the requirements.
This principle emphasizes being flexible in accommodating new projects irrespective of their size, complexity or timelines.
Every project requirement has an associated testing activity to establish its objectives. The direct correlation between them is known as Cross-Referencing.
5. Tactile Documentation:
This principle stresses the need for a document for the project which both the development or the support teams can access and follow the instructions for maintaining the software after it gets deployed in the production.
For example – a configuration doc, quick start guide, etc.
Why use it?
- Since the format of this model is static, hence it is easy to manage. Every stage in the V model produces the desired output followed by a review cycle.
- Testing occurs in each phase of the V model, hence more is the probability of discovering the defects.
When to use?
- V model is likely to give better results if the requirements are available beforehand.
- It is more suitable for teams which have enough senior and experienced resources.
V Model Advantages:
- V model promotes consistency in execution and has entry and exit criteria for beginning or leaving from a phase.
- It is highly successful for small projects where there is no ambiguity in the requirements.
- This method has straightforward and simple rules for product development.
V Model Disadvantages:
- Rigidity in the V model may lead to high risk and ambiguity.
- OO (object-oriented) and complex projects are prone to fall into issues.
- It may fail to cop up with projects which have unclear and changing requirements.
Must Read – Software Development Life Cycle (SDLC)