Modular Program Dependency Graphs for Software Change Impact Analysis
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Measurement precision
If fine-grained analysis is performed to accurately identify impacted lines, then precision is improved, but computational complexity increases
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.
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.
3Reliability
If complete PDG regeneration is performed for every change, then analysis accuracy is maintained, but scalability to large systems deteriorates
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.
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.
4Adaptability or versatility
If manual change impact analysis approaches are used, then flexibility is maintained, but error rate and inefficiency increase
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.
Data Source
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.


