Offline Dependency Graph for Scalable Software Change Impact

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional change impact analysis techniques using static program analysis are computationally expensive and practical only for small-scale software systems, making them inefficient for large-scale software systems.

Innovation Solution

A method and system that generate a dependency graph and location index during an offline phase, allowing for efficient identification of impacted entities in the source code by comparing modified source code to the original source code during an online phase, using a dependency graph and location index to determine impacted nodes and entities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional static program analysis is used for change impact analysis, then measurement precision is improved, but computational cost increases significantly

Engineering Contradiction:
ImproveprecisionVSAvoidcomputational cost
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent performs static program analysis in advance during an offline phase to build a dependency graph and location index before actual change impact analysis is needed. This preliminary action captures the structural relationships of the software system once, enabling rapid online queries without repeating the expensive static analysis for each change, thus resolving the contradiction between precision and computational cost.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides the static program analysis process into two separate phases: an offline phase for building the dependency graph and location index, and an online phase for querying impacted entities. This segmentation allows the computationally intensive precision work to be done once offline, while online operations remain fast and lightweight, addressing the computational cost issue while maintaining precision.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If conventional static program analysis is used for change impact analysis, then measurement precision is improved, but productivity decreases

Engineering Contradiction:
ImproveprecisionVSAvoidefficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

By performing the precise static program analysis as a one-time offline action that builds reusable data structures (dependency graph and location index), the system achieves high precision for change impact analysis without the repeated computational overhead that would reduce productivity. The offline preparation enables fast online responses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The separation of analysis into offline (precise but expensive) and online (fast but simpler) phases allows the system to maintain high precision when needed while improving overall productivity through rapid online queries. The dependency graph and location index enable efficient traversal and matching during online phase.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If the entire source code is analyzed for each change, then measurement precision is improved, but loss of time increases

Engineering Contradiction:
ImproveprecisionVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent extracts location information from the source code and organizes it into a separate location index that maps locations to nodes in the dependency graph. This extraction allows rapid querying of impacted entities by directly searching the index rather than scanning the entire source code, significantly reducing analysis time while maintaining precision through the structured dependency relationships.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The location index and dependency graph are built in advance during the offline phase, capturing the structural relationships and location mappings before changes occur. This preliminary organization of data enables fast online queries by directly traversing pre-computed structures rather than performing comprehensive re-analysis, thus reducing time loss while preserving measurement precision.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11334474B2Fast change impact analysis tool for large-scale software systems
Publication Date: 2022.05.17 ORACLE INT CORP
  • US11334474B2 patent drawing
  • US11334474B2 patent drawing
  • US11334474B2 patent drawing

AI summary

A method may include obtaining original source code including entities. The entities each correspond to a location in the original source code. The method may further include during an offline phase and by a computer processor, generating, from the original source code, (i) a dependency graph including nodes corresponding to the entities and (ii) a location index that maps each location in the original source code to one of the nodes, and during an online phase following the offline phase and using the dependency graph and the location index: identifying modified locations in the original source code by comparing modified source code to the original source code, obtaining, for each of the modified locations and by searching the location index, matching nodes, determining, for each of the matching nodes, impacted nodes reachable from the matching node, and identifying, using the location index, impacted entities corresponding to the impacted nodes.