Developing software using the V model
Over the past decades, many different software development methodologies have been used. Generally these fall into one of
two categories: heavyweight or lightweight.
Heavyweight (predictive) methodologies such as the Waterfall model, Spiral model and V-model are based on a linear,
sequential, step-by-step approach to software development. They are usually used for longer development cycles, which
can last several months or even a year.
Lightweight (agile) methodologies such as Scrum, Lean and XP are flexible and used in short development cycles (iterations)
that last two to four weeks. This way your teams can quickly respond to the rapidly changing demands of your customers.
Heavyweight models are hardly in fashion anymore and have been replaced by light methodologies, but that does not mean that
no one uses the heavyweight methods anymore. When developing new software, the development model you choose is key to your
success. And there is no specific method that works always and for everyone.
In this article we discuss a heavyweight model known as the V model. We explain what the V model is and how it could serve
you in this age of lightweight development.
What is the V model?
This software development method is a variation on the classic Waterfall model. The difference is that at Waterfall each
development phase flows into the next in a simple linear process. With the V-model, a test phase runs parallel to each
development phase. Each parallel development and testing phase must be completed before the next phase begins.
This model is named for its primary focus on verification and validation. And when you graph these parallel development
and testing phases, the resulting diagram resembles the shape of the letter V.
What is the difference between verification and validation?
Some people get confused and think that verification and validation are synonyms. So let's look at the differences.
Verification is the process of ensuring that project requirements are met. This involves the verification of documentation,
design and code at some point during the development of the project. You ensure that the project is developed correctly.
For example, if you're developing a spreadsheet app, you need to verify during the process that the basic math
calculations are correct before moving on to more complex code and formulas. This type of testing takes place parallel
to the development of the product.
Validation is the process of ensuring you develop the right product. This type of testing takes place when the development
phase is completed. You test to ensure that the product meets the customer's needs.
How does the V model work?
The V-model consists of a series of linear phases that are executed one by one until the project is completed. On the left
side of the V-model are the verification phases of the development. The right side shows the parallel validation phases.
The verification and validation phases come together at the tip of the V-shape.
The V-model for technology described below contains various verification and validation phases.
Requirements
During the requirements phase, stakeholders and the team analyze customer needs and determine what will be included
in the feature package. Take plenty of time for a thorough analysis so that you don't miss anything that is important
to your customers. Also create detailed documentation so that everyone involved understands the requirements. At the same
time, the acceptance tests are planned and designed.
System design
Using the requirements documents and feedback from customers and stakeholders, determine what methods or techniques you
could use to implement the requirements. Prepare a specification document showing overall system organization, menu
structures, business logic, data layers, and so on.
In this phase, the system tests are planned and designed based on the system design documents.
Architectural design
In this phase you document specifications that detail how all the different components in the software will be linked
and interact with each other via internal or external integrations. This phase is also called high-level design (HLD).
Based on the information documented during this phase, the integration tests are developed at the same time.
Module design
This phase is also called low-level design for your system. In this phase you determine the details for the internal
design of the system. You need to document the details of how models, components, interfaces, etc. are implemented and
how they interact with other modules in the system.
During this phase, the unit tests must be planned and created. These unit tests serve to ensure that the individual
components of the module function correctly.
Coding
Here we come to the point of the V-shape, where the verification side of the model is connected to the validation side.
In this phase, your developers work on coding using the guidelines and standards outlined in the design documents. Using
the design and specification documents, your team writes code and creates a functioning system. Before the final version,
the code is first checked and optimized. The testing phases begin after the final version is submitted.
Unit testing
The validation phases of the V-model begin with unit testing. The unit tests must be planned and designed during the
module design phase. These tests check the code in individual parts of the module. Unit testing helps you find and fix
bugs and other possible problems.
Because unit testing is an extremely precise process, this phase is likely to take more time than the other validation
phases. But this phase is very important because it will help you eliminate the vast majority of potential bugs and issues,
so that the next phases of testing will run smoother and faster.
Test integration
The test plans for this phase must have been created during the architectural design phase. The tests are used to see
how well your software works and communicates with both internal and external components in the system.
System testing
The system tests are made during the system design phase. These tests mainly focus on general performance, to ensure that
the new software works properly and communicates within the system. System testing can help you find compatibility issues
between software and hardware.
Acceptance testing
The acceptance test is the final testing phase. Acceptance testing takes place in a user environment. The purpose is to
check whether the new software is compatible with other systems in the user environment or will function properly in
a live environment.
Why do you use a V model?
Now that most companies work in an agile environment, you may wonder why you would use a V-model derived from the Waterfall
method. If the global pandemic has taught us one thing, it's that businesses need to be flexible to succeed. Flexibility
doesn't just mean that you can keep your employees at home, in the office or in a...work late.It also means that many
organizations have experienced a shift in how they plan and execute their projects.
IT Project Management Institute (PMI) calls these companies gymnastics companies. A gymnastics company focuses more on
outcomes and results. This means that these companies are more open to different processes that can help them achieve the
desired outcome. So based on the type of project, complexity and employee distribution, a gymnastics company may sometimes
decide that it makes sense to develop a project using a heavyweight method such as the V-model.
You may consider a V model because of the following benefits:
-
It is relatively easy to understand and implement: With each phase completed before the next begins, it's easy to stay
on track and achieve goals.
-
It is easy to manage: The linear nature of the model lets you know where you were, where you are and where you need
to go.
-
The V model is linear, rigid and restrictive: That may not sound like an advantage. But a linear, rigid approach
works well for projects with a tight scope and timeline.
-
The V model is good for time management: This model works very well for projects that need to maintain a tight
deadline and meet certain milestones along the way.