Automated Software Verification for Automated Driving Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for verifying software components of automated driving functions, such as model checking, are often manual, time-consuming, and lack guarantees for error detection, especially in safety-critical systems with large state spaces, and are not universally applicable across various programming languages.

Innovation Solution

A computer-implemented method that automatically translates native program code into a model checker representation using finite-state machines, allowing for fully automatic and flexible model checking across standard procedural, object-oriented, and functional programming languages, retaining code structure and enabling efficient analysis with tools like SPIN and NuSMV, and is applicable in safety-critical systems like automated vehicles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If model checking is performed manually on existing program code, then verification can be carried out, but the process is time-consuming and lacks guarantees for error detection

Engineering Contradiction:
Improveerror detection guaranteeVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by automatically translating native program code into model checker representation before verification begins. This preprocessing step converts the code into a finite-state machine format that model checkers can efficiently analyze, eliminating manual translation work and ensuring the code is ready for automated verification, thus reducing verification time while maintaining reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses an intermediary approach by introducing a translation mechanism that acts as a mediator between native program code and model checkers. This intermediary component automatically converts code from various programming languages into a universal model checker representation, enabling automated verification without manual intervention and providing guaranteed error detection

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If model checking is automated, then verification time is reduced, but it requires translation into specific formats that limit programming language applicability

Engineering Contradiction:
Improveverification efficiencyVSAvoidprogramming language applicability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies universality by creating a translation mechanism that handles multiple programming languages (C++, Python, Java, etc.) and converts them all into a common model checker representation. This universal approach enables automated model checking across diverse programming languages without requiring language-specific tools or manual translation, thus maintaining high verification efficiency while achieving broad language applicability

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Manufacturing precision

If manual translation to model checker representation is performed, then code structure can be retained, but the process becomes complex and user-dependent

Engineering Contradiction:
Improvecode structure retentionVSAvoidtranslation complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing an automated translation mechanism that independently converts native program code into model checker representation without requiring user intervention. The system automatically preserves code structure by maintaining a one-to-one correspondence between original code elements and their model checker equivalents, thus achieving high manufacturing precision while eliminating the complexity of manual translation

Inventive Principle:
Principle #25Self-service

Data Source

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

AI summary

A computer-implemented method for verifying a software component of an automated driving function. The native program code of the software component to be verified is limited to a set of authorized operations of the programming language used, and the following steps are performed: a) translating the native program code into a model checker representation of the software component to be verified, and b) analyzing the model checker representation of the software component to be verified using a model checking method. The native program code is converted into a finite-state machine, the states and state transitions of which are one-to-one assignable to the code structure of the native program code. The model checker representation is generated on the basis of this finite-state machine, such that the code structure of the native program code is largely retained when it is translated into the model checker representation.