Code Verification Tool Using Element Connectivity List and AST

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Verifying code generated from models in complex systems is time-consuming and costly, especially in safety-critical software, where manual review is necessary but automated tools are required to ensure accuracy and compliance with standards.

Innovation Solution

A code verification tool creates an element connectivity list (ECL) and abstract syntax tree (AST) to compare model and generated code, identifying correspondence and discrepancies, and supports a restricted subset of model elements to optimize verification, with visualization and manual review assistance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual review is used to verify generated code, then verification accuracy is improved, but verification time and cost increase

Engineering Contradiction:
Improveverification accuracyVSAvoidverification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an automated code verification tool as an intermediary between the code generation process and manual review. This tool creates an element connectivity list from the model and an abstract syntax tree from the generated code, then automatically compares them to identify correspondences and discrepancies. This intermediary automation handles routine verification tasks, allowing manual reviewers to focus only on complex or ambiguous cases, thus reducing overall verification time while maintaining accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If automated verification tools are used, then verification time is reduced, but verification thoroughness may be compromised

Engineering Contradiction:
Improveverification speedVSAvoidverification thoroughness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the verification process into distinct automated and manual phases. The automated tool performs initial thorough verification by comparing the element connectivity list with the abstract syntax tree, identifying all obvious correspondences and discrepancies. This segmentation allows the system to handle routine verification tasks automatically with high speed, while reserving manual review for cases requiring deeper analytical judgment, thus achieving both speed and thoroughness.

Inventive Principle:
Principle #1Segmentation

3Reliability

If full model verification is performed, then completeness is improved, but complexity of verification process increases

Engineering Contradiction:
Improveverification completenessVSAvoidverification process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential elements needed for verification by creating an element connectivity list that contains specifically the model elements and their relationships. This extraction approach pulls out the critical verification data from the complete model, allowing the automated tool to focus verification efforts on the most important aspects of code-model correspondence without being overwhelmed by the full complexity of the entire model.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9274928B1Verification of computer-executable code generated from a model
Publication Date: 2016.03.01 MATHWORKS INC
  • US9274928B1 patent drawing
  • US9274928B1 patent drawing
  • US9274928B1 patent drawing

AI summary

A code verification tool verifies that code generated from a model represents all of the functionality of the model and does not contain any unintended functionality. The code verification tool may receive for examination a model or an intermediate representation (IR) of the model and the generated code or an intermediate representation of the generated code. The code verification tool may create further intermediate representations of the model and/or the generated code in order to compare the functionality presented in both.