Code Impact Prediction via Dependency Graph Superimposition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in identifying and mitigating the impact of code modifications on client workflows due to lack of complete knowledge and visibility of upstream and downstream dependencies, leading to introduction of new errors and defects.

Innovation Solution

The system generates static and dynamic dependency graphs to map dependencies within a code base, allowing for comprehensive impact analysis and prediction of affected methods through comparison and superimposition of these graphs, providing a holistic view of method-to-method dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers manually analyze code dependencies to understand impact, then they can identify affected methods, but the process is time-consuming and error-prone due to lack of complete visibility

Engineering Contradiction:
Improveimpact identification accuracyVSAvoidtime for dependency analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system enables self-service by automatically generating dependency graphs and performing impact analysis without requiring manual developer intervention. The tool autonomously traces method calls, builds dependency models, and identifies impacted methods, allowing the system to serve itself rather than requiring continuous human analysis.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical code analysis with automated computational systems. Instead of developers manually tracing dependencies, the system uses algorithmic approaches to generate static and dynamic dependency graphs, automatically identifying impacts through computational methods rather than human inspection.

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

2Productivity

If developers use available tools for code analysis, then they can speed up the process, but these tools do not provide complete knowledge and visibility of client workflows

Engineering Contradiction:
Improvecode modification efficiencyVSAvoidvisibility of workflow dependencies
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system segments the dependency analysis into multiple comprehensive layers: static dependency graphs for structural relationships, internal-domain dynamic dependency graphs for execution traces, and client-domain dynamic dependency graphs for actual workflow behavior. This segmentation allows each layer to capture different aspects of dependencies, providing complete knowledge when combined.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-dimension static analysis to multi-dimensional analysis by incorporating both static and dynamic perspectives. The system adds temporal and execution context dimensions through dynamic dependency graphs, enabling complete visibility of workflow dependencies that static tools alone cannot provide.

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

3Reliability

If developers perform comprehensive impact analysis, then they can identify all affected methods, but the complexity of analysis increases

Engineering Contradiction:
Improvedefect prevention capabilityVSAvoiddependency graphing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system introduces intermediary dependency graphs as mediators between the code base and the impact analysis. These graphs (static, internal-domain dynamic, and client-domain dynamic) serve as structured representations that simplify the complex relationships in the code, making comprehensive analysis manageable through visual and computational abstraction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the generated dependency graphs are used to automatically identify impacts, which then feed back into recommendations for developers. This iterative feedback loop allows the system to learn from analysis results and improve its predictions, reducing the manual complexity burden on developers.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250013461A1System and Method for Predicting the Impact of Source Code Modification Based on Historical Source Code Modifications
Publication Date: 2025.01.09 CERNER INNOVATION INC
  • US20250013461A1 patent drawing
  • US20250013461A1 patent drawing
  • US20250013461A1 patent drawing

AI summary

Methods, systems, and computer-readable media are disclosed herein that utilizes historical changes made to files and methods in computer programming code to predict related files and methods that may be affected by current and/or future changes made to other files and methods. In aspects, when computer code for a particular method is going to be edited, other methods are identified that were changed in previous editing sessions that also included changes to the particular method. Using scoring techniques for the other methods, a recommendation is provided that details the relative strength of whether the other methods are predicted to be affected by any changes made to the computer code for the particular method that is edited.