Validation and Verification for System Development
An approach to validating and verifying system development is the V-model.
V-Model for System Development
The V-model is a representation of system development that highlights verification and validation steps in the system development process. The left side of the ‘V’ identifies steps that lead to code generation, including system specification and detailed software design. The right side of the V focuses on the verification and validation of steps cited on the left side, including software and system integration.
Depending on your application and its role in the process, you might focus on one or more of the steps called out in the V-model or repeat steps at several stages of the V-model. Code generation technology and related products provide tooling that you can apply to the V-model for system development. For more information about how you can apply MathWorks® code generation technology and related products to the V-model process, see:
Types of Simulation and Prototyping in the V-Model
Use the V-model for system development for different types of simulation and prototyping, such as rapid simulation, system simulation, rapid prototyping, and rapid prototyping on target hardware. This table compares the types of simulation and prototyping identified on the left side of the V-model diagram shown in V-Model for System Development.
Simulation | Rapid Simulation | System Simulation, Rapid Prototyping | Rapid Prototyping on Target Hardware | |
---|---|---|---|---|
Purpose | Test and validate functionality of concept model | Refine, test, and validate functionality of concept model in nonreal time | Test new ideas and research | Refine and calibrate design during development process |
Execution hardware | Development computer | Development computer Standalone executable runs outside of MATLAB® and Simulink® environments | PC or nontarget hardware | Embedded computing unit (ECU) or near-production hardware |
Code efficiency and I/O latency | Not applicable | Not applicable | Less emphasis on code efficiency and I/O latency | More emphasis on code efficiency and I/O latency |
Ease of use and cost | Can simulate component (algorithm or controller) and environment (or plant) Normal mode simulation in Simulink enables you to access, display, and tune data during verification Can accelerate Simulink simulations | Easy to simulate models of hybrid dynamic systems that include components and environment models Ideal for batch or Monte Carlo simulations Can repeat simulations with varying data sets, interactively or programmatically by using scripts, without rebuilding the model Can connect to Simulink to monitor signals and tune parameters | Might require custom real-time simulators and hardware Might be done with inexpensive, off-the-shelf PC hardware and I/O cards | Might use existing hardware for less expense and more convenience |
Types of In-the-Loop Testing in the V-Model
This table compares types of in-the-loop testing for verification identified on the right side of the V-model diagram shown in V-Model for System Development.
SIL Simulation | PIL Simulation on Embedded Hardware | PIL Simulation on Instruction Set Simulator | HIL Simulation | |
---|---|---|---|---|
Purpose | Verify component source code | Verify component object code | Verify component object code | Verify system functionality |
Fidelity and accuracy | Two options: Same source code as target, but might have numerical differences Changes source code to emulate word sizes, but is bit accurate for fixed-point math | Same object code Bit accurate for fixed-point math Cycle accurate because code runs on hardware | Same object code Bit accurate for fixed-point math Might not be cycle accurate | Same executable code Bit accurate for fixed-point math Cycle accurate Use real and emulated system I/O |
Execution platforms | Development computer | Target hardware | Development computer | Target hardware |
Ease of use and cost | Desktop convenience Executes only in Simulink Reduces hardware cost | Executes on desktop or test bench Uses hardware — process board and cables | Desktop convenience Executes on development computer with Simulink and integrated development environment (IDE) Reduces hardware cost | Executes on test bench or in a lab Uses hardware — processor, embedded computer unit (ECU), I/O devices, and cables |
Real-time capability | Not real time | Not real time (between samples) | Not real time (between samples) | Hard real time |