Software Dependency Graph Updates Using Linear Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Updating dependencies in software systems is a time-consuming and resource-intensive task, requiring careful selection of which dependencies to update and minimizing breaking changes and incompatibilities, while balancing factors like freshness, popularity, and security vulnerabilities.

Innovation Solution

A software dependency update system uses linear programming to generate an updated dependency graph based on quality metrics, optimizing the selection of dependencies through a multi-objective optimization problem, incorporating freshness, popularity, and vulnerability scores, and estimating the cost of breaking changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dependencies are updated frequently to improve freshness and security, then quality metrics improve, but time consumption and technical cost increase

Engineering Contradiction:
Improvedependency qualityVSAvoidupdate time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent transforms the dependency update problem into a linear programming optimization problem by changing the parameters to be optimized (quality metrics weighted by importance) and the constraints (breaking changes, compatibility requirements). This allows systematic selection of optimal update strategies that balance quality improvement with time and effort constraints.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system dynamically adjusts dependency update strategies based on multiple factors including quality metrics (freshness, security), breaking change analysis, and compatibility requirements. The linear programming solver continuously optimizes the update plan based on current system state, enabling adaptive dependency management that responds to changing conditions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If all dependencies are updated to ensure consistency, then system reliability improves, but complexity of maintenance increases

Engineering Contradiction:
Improvesystem consistencyVSAvoidmaintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the dependency update process into distinct phases: quality metric evaluation, breaking change analysis, compatibility verification, and optimization planning. This segmentation allows each aspect of dependency maintenance to be addressed systematically and independently, reducing overall complexity while ensuring comprehensive updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The linear programming solver acts as an intermediary that mediates between the conflicting requirements of comprehensive updates and maintenance simplicity. It processes quality metrics, breaking changes, and compatibility constraints to generate optimized update plans that achieve system consistency without requiring manual intervention in complex scenarios.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If dependency updates prioritize security and freshness, then quality improves, but breaking changes and incompatibilities increase

Engineering Contradiction:
Improvedependency freshnessVSAvoidbreaking changes
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent performs preliminary analysis of breaking changes and compatibility requirements before executing dependency updates. By evaluating these factors in advance and incorporating them as constraints in the linear programming optimization, the system prevents harmful breaking changes while still achieving fresh and secure dependency selections.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system converts the potential harm of breaking changes into a beneficial constraint that guides the optimization process. By explicitly modeling breaking change analysis and compatibility requirements as constraints in the linear program, the system transforms what would be harmful factors into guiding principles for selecting safe and reliable dependency updates.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS20260030013A1Balancing quality and technical cost of updating dependencies in software systems
Publication Date: 2026.01.29 SAP SE
  • US20260030013A1 patent drawing
  • US20260030013A1 patent drawing
  • US20260030013A1 patent drawing

AI summary

Methods, systems, and computer-readable storage media for a software dependency update system that processes computer-readable files (e.g., source code file, dependency description file) of a software project to generate an updated dependency graph using linear programming in view of a set of quality metrics for updating dependencies of the software project.