Static Analysis Warning Grouping by EOI Similarity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static analysis of software applications generates a large number of false positives, requiring manual review, which is time-consuming and costly, and existing techniques fail to effectively reduce the manual review efforts by grouping warnings based on severity or priority.

Innovation Solution

A method and system for grouping warnings generated during static analysis by identifying structurally and semantically similar expressions of interest (EOIs) in warnings, forming groups where a representative warning's safety judgment represents other warnings in the group, reducing the need for individual review.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static analysis is performed on software applications to ensure safety, then reliability is improved, but a large number of false positives are generated requiring manual review

Engineering Contradiction:
Improvesafety validationVSAvoidmanual review time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple warnings into groups based on structural and semantic similarity of their expressions of interest. Warnings with similar EOIs are combined into single groups, allowing reviewers to evaluate one representative warning per group instead of individually reviewing each warning, thereby reducing manual review time while maintaining reliability

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the parameter of warning representation from individual warnings to grouped warnings. By transforming the granularity level from fine-grained (individual warnings) to coarse-grained (groups of similar warnings), the system reduces the volume of warnings requiring manual review while preserving the essential safety information

Inventive Principle:
Principle #35Parameter changes

2Productivity

If static analysis uses abstractions and intra-procedural analysis to improve analysis speed, then productivity is improved, but the number of false positives increases

Engineering Contradiction:
Improveanalysis speedVSAvoidnumber of warnings
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent converts the harmful effect of having many false positive warnings into a benefit by using their structural and semantic similarities for grouping. The large number of warnings, which initially seem problematic, are now leveraged to create efficient groups where one review can validate multiple warnings, transforming the quantity issue into a productivity advantage

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

3Ease of operation

If existing techniques group warnings by severity or priority, then ease of operation is improved, but manual review efforts are not significantly reduced

Engineering Contradiction:
Improvewarning organizationVSAvoidreview efforts
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments the warning review process into two distinct phases: (1) automatic grouping of warnings with structurally and semantically similar expressions of interest, and (2) manual review of only the representative warnings from each group. This segmentation eliminates the need to review every individual warning, significantly reducing review efforts while maintaining ease of operation through systematic organization

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9384017B2System and method to provide grouping of warnings generated during static analysis
Publication Date: 2016.07.05 TATA CONSULTANCY SERVICES LTD
  • US9384017B2 patent drawing
  • US9384017B2 patent drawing
  • US9384017B2 patent drawing

AI summary

The present disclosure generally relates to warnings generated based on static analysis and, more particularly, to grouping warnings generated based on static analysis. In one embodiment, a method for grouping a plurality of warnings generated based on a static analysis of an application program is provided. The method may include analyzing, by one or more processors using programmed instructions stored in a memory, the application program to generate the plurality of warnings; identifying, by the one or more processors, one or more similar warnings based on the plurality of warnings, the similar warnings having structurally and semantically similar expressions of interest (EOI); and generating, by the one or more processors, one or more groups of warnings based on the plurality of warnings, the one or more groups of warning including one or more of corresponding identified similar warnings.