Call Graph Analysis for Risk-Balanced Dependency Upgrades

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently determining which version of a third-party component to upgrade to, as newer versions may introduce issues or vulnerabilities while addressing existing vulnerabilities, and existing methods are time-consuming and resource-intensive.

Innovation Solution

A system that generates partial call graphs for dependencies, determines upgrade candidates, assesses upgrade risks and benefits, and prioritizes candidates based on a risk-benefit score to recommend the best version for upgrade.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers review all newer versions of third-party components to determine the best upgrade, then the reliability of the application is improved by selecting the optimal version, but the time and effort required for the review process increases significantly

Engineering Contradiction:
Improveapplication reliabilityVSAvoidreview time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the version space by identifying and prioritizing specific upgrade candidates (e.g., versions that fix critical vulnerabilities, versions with improved security scores) rather than requiring review of all available versions. This segmentation allows developers to focus time on the most impactful upgrades while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis of third-party component versions, automatically evaluating security vulnerabilities, breaking changes, and upgrade impacts before developers need to make a decision. By pre-computing risk-benefit scores and generating prioritized lists, the system eliminates the need for manual review of all versions, significantly reducing developer time while maintaining reliable upgrade selection.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If developers manually analyze each upgrade candidate to assess risks and benefits, then the accuracy of upgrade decision-making is improved, but the productivity of the development process deteriorates

Engineering Contradiction:
Improveupgrade assessment accuracyVSAvoiddevelopment speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent replaces manual mechanical analysis with automated computer-based assessment systems. The system automatically evaluates upgrade candidates by analyzing vulnerability databases, comparing version manifests, detecting breaking changes through code comparison, and calculating risk-benefit scores. This substitution maintains measurement precision through comprehensive automated analysis while dramatically improving development productivity by eliminating time-consuming manual review processes.

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

Solution Approach 2:

The system enables self-service upgrade assessment by automatically generating prioritized lists of upgrade candidates with pre-computed risk-benefit analyses. Developers receive ready-to-review information including identified vulnerabilities, potential breaking changes, and recommended versions, allowing them to make informed decisions quickly without performing extensive manual analysis themselves.

Inventive Principle:
Principle #25Self-service

3Loss of information

If the system analyzes all available upgrade candidates in detail, then the completeness of upgrade information is improved, but the computational resources and time required increase exponentially

Engineering Contradiction:
Improveupgrade information completenessVSAvoidcomputational resources
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent applies local quality by focusing computational resources on the most critical aspects of upgrade assessment rather than uniformly analyzing all versions. The system prioritizes analysis of versions that address critical vulnerabilities, those with highest security scores, and versions that minimize breaking changes. By concentrating computational effort on locally important qualities rather than exhaustive global analysis, the system maintains information completeness for relevant upgrades while reducing overall computational resource consumption.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12386981B1Determining call graphs to identify which update of a code dependency to use
Publication Date: 2025.08.12 ENDOR LABS INC
  • US12386981B1 patent drawing
  • US12386981B1 patent drawing
  • US12386981B1 patent drawing

AI summary

In some implementations, a package is selected and a set of dependencies associated with the package are determined. Individual dependencies in the set of dependencies are used to create a set of partial call graphs that are stitched together to create a complete call graph of the package. A set of upgrade candidates for a dependency is determined. For an upgrade candidate, issues associated with upgrading the package to use the upgrade candidate are determined, a state of a dependency graph associated with upgrading are determined, diamond dependencies in the dependency graph are determined, a number of vulnerabilities and a severity of the vulnerabilities addressed by upgrading to the upgrade candidate are determined, and a risk-benefit score associated with each upgrade candidate is determined. The upgrade candidates are prioritized based on the associated risk-benefit score to create prioritized upgrade candidates that are provided to a software developer.