Non-Intrusive Software Coupling Verification via Trace Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for measuring and verifying data and control coupling in software, particularly in avionics systems, are inefficient due to the need for instrumentation, high resource usage, and lack of automated tools, leading to increased costs and cycle times, and incomplete data from commercial-off-the-shelf tools.

Innovation Solution

A non-intrusive, instrument-less method that extracts expected and actual data and control coupling information from software architecture and execution traces, using a trace control module to collect and analyze data, and compares this information to verify correct interactions between software components, reducing overhead and providing comprehensive coverage reports.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If instrumentation code is inserted into source code to measure data and control coupling, then measurement precision is improved, but device complexity and code size increase

Engineering Contradiction:
Improvedata and control coupling measurement accuracyVSAvoidcode instrumentation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the measurement function from the instrumented code itself and places it in a separate analysis tool. The trace control module collects execution traces without modifying the instrumented code, and the analysis tool processes these traces to derive data and control coupling information. This separation eliminates the need for complex instrumentation code while maintaining measurement accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a trace control module as an intermediary between the executed code and the analysis tool. This module captures execution traces and passes them to the analysis tool for processing. The intermediary approach allows the system to measure coupling without directly instrumenting the code, reducing complexity while maintaining precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If instrumentation code is inserted to obtain coverage information, then measurement precision is improved, but loss of time increases due to multiple builds and testing cycles

Engineering Contradiction:
Improvecoverage information accuracyVSAvoidtesting cycle time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by collecting execution traces during normal test execution and storing them for later analysis. The trace control module captures traces as tests run, and the analysis tool processes these pre-collected traces to derive coverage information. This eliminates the need for multiple builds and re-testing cycles, significantly reducing time loss while maintaining precision.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If instrumentation code is inserted to measure coupling, then measurement precision is improved, but use of energy increases due to increased memory usage and execution time

Engineering Contradiction:
Improvecoupling measurement accuracyVSAvoidmemory consumption and execution time
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent extracts the heavy computational tasks from the executed code and places them in a separate analysis tool that processes trace data. The trace control module only collects basic execution information without performing complex analysis during code execution. This separation reduces memory consumption and execution time while maintaining measurement precision, as the analysis is performed on pre-collected trace data rather than instrumenting the code itself.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP4404067A1System and method to measure and verify data and control coupling between software components without code instrumentation
Publication Date: 2024.07.24 HONEYWELL INTERNATIONAL INC
  • EP4404067A1 patent drawingFigure 1A
  • EP4404067A1 patent drawingFigure 1B
  • EP4404067A1 patent drawingFigure 2A

AI summary

A method for verifying data and control couplings of software under test comprises obtaining software architecture and design information for the software; extracting expected control coupling information based on an order in which software component calls are in the software architecture; extracting expected data coupling information from one software component to another software component in a sequence diagram; updating the expected control and data coupling information in an expected control and data coupling sequencing table; deriving actual control coupling information from execution trace data obtained from a requirements based test execution; deriving actual data coupling information from data trace information; and updating the actual control and data coupling information in an actual control and data coupling sequencing table. The method then compares the expected and actual control coupling information, and compares the expected and actual data coupling information, to verify whether software components are interacting with each other as expected.