Incremental Software Verification via Relevant Change Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveverification completenessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvechange detection accuracyVSAvoidverification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveverification timeVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12050906B2Method and system for identifying relevant changes for incremental verification of evolving software
Publication Date: 2024.07.30 TATA CONSULTANCY SERVICES LTD
  • US12050906B2 patent drawing
  • US12050906B2 patent drawing
  • US12050906B2 patent drawing

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.