Static Analysis Warning Review Interface with Contextual Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis tools generate numerous warnings that require manual review, which is time-consuming, error-prone, and lacks assisting information, making it difficult for users to determine whether program points are safe or unsafe, especially in large software applications.

Innovation Solution

A system and method that includes a processor with modules for selecting and determining review-assisting information, which transitively locates modification points and controlling conditions to help users judge the safety of program points, and a user-interface module that filters out non-useful information to display relevant modification points and controlling conditions, indicating root-causes for warnings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static analysis tools are used to detect programming bugs, then detection capability is improved, but the number of warnings generated increases

Engineering Contradiction:
Improvedetection capabilityVSAvoidnumber of warnings
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent segments the large set of warnings into smaller groups based on their program points and associated variables. By organizing warnings into manageable segments with shared characteristics, reviewers can focus on one group at a time, reducing the cognitive load and making the review process more efficient despite the large number of warnings generated.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and displays only the relevant information needed for review (program point locations, variable names, modification points, control dependencies) while filtering out unnecessary details. This extraction of essential information from the full warning data helps reviewers quickly understand each warning without being overwhelmed by the complete set of warnings.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If manual review of warnings is performed, then verification accuracy is improved, but time consumption increases

Engineering Contradiction:
Improveverification accuracyVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by automatically computing and displaying control dependencies, modification points, and variable value flows before the reviewer begins analysis. This pre-computation of relevant information saves reviewers from manually tracing through code to understand warning contexts, significantly reducing review time while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary system (the review interface with automated analysis components) that mediates between the static analysis tool and the human reviewer. This intermediary automatically performs code traversal, variable tracking, and control flow analysis, providing reviewers with pre-processed information that reduces their manual effort and time consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If code traversal is performed to collect information, then review accuracy is improved, but effort and time increase

Engineering Contradiction:
Improvereview accuracyVSAvoideffort and time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements self-service by enabling the review system to automatically perform code traversal, variable tracking, and control dependency analysis without requiring manual reviewer intervention. The system autonomously computes modification points, traces variable flows, and identifies control conditions, freeing reviewers from tedious manual code navigation while maintaining high review accuracy.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary automated analysis system that performs code traversal and information collection on behalf of the reviewer. This intermediary handles the time-consuming tasks of tracking variable modifications and analyzing control flows, providing reviewers with ready-analyzed information that maintains accuracy without requiring manual code exploration.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Loss of information

If all modification points are displayed, then completeness of information is improved, but information overload increases

Engineering Contradiction:
Improvecompleteness of informationVSAvoidinformation overload
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent applies local quality by differentiating between relevant and irrelevant modification points based on their relationship to the warning's program point and variable. Rather than uniformly displaying all modification points, the system selectively highlights those that are locally relevant to understanding the specific warning, reducing information overload while maintaining necessary completeness.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent extracts and displays only the modification points that are relevant to the specific warning being reviewed, filtering out unrelated modifications. This selective extraction presents a manageable subset of information that maintains completeness for the specific warning context without overwhelming the reviewer with all possible modification points in the codebase.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9201765B2System and method to facilitate a user interface enabled review of static analysis warnings
Publication Date: 2015.12.01 TATA CONSULTANCY SERVICES LTD
  • US9201765B2 patent drawing
  • US9201765B2 patent drawing
  • US9201765B2 patent drawing

AI summary

A system and method for facilitating verification of software code. A first program point is selected, from the software code, indicating static analysis warning to be reviewed. Further, review-assisting information including at least one of a set of modification points and a controlling condition are determined for the user to judge whether the warning generated is safe or unsafe. From the set of modification points, non-useful modification points may be filtered out in order to determine only relevant modification points. After filtering, the system presents the review-assisting information (relevant modification points and controlling conditions) in a systematic manner to the user for facilitating verification of the software code.