Configuration File Generator for Verified Code Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development for safety-critical applications like aviation is costly due to certification standards and the need for unique code files and source code reviews, making upgrades and verification processes burdensome and expensive.

Innovation Solution

A software development system that uses a configuration file generator tool to create configuration files identifying preexisting, verified, and compiled software code segments, allowing for the generation of software applications without the need for source code generation or extensive verification processes, by reading design models constructed from individual blocks with specified data flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If unique source code files are generated for each model to meet certification standards, then software verification and certification compliance are improved, but development cost and complexity increase significantly

Engineering Contradiction:
Improvecertification complianceVSAvoiddevelopment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses pre-existing verified code segments as templates that can be copied and reused across multiple models. Instead of generating unique source code for each model, the system references the same verified code segments through configuration files, eliminating redundant code generation while maintaining certification compliance through provenance tracking.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent creates a universal code segment library where a single verified code segment can serve multiple models and applications. The configuration file system allows one code segment to be universally applied across different models by simply changing the configuration, rather than creating dedicated code for each specific model.

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

2Ease of manufacture

If preexisting verified code segments are reused across models, then development cost is reduced, but ensuring certification compliance becomes more difficult

Engineering Contradiction:
Improvedevelopment costVSAvoidcertification compliance
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent introduces configuration files as an intermediary layer between the execution engine and the pre-existing verified code segments. These configuration files contain metadata about code segment provenance, version, and verification status, allowing the system to track and verify compliance without regenerating source code, thus maintaining both cost efficiency and certification compliance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If source code generation and compilation processes are eliminated, then productivity increases, but the ability to perform traditional verification methods is reduced

Engineering Contradiction:
Improvesoftware development speedVSAvoidverification capability
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs verification actions in advance by maintaining a library of pre-verified code segments with documented verification results. Instead of verifying code during the generation process, the verification is performed beforehand and the results are stored in configuration files, allowing rapid deployment without sacrificing verification capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3961373A1Systems and methods for generating a software application
Publication Date: 2022.03.02 HONEYWELL INTERNATIONAL INC
  • EP3961373A1 patent drawingFigure 1
  • EP3961373A1 patent drawingFigure 2
  • EP3961373A1 patent drawingFigure 3

AI summary

A software development system for generating a software application is provided. The software development system comprises a configuration file generator tool configured to: read a design model comprising a plurality of individual blocks with a specified data flow between the blocks, wherein each block has a defined behavioral expectation, wherein the design model is configured to cause a desired behavior for the software application when given a set of inputs. The configuration file generator tool is further configured to generate a configuration file, based on the design model, that identifies a plurality of preexisting, verified, and compiled/linked software code segments configured to perform mathematical and/or logical actions to cause the desired behavior for the software application. The configuration file configures an execution engine to execute the portion of the software application represented by the model by invoking execution of the plurality of preexisting, verified, and compiled/linked software code segments specified in the configuration file.