V Model

SDLC

V Model

The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and Validation model.

The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle, there is a directly associated testing phase. This is a highly-disciplined model and the next phase starts only after completion of the previous phase.

V-Model - Design

Under the V-Model, the corresponding testing phase of the development phase is planned in parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the other side. The Coding Phase joins the two sides of the V-Model.

waterfall

V-Model - Verification Phases :

  • Business Requirement Analysis − This is the first phase in the development cycle where the product requirements are understood from the customer’s perspective. This phase involves detailed communication with the customer to understand his expectations and exact requirement. This is a very important activity and needs to be managed well, as most of the customers are not sure about what exactly they need. The acceptance test design planning is done at this stage as business requirements can be used as an input for acceptance testing.

  • System Design −Once you have the clear and detailed product requirements, it is time to design the complete system. The system design will have the understanding and detailing the complete hardware and communication setup for the product under development. The system test plan is developed based on the system design. Doing this at an earlier stage leaves more time for the actual test execution later.

  • Architectural Design −Architectural specifications are understood and designed in this phase. Usually more than one technical approach is proposed and based on the technical and financial feasibility the final decision is taken. The system design is broken down further into modules taking up different functionality. This is also referred to as High Level Design (HLD).

  • Module Design −In the module design phase, the system breaks down into small modules. The detailed design of the modules is specified, which is known as Low-Level Design

  • Coding Phase −After designing, the coding phase is started. Based on the requirements, a suitable programming language is decided. There are some guidelines and standards for coding. Before checking in the repository, the final build is optimized for better performance, and the code goes through many code reviews to check the performance.

V-Model - Validation Phases :

  • Unit Testing − In the V-Model, Unit Test Plans (UTPs) are developed during the module design phase. These UTPs are executed to eliminate errors at code level or unit level. A unit is the smallest entity which can independently exist, e.g., a program module. Unit testing verifies that the smallest entity can function correctly when isolated from the rest of the codes/ units.

  • Integration Testing − Integration Test Plans are developed during the Architectural Design Phase. These tests verify that groups created and tested independently can coexist and communicate among themselves.

  • System Testing −System Tests Plans are developed during System Design Phase. Unlike Unit and Integration Test Plans, System Tests Plans are composed by the client?s business team. System Test ensures that expectations from an application developer are met.

  • Acceptance Testing −Acceptance testing is related to the business requirement analysis part. It includes testing the software product in user atmosphere. Acceptance tests reveal the compatibility problems with the different systems, which is available within the user atmosphere. It conjointly discovers the non-functional problems like load and performance defects within the real user atmosphere.

V Model - Application

  • Requirements are very well documented, clear and fixed.

  • Product definition is stable.

  • Technology is understood and is not dynamic.

  • There are no ambiguous requirements.

  • Ample resources with required expertise are available to support the product.

  • The project is short.

V Model - Advantages

  • Simple and easy to understand and use

  • Works well for smaller projects where requirements are very well understood.

  • Clearly defined stages.

  • Well understood milestones.

  • Easy to arrange tasks.

  • Process and results are well documented.

V Model - Disadvantages

  • No working software is produced until late during the life cycle.

  • High amounts of risk and uncertainty.

  • Not a good model for complex and object-oriented projects.

  • Poor model for long and ongoing projects.

  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.

  • Cannot accommodate changing requirements.