Static Analysis Alert Weighting for Defect Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manual inspection and addressing of static analysis alerts in software projects is time-consuming and resource-intensive, as developers face an overwhelming number of alerts that exceed available resources.

Innovation Solution

A static analysis system computes weights for alerts based on multiple features, such as prevalence, actionability, commonality, currentness, and expert ratings, to prioritize and allocate resources effectively, leveraging developer experiences and expert knowledge.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static analysis rules are applied to identify coding defects, then software quality detection capability is improved, but the number of alerts generated increases overwhelming developer resources

Engineering Contradiction:
Improvecoding defect detection capabilityVSAvoidnumber of alerts
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent changes the parameter of alert importance by computing weights based on multiple features (prevalence, actionability, commonality, currentness, expert ratings). This transforms the uniform treatment of all alerts into a differentiated system where alerts are ranked by their computed weights, allowing developers to prioritize critical issues without reducing the total detection capability.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If developers manually inspect and address all alerts, then software quality improvement is achieved, but time and resource consumption increases significantly

Engineering Contradiction:
Improvesoftware qualityVSAvoidtime spent on alert addressing
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by computing weights for all alerts before developers begin addressing them. This pre-computation of priority rankings allows developers to immediately focus on high-weight alerts without manual assessment, reducing the time spent on low-priority issues while maintaining comprehensive quality improvement.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies local quality by treating different alerts differently based on their computed weights. Instead of uniform processing, each alert receives treatment proportional to its importance, with high-weight alerts receiving immediate attention and low-weight alerts being addressed later or by automated systems.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If comprehensive static analysis rules are used to cover all potential problems, then detection coverage is improved, but alert prioritization becomes difficult

Engineering Contradiction:
Improvedetection coverageVSAvoidalert prioritization complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements universality by creating a single weighted alert system that handles multiple types of coding defects (correctness, maintainability, readability, framework usage) through a unified prioritization mechanism. The same weight computation process applies to all alert types, simplifying the complexity despite comprehensive coverage.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11449335B2Weighting static analysis alerts
Publication Date: 2022.09.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11449335B2 patent drawing
  • US11449335B2 patent drawing
  • US11449335B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for computing weights for source code alerts. One of the methods includes generating a respective sample of alerts for each feature of a plurality of features. One or more feature values are computed for alerts having a same respective attribute value for each feature of a plurality of features. An importance distribution that maps each feature value to a respective measure of importance for an alert having the feature value is used to compute a respective feature score for the feature using one or more feature values computed the alert. A respective weight is computed for each alert by combining the plurality of feature scores computed for the alert.