Software Dependency Analysis via Static and Dynamic Agent Synthesis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Identifying and managing software dependencies within an enterprise is complex and time-consuming, especially when bugs are detected or updates are necessary, due to the intricate web of software assets and interdependencies, which can only become evident at runtime.

Innovation Solution

A computer-implemented method using technology agents to perform both static and dynamic analysis of software assets, assigning node IDs based on hash content, and communicating hierarchies and dependencies to synthesis agents to create a dependency graph, facilitating efficient identification and tracking of software relationships across the enterprise.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static analysis is performed on software assets to identify dependencies, then dependency identification efficiency is improved, but dependencies that only become evident at runtime cannot be detected

Engineering Contradiction:
Improvedependency identification efficiencyVSAvoidruntime dependency detection capability
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent divides dependency analysis into two separate analysis modes: static analysis (performed on software assets without execution) and dynamic analysis (performed during runtime execution). Each analysis type is handled by separate agent components that collect dependency information through different mechanisms, allowing both to coexist and complement each other without interference.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges the results from static analysis and dynamic analysis into a unified dependency graph. The synthesis agent combines dependency information from both analysis types, creating a comprehensive view of software dependencies that includes both compile-time relationships and runtime-discovered relationships.

Inventive Principle:
Principle #5Merging (Combining)

2Measurement precision

If comprehensive dependency analysis is performed across all software assets, then accuracy of dependency identification is improved, but time and complexity of analysis increases significantly

Engineering Contradiction:
Improvedependency identification accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs static analysis as a preliminary step before dynamic analysis. The static analysis agent identifies and records dependencies that can be detected without execution, creating an initial dependency graph. This preliminary work reduces the scope and time required for subsequent dynamic analysis, as the system can focus runtime analysis on dependencies not already identified.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs analysis in two phases rather than attempting complete analysis simultaneously. Static analysis covers all assets comprehensively at build time, while dynamic analysis focuses on runtime-specific dependencies. This partial sequencing of analysis actions manages overall time and complexity while maintaining comprehensive accuracy.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If multiple technology agents analyze different software types in parallel, then analysis throughput is improved, but system complexity and coordination overhead increases

Engineering Contradiction:
Improveanalysis throughputVSAvoidagent coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The synthesis agent is designed as a universal component that handles integration of results from multiple specialized technology agents. Each technology agent focuses on analyzing a specific software type or asset, while the synthesis agent provides a common interface for collecting, normalizing, and merging dependency information from all sources into a unified dependency graph.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The synthesis agent acts as an intermediary between the multiple technology agents and the final dependency graph output. It receives dependency information from various agents through standardized communication protocols, reconciles different data formats and representations, and produces a unified dependency model, thereby simplifying coordination between parallel analysis processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11797279B2Systems and methods for dependency analysis
Publication Date: 2023.10.24 CODELOGIC INC
  • US11797279B2 patent drawing

AI summary

An analysis of software stored and executing on one or more assets in an enterprise includes determining a hierarchy of nodes in the software and among the assets and analyzing dependencies among those nodes and assets through a static analysis of the software as it is stored as well as through a dynamic analysis of the software as it executes.