Graph Model for Software Dependency Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems for managing software package dependencies are inefficient due to time-intensive source code reviews and recursive database queries, failing to provide a comprehensive view of dependency changes across software releases, which can lead to API/ABI breakages.

Innovation Solution

A graph model is generated to represent software releases, including package and function dependencies, allowing for efficient comparison and identification of changes between releases, thereby tracking and managing software package dependencies and API/ABI breakages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional package managers review source code to determine software dependencies, then dependency information can be obtained, but the process becomes time intensive and inefficient

Engineering Contradiction:
Improvedependency information accuracyVSAvoidtime to retrieve dependency information
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system pre-generates and stores dependency information in a database before it is needed. When software packages are installed or updated, their dependency information is extracted and stored in advance, so that subsequent queries can retrieve this information immediately without performing time-consuming source code analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of analyzing original source code each time dependency information is needed, the system creates and stores copies of dependency information in a database. These pre-extracted dependency relationships can be quickly queried and compared across different software releases without re-analyzing the source code.

Inventive Principle:
Principle #26Copying

2Loss of information

If recursive calls are made in relational database models to retrieve package dependency information, then comprehensive dependency data can be obtained, but the retrieval process becomes inefficient

Engineering Contradiction:
Improvecompleteness of dependency informationVSAvoidefficiency of dependency information retrieval
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system segments the dependency information retrieval process by creating a normalized database schema that separates package information from dependency relationships. This allows the system to query specific dependency information directly without needing to make recursive calls through multiple database tables, thus maintaining information completeness while improving retrieval efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary dependency information storage layer between the source code and the query interface. This intermediary database pre-stores parsed dependency relationships, acting as a mediator that provides comprehensive dependency information without requiring recursive database calls to original source code or complex relational table joins.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If software dependency monitoring is conducted at the package level for each package release, then individual package dependencies can be tracked, but the system fails to provide an efficient means for retrieving information about overall system impact

Engineering Contradiction:
Improvepackage-level dependency tracking accuracyVSAvoidease of retrieving system-wide impact information
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The system merges individual package-level dependency information into a comprehensive system-wide view stored in the database. By consolidating dependency data from multiple packages and releases into a unified database structure, the system enables efficient retrieval of both individual package dependencies and overall system impact information through single queries rather than requiring aggregation of multiple separate package-level analyses.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9235410B2Tracking software package dependencies using a graph model
Publication Date: 2016.01.12 RED HAT INC
  • US9235410B2 patent drawing
  • US9235410B2 patent drawing
  • US9235410B2 patent drawing

AI summary

Methods and systems for generating a graph model associated with a software release. The methods and systems are configured to receive a software release including a set of software packages. The software release is parsed to identify modeling information including package information, package dependency information, and function dependency information associated with each software package in the set of software packages. A graph model is generated and stored which represents the modeling information, wherein the graph model comprises a package node for each software package in the set of software packages and a function node for each function in the set of software packages.