Weighting static analysis alerts

US10423409B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10423409-B2
Application numberUS-201815960194-A
CountryUS
Kind codeB2
Filing dateApr 23, 2018
Priority dateApr 21, 2017
Publication dateSep 24, 2019
Grant dateSep 24, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a source code analysis system comprising one or more computers, the method comprising: generating, by an analysis engine of the source code analysis system programmed to perform one or more source code analysis processes, a plurality of alerts for each project of a plurality of different software projects, wherein each alert represents a coding defect occurring in a respective software project analyzed by the analysis engine, and wherein each alert has one or more respective attribute values for one or more respective alert attributes; obtaining, by an alert weighting engine of the source code analysis system programmed to perform an alert weighting process, alerts previously generated by the analysis engine of the source code analysis system; generating, by the alert weighting engine from the alerts previously generated by the analysis engine of the source code analysis system, a respective sample of alerts for each feature of a plurality of features, each sample comprising alerts occurring in one or more of the plurality of different software projects, each alert having a particular attribute value corresponding to the feature, wherein each alert represents a coding defect occurring in one of the plurality of different software projects analyzed by the source code analysis system; computing, by the alert weighting engine for each sample of alerts corresponding to each attribute value and for each feature of a plurality of features, respective feature values for alerts having the attribute value for the feature; computing, by the alert weighting engine from the feature values computed for a feature of the plurality of features, a respective feature value distribution for each attribute value, wherein each respective feature value distribution for an attribute value maps each feature value of a plurality of feature values to a respective likelihood representing how likely it is for an alert having the attribute value to have the feature value for the feature; receiving, by the alert weighting engine, a request to rank a plurality of alerts by priority of addressing respective coding defects represented by the plurality of alerts, wherein the plurality of alerts is generated by one of the one or more source code analysis processes, wherein each alert of the plurality of alerts represents a respective coding defect of a software project and has one or more respective computed attribute values for one or more features of the plurality of features; obtaining, by the alert weighting engine for each feature of the plurality of features, an importance distribution that maps each feature value of one or more feature values for the feature to a respective measure of importance for an alert having the feature value; computing, by the alert weighting engine for each alert and for each feature, a respective feature value likelihood to which a feature value for the alert is mapped on the importance distribution; computing, by the alert weighting engine for each alert and for each feature, a respective feature score for the feature, the respective feature score being a value to which the computed feature value likelihood for the feature is mapped on the importance distribution for the feature; computing, by the alert weighting engine for each alert, a respective weight for the alert by combining the respective feature score for each feature computed for the alert; and providing, by the alert weighting engine, a response to the request comprising a ranking of the plurality of alerts according to the respective weights to indicate a priority of addressing respective coding defects represented by the alerts. 2. The method of claim 1 , wherein each alert has a respective attribute value that represents a rule type of a static analysis rule used to generate the alert. 3. The method of claim 1 , wherein each alert has a respective attribute value that represents a file in which the alert occurs. 4. The method of claim 3 , wherein computing the respective feature values for alerts in each sample of alerts comprises computing a feature value using alerts having a particular attribute and occurring during a same time window. 5. The method of claim 1 , wherein responding to the request comprises providing a user interface presentation that presents a plurality of attribute values for a particular alert attribute, and further comprising: receiving a user selection of the particular attribute value; and in response to receiving the user selection, displaying on the user device one or more alerts having the particular attribute value. 6. The method of claim 1 , further comprising: identifying a user who submitted the request; identifying one or more alerts of the plurality of alerts that represent respective coding defects introduced in one or more software projects of the plurality of software projects by the user who submitted the request; and wherein responding to the request comprises providing a user interface presentation that prioritizes the one or more alerts that represent the respective coding defects introduced by the user. 7. The method of claim 1 , further comprising: identifying a user who submitted the request; identifying one or more files of the software project that the user has viewed or worked on; and wherein responding to the request comprises providing a user interface presentation that prioritizes alerts that occur in the one or more files. 8. The method of claim 1 , further comprising: computing, from the respective feature values computed for a feature, a feature value distribution that represents a likelihood that an alert having an attribute value will have a particular feature value for the feature. 9. A source code analysis system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: generating, by an analysis engine of the source code analysis system programmed to perform one or more source code analysis processes, a plurality of alerts for each project of a plurality of different software projects, wherein each alert represents a coding defect occurring in a respective software project analyzed by the analysis engine, and wherein each alert has one or more respective attribute values for one or more respective alert attributes; obtaining, by an alert weighting engine of the source code analysis system programmed to perform an alert weighting process, alerts previously generated by the analysis engine of the source code analysis system; generating, by the alert weighting engine from the alerts previously generated by the analysis engine of the source code analysis system, a respective sample of alerts for each feature of a plurality of features, each sample comprising alerts occurring in one or more of the plurality of different software projects, each alert having a particular attribute value corresponding to the feature, wherein each alert represents a coding defect occurring in one of the plurality of different software projects analyzed by the source code analysis system; computing, by the alert weighting engine for each sample of alerts corresponding to each attribute value and for each feature of a plurality of features, respective feature values for alerts having the attribute value for the feature; computing, by the alert weighting engine from the feature values computed for a feature of the plurality of features, a respective feature value distribution for each attribute value, wherein each respective feature value distribution for an attribute value maps each feature value of a plurality of featur

Assignees

Inventors

Classifications

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

  • for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)} · CPC title

  • Alarm or error message display · CPC title

  • G06F8/75Primary

    Structural analysis for program understanding · CPC title

  • using logs of notifications; Post-processing of notifications · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10423409B2 cover?
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 i…
Who is the assignee on this patent?
Semmle Ltd
What technology area does this patent fall under?
Primary CPC classification G06F8/75. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 24 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).