What Is the V-Model in Software Development?
The V-model or V-cycle is a style of software development that splits the process into three parts: design, implementation, and integration and qualification testing. The letter V is a symbolic representation of the development flow.
Applying the V-model’s clearly defined steps to small increments of software development allows for testing earlier in the process. Catching bugs or errors as early as possible increases the speed of the development effort, cuts costs and improves overall quality. The approach dovetails well with the continuous integration and continuous deployment methodology.
How the V-model works
In designing software for complex automotive systems, developers look for flexibility, speed and the ability to make improvements to the code. Following the steps along the “V” of the model, development begins with design at the upper-left end, continues down to implementation at the bottom point of the “V,” and ends with final testing at the upper right end.
- System Requirements: Engineers gather both business and system requirements. At this stage, it is important to clearly define the outcomes that the automotive function or feature will achieve.
- System Design: Engineers design the desired functionality using a model-based development environment. Model-in-the-loop testing catches bugs and errors early in the process.
- Software Requirements: Engineers use system requirements and the resulting system design to define what the software needs to achieve.
- Software Implementation: Engineers create and compile the code that constructs the software. For all code that has been written, the testing phases begin to confirm that requirements have been achieved (verification testing) and that the result is robustly suitable for the application (validation testing).
- Software Integration and Qualification Testing: Software implementation generally occurs on a per-feature or per-software component scale. To make a full software solution, each of the smaller scale implementations are integrated into a single compiled whole that is tested as a single entity.
- System Integration and Qualification Testing: A system is an assembly of parts. All of the software and hardware parts are assembled into a complete system for testing. Testers use software-in-the-loop, hardware-in-the-loop and vehicle-in-the-loop to test software.
How does the V-model mesh with ISO 26262 and ASPICE?
As vehicles became more software-defined, particularly with respect to advanced driver assistance systems and automated driving features such as emergency braking or lane correction, the industry as a whole needed a standard development model that could be shared across OEMs, technology providers and other third parties.
The International Organization for Standardization, a nongovernmental organization made up of national standards bodies, created just such a standard focused on vehicle safety. ISO 26262 has become the de facto automotive functional safety standard and is based on the V-model.
In addition, European carmakers created a standard for software quality that is also based on the V-model, called ASPICE (Automotive Software Performance Improvement and Capability dEtermination), which is an evolution of the ISO SPICE standard. Using the ASPICE framework, OEMs can evaluate the quality of software that is provided to them. In fact, when a premium OEM compared suppliers that use ASPICE against those that did not, it discovered that the average ASPICE supplier found 90 percent of software defects nine months earlier than the average non-ASPICE supplier.
Because it is the foundation for these standards, the V-model has become the predominant style of software development in the automotive industry and will continue to play a role for the foreseeable future.
The V-Model in Automotive Applications