Modular Program Dependency Graphs for Software Change Impact Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for change impact analysis in heterogeneous software systems are inefficient due to poor portability, scalability, and evolvability, leading to high costs and reliance on error-prone manual approaches, as existing techniques fail to accurately identify impacted components and often produce false positives or ignore important factors like pointer analysis and aliasing.

Innovation Solution

The use of modular program dependency graphs (mPDGs) to analyze source code, identify impacted lines, and update graphs incrementally, allowing for precise calculation of changes across different programming languages and technologies, thereby supporting fine-grained and coarse-grained analysis while minimizing unnecessary updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional change impact analysis methods are used on heterogeneous software systems, then comprehensive analysis coverage is achieved, but analysis time and computational cost become prohibitively high

Engineering Contradiction:
Improveanalysis coverageVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides the software system into modules and creates separate Program Dependency Graphs (PDGs) for each module. When a change occurs, only the PDG of the modified module is updated rather than regenerating the entire system PDG, significantly reducing analysis time while maintaining comprehensive coverage of affected components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-generates PDGs for all modules before changes occur. These pre-computed dependency graphs serve as a foundation that can be quickly updated when changes happen, avoiding the need to perform complete analysis from scratch and thus reducing analysis time.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If fine-grained analysis is performed to accurately identify impacted lines, then precision is improved, but computational complexity increases

Engineering Contradiction:
Improveimpact identification precisionVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the analysis into module-level PDG updates and fine-grained impact identification. By maintaining modular PDGs, the system achieves fine-grained precision for identifying impacted lines without the computational complexity of analyzing the entire system at once, as each module is analyzed independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different levels of analysis granularity to different parts of the system. Module-level PDGs provide coarse-grained structure, while intra-module analysis provides fine-grained detail where needed. This local differentiation of quality allows precise impact identification without uniform high computational complexity across the entire system.

Inventive Principle:
Principle #3Local quality

3Reliability

If complete PDG regeneration is performed for every change, then analysis accuracy is maintained, but scalability to large systems deteriorates

Engineering Contradiction:
Improveanalysis accuracyVSAvoidsystem scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent maintains analysis accuracy by ensuring that module-level PDGs are correctly updated when changes occur. The modular structure allows the system to scale to large software systems because only the necessary subset of PDGs are updated rather than regenerating the entire system model, thus improving scalability while preserving reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic updates to PDGs based on the specific changes detected in the software system. Rather than static complete regeneration, the system dynamically determines which module PDGs need updating and applies changes only where necessary, maintaining accuracy while enabling scalability to large and evolving systems.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If manual change impact analysis approaches are used, then flexibility is maintained, but error rate and inefficiency increase

Engineering Contradiction:
Improveanalysis flexibilityVSAvoidanalysis accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements automated detection of changed lines and automatic updating of module PDGs based on these changes. This self-service capability reduces reliance on manual analysis while maintaining flexibility, as the system autonomously performs the error-prone tasks of tracking changes and identifying impacted components, thereby improving reliability without sacrificing adaptability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10789054B2Methods, systems, apparatuses and devices for facilitating change impact analysis (CIA) using modular program dependency graphs
Publication Date: 2020.09.29 FIND IT EZ SOFTWARE CORP
  • US10789054B2 patent drawing
  • US10789054B2 patent drawing
  • US10789054B2 patent drawing

AI summary

Disclosed herein is a system for facilitating Change Impact Analysis (CIA) using modular program dependency graphs. Further, the system may include a communication device configured for receiving a source code for a software application and one or more changed lines corresponding to the source code from a user device, and transmitting one or more impacted lines from the source code associated with the software application to the user device. Further, the system may include a processing device configured for analyzing the source code to determine one or more modules, generating one or more modular Program Dependency Graphs (mPDGs) based on the analysis, updating at least one mPDG based on the one or more changed lines to obtain the at least one updated mPDG, searching the mPDG based on search expressions associated with the one or more changed lines, and calculating one or more impacted lines based on the searching.