Code Relationship Graph for Source Code Analytics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software applications with multiple contributors face challenges in communicating and tracking the functionality of each segment of code, especially as code complexity increases, leading to difficulties in understanding and documenting source code.

Innovation Solution

A source code analytics platform uses a novel combination of information retrieval and program analysis techniques to create a code relationship graph, associating source code with descriptive metadata, enabling intent-based searches, documenting undocumented code, and performing risk analyses through a holistic representation of the code production network.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple people write multiple segments of software source code, then code functionality and complexity increase, but code understanding and documentation become difficult

Engineering Contradiction:
Improvecode functionalityVSAvoidcode understanding
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent segments the complex codebase into a graph structure where individual code segments, functions, and classes are represented as nodes. This segmentation allows the system to manage complexity by breaking down large codebases into manageable, interconnected units that can be analyzed and understood individually while maintaining context through graph relationships.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary information retrieval system that acts as a mediator between the code and the user. This system uses natural language processing and graph traversal to translate user queries into meaningful code relationships, bridging the gap between human understanding and complex code structures without requiring users to directly navigate the complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If code complexity increases, then software capabilities improve, but tracking code functionality becomes difficult

Engineering Contradiction:
Improvesoftware capabilitiesVSAvoidcode functionality tracking
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms through the graph structure that automatically tracks and reports relationships between code segments. As code is analyzed and added to the graph, the system maintains feedback loops that continuously update the codebase map, ensuring that functionality tracking remains accurate even as complexity increases. The graph traversal capabilities provide real-time feedback on code relationships.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent creates a universal code representation system where the graph structure can represent multiple types of code relationships (dependencies, calls, definitions, usages) in a unified manner. This multi-functional approach allows the same infrastructure to track various aspects of code functionality simultaneously, preventing information loss across different dimensions of code complexity.

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

3Ease of manufacture

If traditional code analysis methods are used, then implementation is simple, but search accuracy and intent understanding are insufficient

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsearch accuracy
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent transitions from traditional linear or hierarchical code analysis to a multi-dimensional graph structure. This dimensional change allows the system to capture relationships across multiple axes (spatial, temporal, logical) simultaneously, enabling more accurate search results by considering code relationships from multiple perspectives rather than a single linear path.

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

Data Source

PatentUS9298453B2Source code analytics platform using program analysis and information retrieval
Publication Date: 2016.03.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9298453B2 patent drawing
  • US9298453B2 patent drawing
  • US9298453B2 patent drawing

AI summary

In one embodiment, a code analytic platform may use a novel combination of information retrieval and program analysis techniques to develop a code relationship graph 514 to perform various code applications, such as intent based searches on a source code set, the documentation of undocumented code, risk analyses, natural language semantic searches, and others. A source code analytics platform may perform a code analysis of a source code set 410. The source code analytics platform may perform a metadata analysis of a code production data set 430 associated with the source code set 410. The source code analytics platform may create a code relationship graph 514 associating the source code set 410 with a descriptive metadata set.