Third-Party Library Update Analysis Using Type Hierarchies and Call Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Identifying and resolving incompatibilities between third-party software components and their updated versions is labor-intensive, leading to reluctance among developers to update their applications, as changes in these components can cause breaking changes that affect functionality.

Innovation Solution

A server analyzes project code and third-party library components using type hierarchies and call graphs to predict and identify breaking changes, employing artificial intelligence to suggest remediation strategies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually identify and resolve incompatibilities between third-party components and their updated versions, then compatibility can be ensured, but the process is labor-intensive and time-consuming

Engineering Contradiction:
ImprovecompatibilityVSAvoidupdate time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis by automatically comparing type hierarchies and call graphs before the actual update occurs. It predicts breaking changes in advance and generates remediation suggestions, allowing developers to prepare and resolve compatibility issues beforehand rather than discovering them during manual testing after update.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an automated analysis system as an intermediary between the third-party component update process and the application code. This intermediary system (the server that compares type hierarchies and call graphs) handles the labor-intensive compatibility checking, freeing developers from manual verification while ensuring reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If developers manually review and resolve breaking changes, then compatibility can be verified, but productivity decreases due to labor intensity

Engineering Contradiction:
ImprovecompatibilityVSAvoidupdate speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs self-service by automatically analyzing type hierarchies and call graphs to identify breaking changes without requiring developer intervention for the analysis phase. It autonomously generates compatibility reports and remediation suggestions, enabling developers to focus only on reviewing and applying changes rather than performing manual analysis.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual review process with an automated computational system. Instead of developers manually comparing code versions and resolving conflicts, the system uses algorithmic comparison of type hierarchies and call graphs to automatically identify breaking changes and suggest resolutions, significantly increasing productivity.

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

3Reliability

If developers are reluctant to update third-party components, then compatibility risks can be avoided, but the application cannot benefit from security fixes and improvements

Engineering Contradiction:
Improvefunctional stabilityVSAvoidaccess to new functionality
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system provides feedback to developers by automatically analyzing the impact of component updates and generating detailed reports on breaking changes before updates occur. This feedback mechanism (compatibility analysis results) allows developers to make informed decisions about whether to proceed with updates, understanding the risks involved while still being able to access security fixes and improvements.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary compatibility analysis before updates are applied, allowing developers to see in advance what breaking changes will occur. This preliminary action enables them to prepare appropriate response strategies, update their applications proactively, or make informed decisions about whether to proceed with the update based on the predicted impact.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12499031B2Impact analysis of changes in third-party software components on downstream users
Publication Date: 2025.12.16 ENDOR LABS INC
  • US12499031B2 patent drawing
  • US12499031B2 patent drawing
  • US12499031B2 patent drawing

AI summary

In some examples, a server determines that project code calls a component in a third-party library that has been updated. The server determines a first type hierarchy associated with the component, a second type hierarchy associated with the updated component, and performs a type hierarchy comparison of the first and the second type hierarchy. The server determines a first call graph associated with the component, determines a second call graph associated with the updated component, and performs a call graph comparison of the first and second call graph. Based at least in part on the type hierarchy comparison and the call graph comparison, the server determines a set of breaking changes associated with the updated component, with each breaking change in the set identifying changes to the updated component, relative to the component, that are determined to cause an incompatibility when the project code calls the updated component.