What is V-Model?
Mostly known as the validation and verification software development process model (The Vee Model), and It is one of the most know software development methodology. Moreover, it is considered as an improvement to the waterfall model and it has some similarities as the process also based on sequential steps moving down in a linear way while it differs from the waterfall model that the steps move upwards after the coding phase, to form the typical V shape that demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.
This means that any phase in the development process begins only if the previous phase is complete and has a correspondence related testing phase which is performed against this phase completion. Similar to the Waterfall model, the V-Model does not define the process to go back to the previous phase to handle changes in requirement.
The technical aspect of the project cycle is considered as a V shape starting with the business needs on the upper left and ending with the user acceptance testing on the upper right.
V-Model Model Phases
The V-Model Model contains the main phases similarly to other process models, you can read this article for more information about SDLC phases definitions.
Moreover, it breaks down the testing phase into detailed steps to ensure the validation and verification process. So, it contains the below testing phases:
The Unit testing is the testing at the code level and helps eliminate issues at an early stage, mainly the developer is responsible to perform the unit test for his code while not all the defects cannot be discovered at the unit testing.
The Functional testing is associated with the low-level design phase which ensures that collections of codes and units are working together probably to execute new function or service.
The Integration testing is associated with the high-level design phase. Integration testing ensures the integration between all system modules after adding any new functions or updates.
The System testing is associated with the system requirements and design phase. It combines the software, hardware, and the integration of this system with the other external systems.
User Acceptance Testing
The User Acceptance testing is associated with the business and operations analysis phase. The customer users are the main performers of this testing based on test cases and scenarios that cover the business requirements to ensure that they have delivered the right software as per the specifications.
When to use the V-Model Model?
Due to the nature of the V-Model, it is hard to back to the previous phase once completed. Although, this is can be very rigid in some software projects which need some flexibility, while, this model can be essential or the most suitable model to other software projects’ contexts and which focus on quality as an important aspect of the delivery.
The usage of V-Model can fall under the projects which not focus on changing the requirements, for example:
- Projects initiated from a request for proposals (RFPs), the customer has a very clear documented requirements
- Military projects
- Mission Critical projects, for example, in a Space shuttle
- Embedded systems.
- Projects with defined and clear requirements
We can notice some similarities of these types of projects that they cannot be delivered in iterative, incremental, or agile manner, for example, in embedded systems for the elevator, you cannot deliver an elevator who can go up only without going down, or handling only users requests from inside and ignore outside calls for the elevator. Moreover, it needs special and focused testing to not perform any disaster. So, the V-Model will be more suitable in this case than the Waterfall for example.
You can review the selection criteria for the SDLC models, while this is the list of things to consider when using the waterfall:
- Quality is very important
- The requirements are clear and frozen.
- Technology is understood and used by the team in different projects.
- The project cannot be delivered in an iterative manner.
- Documentation is essential.
- Professional Project management skills.
- The project cost is defined.
V-Model Model Advantages
- Simple and easy to use
- Each phase has specific deliverables.
- Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.
- Works well for where requirements are easily understood.
- V-Model Improves the quality and reliability of the software.
- It reduces the amount of re-work because of the early detection of the defects and issues.
- It provides a better management for project risks.
- Verification and validation of the product in the early stages of product development ensures better quality.
- The V-Model concept can be combined with other models, for example, the iterative and agile models.
V-Model Model Disadvantages
- Very inflexible, like the waterfall model.
- Adjusting scope is difficult and expensive.
- The software is developed during the implementation phase, so no early prototypes of the software are produced.
- The model doesn’t provide a clear path for problems found during testing phases.
- Costly and required more time, in addition to a detailed plan
I see V-Model as implementation approach for the software projects to have a better quality software as an end product. The models are tools to make us master the process and we can combine these tools to have a better outcome. The V-Model introduced the concept of early validation and verification process and this can be reused and combined with other models.
One of the articles I liked about the myth of the V-Model that explains how V-Model can be combined with the agile model because actually, it is a part of the agile process. Moreover, it can be combined with the iterative model to have smaller V-Models like the graph below.
Help to do more!
The content you read is available for free. If you’ve liked any of the articles at this site, please take a second to help us write more and more articles based on real experiences and maintain them for you and others. Your support will make it possible for us.