User-Specific Source Code Alert Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static analysis of software source code generates a large number of alerts, making it time-consuming and challenging for developers to identify relevant issues, especially when working on specific portions of a project, as manual review and full analysis are resource-intensive and often irrelevant to the user's focus.

Innovation Solution

A system that prioritizes and organizes source code alerts based on user-specific access data, leveraging metadata to identify relevant alerts in files and units accessed by the user and other developers, using a static analysis system with an analysis engine, recommendation engine, and ranking engine to provide a user-specific organization of alerts, reducing the need for manual review and conserving network bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static analysis is performed on the entire code base, then comprehensive alert coverage is achieved, but time consumption and resource usage increase significantly

Engineering Contradiction:
Improvealert coverageVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the code base into multiple source code units (files, classes, functions) and performs static analysis on individual units or selected subsets rather than the entire code base at once. This allows comprehensive alert coverage to be achieved incrementally across different units while reducing the time and resources required for each analysis run.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial analysis by selecting and analyzing only specific source code units that are relevant to the user's current work context, rather than performing excessive full-code-base analysis. This partial action approach maintains acceptable alert coverage for relevant code while significantly reducing overall analysis time and resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of information

If all alerts for the code base are provided, then complete information is available, but difficulty in identifying relevant alerts increases

Engineering Contradiction:
Improveinformation completenessVSAvoidalert identification
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent applies local quality by providing different alert information to different users based on their specific needs, roles, and the source code units they are working with. Instead of uniform alert presentation, the system tailors alert visibility and prioritization to local user contexts, making relevant alerts easier to identify while maintaining overall information completeness through on-demand access to additional alerts.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system provides partial alert information upfront - displaying only the most relevant alerts for each user's current context - while maintaining the capability to access complete alert information when needed. This partial presentation reduces the cognitive load and improves ease of identifying relevant alerts, while the underlying system retains complete information availability.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If manual review of source code is performed, then accurate alert assessment is achieved, but time and resource consumption increase

Engineering Contradiction:
Improvealert assessment accuracyVSAvoiddevelopment efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements self-service by enabling the static analysis system to automatically assess and prioritize alerts based on metadata analysis, user profiles, and source code unit characteristics. This automated self-assessment reduces the need for manual review while maintaining acceptable accuracy, thereby improving development efficiency. Manual review is reserved only for complex or high-priority cases that require human judgment.

Inventive Principle:
Principle #25Self-service

4Reliability

If full static analysis is performed, then all source code units are covered, but network bandwidth and processing resources are consumed

Engineering Contradiction:
Improveanalysis coverageVSAvoidnetwork bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts and utilizes metadata from source code units (such as file paths, class names, function signatures, and dependency information) to perform preliminary filtering and selection of source code units for analysis. This extraction approach allows the system to identify and analyze only the necessary source code units without transmitting or processing the entire code base, thereby reducing network bandwidth consumption and processing resources while maintaining analysis coverage for relevant code.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9830148B1Providing user-specific source code alert information
Publication Date: 2017.11.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9830148B1 patent drawing
  • US9830148B1 patent drawing
  • US9830148B1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for providing user-specific source code alert information. One of the methods includes receiving a user identifier of a user that has previously accessed source code of a code base, and receiving source code access data that includes access metrics related to prior user access of the source code. Based on the source code access data and on source code that has previously been accessed by the user, relevant source code that has previously been accessed by other users is determined. Source code alerts are received for the code base, and a user-specific organization of alerts is provided for the user that identifies alerts for source code problems occurring in the source code, including at least one source code unit that has previously been accessed by another user.