Graph Debugging via Separate Insertion Components

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging source code often requires modifying the graph, which can inadvertently alter its original functionality, and testers may lack permission to edit the graph, leading to inefficient testing and risk of breaking the original functionality.

Innovation Solution

A method that generates a second graph with insertion components, such as probes and test sources, separate from the original graph, allowing for debugging and testing without modifying the original graph, by providing pre-validated data and monitoring data flows, thus avoiding the risk of altering the original functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the graph is modified to add debug code, then debugging capability is improved, but the original functionality may be altered and reliability deteriorates

Engineering Contradiction:
Improvedebugging capabilityVSAvoidoriginal functionality
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system segments the graph into two separate versions: the original graph and a debug version. The debug version contains the inserted probe components while the original graph remains unchanged. This segmentation allows debugging operations to be performed on the copy without affecting the original functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates a copy of the original graph to serve as a debug version. This copy contains all the components and flows of the original graph, plus additional probe components for debugging. By working on the copy rather than the original, the system enables debugging while preserving the original functionality intact.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If debug components are inserted into the graph, then testing capability is improved, but device complexity increases

Engineering Contradiction:
Improvetesting capabilityVSAvoidgraph structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The probe components are extracted as separate, identifiable elements that can be independently managed. The specification file separates the debug component definitions from the graph structure, allowing the probe components to be taken out and inserted only where needed for debugging, rather than requiring comprehensive modification of the entire graph.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The probe components are predefined in a specification file before being inserted into the graph. This preliminary preparation allows the system to automatically generate the debug version with components inserted at appropriate locations, reducing the manual complexity of configuring each debug element individually.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the original graph is modified for debugging, then debugging efficiency is improved, but the risk of breaking functionality increases

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidfunctionality breakage risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system prepares a protective copy of the original graph before any debugging modifications are made. This copy serves as a cushion that absorbs the risks of debugging modifications, allowing developers to experiment with probe insertions and modifications without fear of breaking the original functionality. The original graph remains protected and can be restored if needed.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

4Adaptability or versatility

If testers are given permission to edit the graph, then debugging flexibility is improved, but the risk of unintended modifications increases

Engineering Contradiction:
Improvedebugging flexibilityVSAvoidgraph integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system introduces an intermediary process that automatically generates the debug version from the original graph based on a specification file. Testers work with this generated debug version rather than directly editing the original graph. The intermediary generation process ensures that the original graph integrity is maintained while still providing testers with full flexibility to modify the debug version as needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3215948B1Debugging a graph
Publication Date: 2020.07.22 AB INITIO TECHNOLOGY LLC
  • EP3215948B1 patent drawingFigure 1
  • EP3215948B1 patent drawingFigure 2
  • EP3215948B1 patent drawingFigure 3

AI summary

In certain aspects, a method includes: receiving a first graph that includes components and flows, the components representing operations performed on data records, the flows representing flows of data records between components; receiving a specification that is separate from the first graph, the specification defining one or more insertions, each of the insertions associated with a flow of the first graph; generating one or more components that each corresponds to one of the insertions; and generating a second graph that includes components and flows that correspond to at least some of the components and flows of the first graph and the one or more generated components.