Interactive Graph Navigating Application Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programmers face challenges in navigating and debugging complex application code due to the lack of effective tools for visualizing code elements and their relationships, making it difficult to identify performance bottlenecks and debug issues efficiently.

Innovation Solution

An interactive graph-based system that displays code elements as nodes with edges representing relationships, allowing users to select nodes or edges to view corresponding source code, set breakpoints, and analyze performance metrics, while also providing filtering and animation features to traverse the code flow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If programmers use traditional code navigation methods to examine and test application code, then they can identify and locate problem areas, but it becomes difficult to efficiently understand code relationships and performance bottlenecks in complex applications

Engineering Contradiction:
Improvecode navigation efficiencyVSAvoidapplication code complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent transforms traditional linear code navigation into a two-dimensional visual graph interface where code elements are represented as nodes and relationships as edges. This dimensional change allows programmers to simultaneously view multiple code elements and their interconnections, making it easier to navigate complex codebases and understand relationships without being lost in linear text traversal.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The system creates a visual copy or representation of the actual code structure as an interactive graph. This graphical copy preserves the essential relationships and connections of the original code while providing an intuitive visual interface for exploration, allowing programmers to analyze code structure without directly navigating the complex source code text.

Inventive Principle:
Principle #26Copying

2Productivity

If programmers manually trace through code to understand relationships and performance, then they can identify bottlenecks, but it consumes excessive time and reduces productivity

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidtime for code analysis
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of code relationships and performance metrics automatically, generating the interaction graph and populating it with relationship data before the programmer needs to analyze anything. This preliminary action includes tracing code executions, identifying relationships, and calculating performance metrics, so that when the programmer views the graph, all this analysis work is already completed and visualized.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the manual mechanical process of stepping through code line-by-line with an automated computational system that generates visual graphs and highlights relationships. This substitution eliminates the time-consuming manual tracing process while providing comprehensive code relationship analysis through automated graph generation and rendering.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Loss of information

If the graph displays all code elements and relationships in detail, then comprehensive analysis is possible, but the interface becomes cluttered and difficult to navigate

Engineering Contradiction:
Improvecode relationship visibilityVSAvoidgraph navigation ease
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The system applies local quality by allowing programmers to focus on specific regions or types of relationships in the graph. Different parts of the graph can be examined in detail while other parts remain summarized or hidden. This enables comprehensive analysis capability while maintaining interface clarity, as users can dive deep into specific code relationships of interest without being overwhelmed by the entire codebase at once.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the complex code relationship graph into manageable sections or categories that can be independently explored. Code elements can be grouped by type, function, or relationship category, allowing programmers to systematically analyze different aspects of the codebase separately rather than being presented with a single overwhelming monolithic view of all relationships.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9658943B2Interactive graph for navigating application code
Publication Date: 2017.05.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9658943B2 patent drawing
  • US9658943B2 patent drawing
  • US9658943B2 patent drawing

AI summary

Code elements may be selected from a graph depicting an application. The graph may show code elements as nodes, with edges representing connections between the nodes. The connections may be messages passed between code elements, code flow relationships, or other relationships. When a code element or group of code elements are selected from the graph, the corresponding source code may be displayed. The code may be displayed in a code editor or other mechanism by which the code may be viewed, edited, and manipulated.