Incremental Software Verification via Relevant Change Identification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing incremental verification techniques for software analysis are inefficient due to the analysis of all changes in code, even though not every change impacts the verification outcome of program properties, leading to increased time and cost.
Innovation Solution
A system and method for identifying relevant changes using a lightweight pre-analysis phase that computes value-influencing variables (VIVs) and marks changes in assignment and conditional statements as relevant based on their impact on program properties, employing a variant of Strongly Live Variable (SLV) analysis and text differencing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If every change in code and its dependencies is analyzed during incremental verification, then verification completeness is maintained, but verification time increases proportionally with the amount of code analyzed
Solution Approach 1:
The patent extracts only the relevant changes from the set of all changes by introducing a pre-analysis phase that identifies changes affecting program properties. This separates the relevant subset of changes from the complete set, allowing verification to focus only on necessary portions while maintaining completeness for property-critical changes.
Solution Approach 2:
The patent applies preliminary action by performing a pre-analysis phase before the main verification process. This pre-analysis computes value-influencing variables and identifies relevant changes in advance, so that the subsequent verification step only needs to process the identified relevant changes rather than all changes, thereby reducing verification time while maintaining completeness.
2Reliability
If all changes are analyzed during incremental verification, then no relevant changes are missed, but the cost of verification increases due to analyzing irrelevant changes
Solution Approach 1:
The patent introduces an intermediary mechanism - the pre-analysis phase that computes value-influencing variables (VIVs) - which acts as a mediator between the set of all changes and the verification process. This intermediary filters and identifies relevant changes based on their impact on program properties, enabling accurate change detection while improving verification efficiency by excluding irrelevant changes.
3Loss of time
If a light-weight pre_analysis is performed to identify relevant changes, then verification time is reduced, but the complexity of the verification system increases
Solution Approach 1:
The patent segments the verification system into distinct modular components: a pre-analysis phase that computes value-influencing variables and identifies relevant changes, and a verification phase that processes only the identified relevant changes. This segmentation reduces verification time by separating the filtering function from the verification function, while the modular structure manages system complexity through clear separation of concerns.
Data Source
AI summary
Modern software verification tools are moving towards incremental verification of program properties to ensure safety of evolving software systems. However, not every change in the program impacts verification outcome of program properties. Moreover, analyzing these irrelevant changes adds to cost of incremental verification. A system and method have been provided for identifying relevant changes for incremental verification of evolving software. The disclosure provides a light-weight pre-analysis phase of identifying relevant changes that can lead to improvement in efficiency of all existing incremental verification techniques. To identify relevant changes, the system provides a relevant change identification technique (RCIT) with respect to program properties. The RCIT uses a variant of the strongly live variables (SLV) analysis to compute variables that are influencing the verification outcome of program properties. These variables are referred as value influencing variables (VIVs). The RCIT, then uses computed VIVs and changed statement information to identify relevant changes.


