Incremental Dataflow Analysis for Impacted Function Reanalysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing static analysis tools for software development in CI/CD environments are inefficient and time-consuming, particularly when dealing with incremental changes in software code, leading to excessive false alarms and increased review efforts.
Innovation Solution
A method and system for incremental functional approach-based dataflow analysis that performs static dataflow analysis over a set of functions, identifying edited and impacted functions through a bottom-up and top-down traversal of the call graph, minimizing reanalysis by leveraging previous analysis results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If static inter-procedural dataflow analysis is performed on entire software systems, then detection precision of potential bugs is improved, but analysis time increases to hours or days
Solution Approach 1:
The patent segments the dataflow analysis by identifying and analyzing only the impacted functions resulting from code changes, rather than analyzing the entire software system. This is achieved by computing function summaries, comparing them between versions, and using the differences to determine which functions require re-analysis, thereby reducing analysis time while maintaining detection precision for changed code.
Solution Approach 2:
The patent applies partial action by performing dataflow analysis only on the subset of functions that are impacted by code changes, rather than performing complete analysis on all functions. The system computes summaries for all functions but only executes full dataflow analysis on impacted functions, reducing computational effort while maintaining adequate detection capability.
2Measurement precision
If whole-program analysis is performed on successive software versions, then comprehensive bug detection is achieved, but deployment time becomes comparable to release cycle time
Solution Approach 1:
The patent performs preliminary computation of function summaries for all functions in the software system. These summaries are stored and used in subsequent versions to quickly identify impacted functions without re-computing summaries. This preliminary action enables fast incremental analysis while maintaining comprehensive bug detection capability.
Solution Approach 2:
The patent implements dynamic analysis by adapting the analysis scope based on code changes. The system dynamically determines which functions need re-analysis by comparing function summaries between versions, allowing the analysis to focus only on relevant portions of the codebase and enabling faster deployment cycles.
3Loss of time
If incremental dataflow analysis is performed on changed code only, then analysis time is reduced, but false alarms increase requiring more developer review effort
Solution Approach 1:
The patent uses feedback from function summary comparisons to guide the analysis process. By comparing summaries of functions between versions and using this feedback to identify impacted functions, the system can focus analysis on relevant code while maintaining reliability. The feedback mechanism helps filter out false alarms by ensuring analysis is targeted at actually changed code.
Data Source
AI summary
This disclosure relates generally to method and system for incremental functional approach-based dataflow analysis. Static dataflow analysis can take hours to days depending on size and complexity of the code. In today's agile development environment faster analysis is required which can handle incremental changes to the code in an efficient manner. The method includes by performing a static dataflow analysis over a set of functions of a source code. Further, obtains a set of impacted functions from the source code and executes a dataflow analysis over the set of impacted functions of the source code. The method performs an incremental functional approach-based dataflow analysis over the set of impacted functions including an incremental bottom-up analysis and an incremental top-down analysis. The method efficiently updates results of dataflow analysis in response to incremental changes which is fast and scalable and minimizes the number of procedures by comparing summaries across the versions.


