Contextual Code Execution Visualization via Log Enrichment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software visualization tools face complexity in representing dynamic execution paths of software code due to varying code execution paths across different use cases, making it difficult to maintain and understand the execution flow.

Innovation Solution

The method involves generating a data flow diagram using static code analysis, marking a specific execution path with an execution profiler, and enriching nodes with information from application logs to create an enriched execution path diagram, facilitating better visualization of code execution paths for specific scenarios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If static code analysis is used to generate data flow diagrams, then the structure and possible execution paths are represented, but the dynamic execution behavior for specific use cases cannot be captured

Engineering Contradiction:
Improverepresentation of different execution pathsVSAvoidexecution behavior information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent merges static code analysis with dynamic execution profiling and log enrichment to create a comprehensive visualization system. The data flow diagram from static analysis is enhanced with execution path markings from dynamic profiling and contextual information from logs, combining multiple data sources to achieve both structural representation and dynamic behavior capture.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system performs preliminary static code analysis to generate the complete data flow diagram with all possible execution paths before any specific execution occurs. This preliminary structure is then enhanced with dynamic execution information during actual runtime, allowing the diagram to evolve from a static template to a dynamic representation of actual behavior.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If execution path marking is added to data flow diagrams, then specific scenario execution paths are highlighted, but the diagram complexity increases

Engineering Contradiction:
Improveidentification of execution pathsVSAvoiddiagram structure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

Instead of uniformly marking all execution paths, the system applies local quality by selectively marking only the specific execution paths relevant to the current use case or scenario. The data flow diagram maintains its overall structure but adds localized highlighting and enrichment only where needed for the specific execution being analyzed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The execution path visualization is segmented into distinct elements: the base data flow diagram structure, the marked execution paths, and the enriched node information. This segmentation allows the system to maintain the overall diagram structure while adding layered information about specific execution paths without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If multiple use cases with different code execution paths are supported, then the system becomes more versatile, but the data flow diagrams become harder to maintain

Engineering Contradiction:
Improvesupport for multiple use casesVSAvoidmaintenance of diagrams
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The system transitions from static, manually maintained diagrams to dynamic diagrams that automatically adapt to different use cases. The execution profiler automatically marks the relevant execution paths during runtime, and the log enrichment automatically adds contextual information, making the diagrams self-updating and eliminating manual maintenance requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms where actual execution data from the runtime environment automatically updates the diagram representation. Execution traces and logs provide feedback that triggers automatic updating of the data flow diagram, ensuring it accurately reflects current behavior without manual intervention.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10379849B1Methods and apparatus for visualization of contextual code execution
Publication Date: 2019.08.13 DELL PROD LP
  • US10379849B1 patent drawing
  • US10379849B1 patent drawing
  • US10379849B1 patent drawing

AI summary

Methods, apparatus and computer program products are provided for the visualization of software execution. One method comprises: generating, using a static code analysis, a data flow diagram illustrating a plurality of possible code execution paths of software code; marking, using an execution profiler, a particular execution path through the data flow diagram for a specific execution scenario; and enriching one or more nodes in the data flow diagram marked with the particular execution path for the specific execution scenario with information extracted from one or more application logs. The marked data flow diagram may be enriched, for example, by extracting a particular portion of a log file and tagging a corresponding portion of the data flow diagram with the extracted particular portion of the log file. The extracted log information may comprise, for example, a timestamp, a log category, a software module name, a function name and/or contextual information.