Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

communitycreator
sdlc
v model

What is the V Model in the SDLC models?

Arooj Fatima

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Overview

The Software Development Lifecycle (SDLC) is a sample used in managing projects which describes the phases that are applied in an information systems development project.

There are different software development lifecycle models and designs that must be observed during the phases of software development. Each procedure model has a set of steps, which are unique to its kind, to guarantee success in the software development phase.

SDLC models

V-model

V-model (verification and validation) is similar to the waterfall model. Each development phase includes a testing phase to identify possible bugs and errors. This model is disciplined and demands strict deadlines. In theory, it exposes flaws in the underlying waterfall model and prevents the emergence of larger errors.

What is validation?

  • Validation involves dynamic testing (functional and non-functional).
  • In this process, the tests are performed by executing the code. In this procedure, the software is tested on the basis of the customer’s requirements and, hence, classified accordingly if it meets the customer’s expectations.

What is verification?

  • Verification involves static testing.
  • This method reviews the product without running any code. It is the procedure for evaluating the development cycle to determine whether the defined requirements have been met or not.
V-model

Verification phase

The following phases are part of the verification process.

Requirement analysis

This is the foremost stage in understanding the product requirements on the customer side. This phase involves in-depth communication to understand customer expectations and clear requirements.

System design

Once we have exact and in-depth product requirements, it is time for us to design a complete system. This includes an understanding of and detailed description of all the hardware and communication equipment of the product that is under development.

Architecture design

This phase involves the choosing of an architecture. The selected architecture usually consists of:

  • A list of modules
  • The simple features of each module
  • Their interface relationships
  • dependencies
  • Database tables
  • Architecture diagrams
  • Technology details

Module design

This phase specifies the complex internal design of all the system modules by dividing them into smaller modules. This is called low-level design (LLD). Consistency of design with other modules of the system architecture and additional external systems is important.

Coding phase

After conception, the coding phase is launched. As per needs, a suitable programming language is selected. There are approaches and criteria for coding. Before testing the repository, the final version is optimized for more acceptable performance, and the code undergoes multiple code inspections to verify implementation.

Validation phase

The following steps make up the validation phase.

Unit testing

Unit testing is performed at the code level. This step, allows errors to be eliminated at an earlier stage. However, all the faults may not be identified during unit testing.

Integration testing

Integration testing is linked with the architectural design phase. Integration tests are executed to check the co-occurrence and communication of interior modules in the design.

System testing

System testing is linked to the system design phase. System testing verifies the complete functionality of the system and the communication of the system, under development, with exterior systems. During this system check, errors related to compatibility between software and hardware can be identified.

Acceptance testing

Acceptance testing is linked to the business requirements analysis phase and requires us to test our product in our environment. Acceptance testing reveals compatibility problems with additional systems in the user environment. We can discover problems, such as load and poor execution, during the process of acceptance testing.

RELATED TAGS

communitycreator
sdlc
v model

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring