SDLC V-Shaped Model : The V model of software development life cycle focuses on execution of processes in a sequential manner similar to V-Shaped. V-shaped model of system development is also called verification and validation model. This model is also similar to the waterfall model but with more slightly modification of the testing phase placed at various levels. Testing procedures are written even before the commencement of writing code. A system plan is generated before starting the development phase.
The SDLC V-Model is one of the extensions of the SDLC first waterfall model and is based on association of a testing phase for each corresponding development stage. Indeed of waterfall model, it includes testing phases with every single phase of the system development cycle. This is a highly disciplined model and next phase starts only after completion of the previous phase development and testing both.
Design of SDLC V model:
In this section we are introduce the design phases of the V model of software development life cycle. Under this model, the developer planned parallel the corresponding testing phase and development phase. So this model has Verification phases on one side of the V shaped model and Validation phases on the other side. The Coding phase works as to joins these two sides of the V-Model and proves the verification and validation of the developed system.
The below figure illustrates the different phases of SDLC V-Model:
The phases of V-model system development are categorized into two generalized groups are as follows:
The Verification phase of V-model includes various design and coding phases required for the system development. It is the procedure to completely checking of documentation and data gathering process. Several phases includes in verification phase of V-model are as follows;
- Business Requirement Analysis:
Business requirement analysis is the first phase under the verification phase of the V-model development cycle. In this the product requirements are understood from the customer perspective by development expertise. This phase involves detailed communication with the customer to understand his expectations and exact requirement about the proposed system. The documentation is one of the very important activity and need to be managed well, as most of the customers are not sure about what exactly they need.
This business requirement analysis phase is similar to the requirement analysis phase of the waterfall model with an additional testing plan includes. It includes the acceptance test design planning with business requirements that can be used as an input for acceptance testing.
- System Design:
This phase of verification is also called system requirement specification (SRS). It involves the planning of system design based on the requirement analysis. Once requirement analysts have the clear idea and detailed about product requirements, then then team is ready to design the complete system. System design phase would comprise of understanding and detailing the complete hardware and setup communication for the product under development. The system test plan is also developed based on the system design. This test plan focuses on meeting the functionality in the requirements gathering. All these activities done at an earlier stage so it saves more time for actual test execution later.
Sometimes Business requirement analysis and system design phases are known as the requirement analysis phase of verification under V-model.
- Architectural Design:
An architectural design phase of verification is also referred to as High Level Design (HLD). In this phase architectural specifications of system are understood and designed of the system at high level. Usually in this phase more than one technical approach is proposed and on the bases of these technical approaches and financial feasibility the final decision is taken about the proposed project.
In the requirement analysis phase of system design is broken down further into modules taking up different functionality. One of these modules is referred as High Level Design (HLD). The main functionality of this module is proceeded the data transfer and communication between internal modules and with the outside world (other systems) is clearly understood and defined in this HLD module. With this information, integration tests can be designed and documented during this phase. This HLD phase also provide overview of solution, platform, system, product and service/process. An integration test plan is created under this phase as well in order to test the pieces of the software systems ability to work together.
- Module Design:
The module design phase is known as Low Level Design (LLD) module of system design phase. In this phase the detailed internal design for all the system modules is specified. This module is important to providing the compatibility of the system with the other modules in the system architecture and the other external systems. This phase defines the actual logic for all components of the system. Class diagram with all the methods and relation among these classes comes under LLD module.
The component testing is created in this phase. Unit tests are an essential part of this phase and it helps eliminate the maximum faults and errors at a very early stage. The component testing is done using unit tests, can be designed at this stage.
- Coding phase:
The coding phase is at the bottom of the V-shaped module. The actual coding of under development system modules designed in the design phase and is taken up in the Coding phase of V-shaped module. In other words this phase the module design converted into the code by designed and development expertise.
The best suitable programming language is decided based on the system and architectural requirements. The coding in the coding phase is performed by using the coding guidelines and standards. The code goes through numerous code reviews and is optimized for making efficient and effective product before the final build is checked into the repository.
The Validation phase of V-model includes various product design satisfies and/or customer satisfaction with product using high level checking system. Validation process is the dynamic process for checking and testing the real product with proper functionality. Several phases includes in validation phase of V-model are as follows;
- Unit Testing:
During the validation phase unit tests designed for module design phases. The unit testing is executed on the modular code generation module. This is the testing which runs on code level and helps eliminate bugs at an early stage, though all defects cannot be uncovered by unit testing.
- Integration Testing:
The integration testing is performed on the joined modules to check the validity of the functionality of both the module after integration process completed. Integration testing is associated with the architectural design phase. This testing is apply on the internal modules of the system.
- System Testing:
This testing module tests the entire system functionality and the communication of the system under development with internal module and external module of the systems. System testing is directly associated with the System design phase. Most of the software and hardware compatibility issues can be uncovered during system test execution.
- Acceptance Testing:
This testing module associated with the business requirement analysis phase. It involves testing the product in user environment after the complete product is developed and deliver to the user. Acceptance tests uncover the compatibility issues with the other systems available in the user environment. This testing module also discovers the non-functional issues such as load and performance defects in the actual user environment.
Advantages and disadvantages of V-shaped model:
Every software development model has own advantages and disadvantages that decide the working area of the model. Here we are listing all the advantage and disadvantages of V-shaped model:
Advantage of V-shaped model:
In the advantages list of V- model includes its simplicity and easy use of this module. The testing planning and test designing gives a cost effective suggestion before coding phase begin. This advantage save lot of time and increase the chances of success over the waterfall model. In addition proactive defect tracking are found at early stage due to that developer avoids the downward flow of defects. The main advantage of this model is easy to understand and apply on any critical project.
Disadvantage of V-shaped model:
In the disadvantages of this model is that it is not flexible to changes and just in case there is a requirement change, which is very common in today dynamic world, it becomes very expensive to make the change after product reach at its final level or completed.
Pros and Cons of V-shaped model:
There are many pros and cons of V-Shaped model. In the following list we are trying to cover all pros and cons of V-Model, follow us;
|Pros of V-Shaped model||Cons of V-Shaped model|
|This is a highly disciplined model and Phases are completed one at a time.||Once an application is in the testing stage, it is difficult to go back and change a functionality|
|Simple and easy to understand and use.||No working software is produced until late during the life cycle.|
|Works well for smaller projects where requirements are very well understood.||Not a good model for complex and object-oriented projects.|
|Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.||Not suitable for the projects where requirements are at a moderate to high risk of changing.|
|Poor model for long and on-going projects.|
|High risk and uncertainty.|
Application of V-Shaped model:
V-Shaped Model application is almost similar with waterfall model, as both the models are of linear sequential type. The requirements have to be very clear and prepare complete documentation of the system before the project starts, because it is usually expensive to go back and make changes. This model is used in the medical development field, as it is strictly disciplined domain. Following are the suitable scenarios to use V-Model:
- Technology used in v-model is not dynamic and is well understood by the project team.
- Requirements are well defined, clearly documented and fixed.
- Product definition is stable.
- There are no ambiguous or undefined requirements.
- The project is short.