Automated Driving Software Verification with Segmented Model Checking

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecorrectness verificationVSAvoidmodel checking time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvecorrectness verificationVSAvoidmodel checking space
Core Design Contradiction:
ReliabilityVSArea of stationary object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improveverification efficiencyVSAvoiderror-free guarantee
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS20240037013A1Computer-implemented method for verifying a software component of an automated driving function
Publication Date: 2024.02.01 ROBERT BOSCH GMBH
  • US20240037013A1 patent drawing
  • US20240037013A1 patent drawing

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.