Automated Driving Software Verification with Segmented Model Checking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current verification methods for software components of automated driving functions, such as simulation-based testing and replay hardware-in-the-loop solutions, do not guarantee error-free results and are inefficient due to the complexity and size of these components, necessitating a more effective approach for ensuring correctness and error identification.
Innovation Solution
The method involves analyzing native program code to identify independent sequences of commands, converting it into a finite automaton representation, and using model checking tools to verify the software components, thereby reducing the time and space required for model checking and retaining the code structure for error tracing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional model checking tools are applied to verify software components of automated driving functions, then formal mathematical proof of error-free results can be obtained, but the time and space required for model checking becomes excessively large due to the scope and complexity of the software components
Solution Approach 1:
The patent segments the software component into multiple functions, where each function is verified separately through model checking. The native program code is divided into function-level units, and verification is performed on each segment independently, then combined to achieve overall verification. This segmentation reduces the computational complexity and time required compared to verifying the entire software component as a single unit.
Solution Approach 2:
The patent transforms the verification process from a single-dimension approach (verifying the entire software component at once) to a multi-dimensional approach by introducing function-level segmentation. This dimensional change allows the verification to proceed in a structured hierarchy, where function-level verification results are aggregated to achieve system-level verification, significantly reducing the time and space requirements.
2Reliability
If conventional model checking tools are applied to verify software components of automated driving functions, then formal mathematical proof of error-free results can be obtained, but the space required for model checking becomes excessively large due to the scope and complexity of the software components
Solution Approach 1:
The patent segments the software component into multiple functions, where each function is verified separately through model checking. The native program code is divided into function-level units, and verification is performed on each segment independently, then combined to achieve overall verification. This segmentation reduces the computational complexity and time required compared to verifying the entire software component as a single unit.
Solution Approach 2:
The patent extracts and verifies only the critical functions and operations that are necessary for safety-critical automated driving tasks. By focusing model checking efforts on essential functions rather than the entire software component, the space requirements are significantly reduced while maintaining verification effectiveness for safety-critical operations.
3Productivity
If test-based methods such as simulation-based testing or replay hardware-in-the-loop solutions are used to verify software components, then the verification process can be performed, but error-free results are not guaranteed and the methods are inefficient due to the complexity and size of the software components
Solution Approach 1:
The patent replaces test-based verification methods (simulation-based testing, hardware-in-the-loop) with formal model checking methodology. This substitution transitions from empirical testing that cannot guarantee error-free results to mathematical proof-based verification that provides formal guarantees of correctness, while improving efficiency through function-level segmentation.
Data Source
AI summary
A computer-implemented method for verifying a software component of an automated driving function, The method includes: translating the native program code into a model checker representation of the software component to be verified and analyzing the model checker representation of the software component to be verified using a model checking method. The native program code of the software component to be verified is analyzed to identify independent sequences of commands, wherein an independent sequence of commands is a cohesive succession of program commands by which at least two variables are set, and the at least one result of an independent sequence of commands is independent of the order in which its program commands are processed. The variables of the at least one independent sequence of commands of the native program code are then simultaneously set in the model checker representation of the software component to be verified.

