Contextual developer ranking

US9645817B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9645817-B1
Application numberUS-201615277913-A
CountryUS
Kind codeB1
Filing dateSep 27, 2016
Priority dateSep 27, 2016
Publication dateMay 9, 2017
Grant dateMay 9, 2017

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 a contextual ranking for a developer. One of the methods includes computing a predicted violation value for each developer in a context group. An actual violation value is computed for each developer in the context group. A score for each developer in the context group is computed, wherein the score represents a distance between the actual violation value for the developer and the predicted violation value for the developer. A contextual ranking is generated of the plurality of developers in the context group based on the score for each developer in the context group.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: obtaining data representing a plurality of developer actions for a developer of source code in one or more code bases, wherein each developer action is a violation introduction into the one or more code bases attributed to the developer, a violation removal from the one or more code bases attributed to the developer, an added line of source code in the one or more code bases attributed to the developer, or a unit of source code change in the one or more code bases attributed to the developer; obtaining a plurality of characteristic metric values for the developer; determining a context group for the developer based on the characteristic metric values for the developer, the context group comprising the developer and one or more other developers having respective characteristic metric values that are most similar to the characteristic metric values for the developer among a population of developers; automatically computing a predicted violation value for each developer in the context group, wherein the predicted violation value represents a predicted measure of violation introductions into the one or more code bases attributed to the developer; automatically computing an actual violation value for each developer in the context group, wherein the actual violation value represents a measure of violation introductions into the one or more code bases attributed to the developer; automatically computing a score for each developer in the context group, wherein the score represents a distance between the actual violation value for the developer and the predicted violation value for the developer; and automatically generating a contextual ranking of a plurality of developers in the context group based on the score for each developer in the context group. 2. The method of claim 1 , wherein the predicted violation value represents a predicted net violation value representing the predicted measure of violation introductions attributed to the developer compared to violation removals attributed to the developer. 3. The method of claim 1 , further comprising receiving a request from the developer for developer metrics for the developer; and providing, in response to the request, a user interface presentation that presents a contextual rank of the developer relative to the other developers in the context group. 4. The method of claim 3 , wherein the user interface presentation presents a change in a rank of the developer within the context group. 5. The method of claim 1 , wherein determining the context group for the developer based on the characteristic metric values for the developer comprises determining a predetermined number of developers having respective measures of churn or lines of code added that are most similar to corresponding metrics for the developer. 6. The method of claim 5 , further comprising selecting the predetermined number of developers from a population of developers comprising developers who contributed source code to any of multiple projects analyzed by a distributed static analysis system. 7. The method of claim 5 , further comprising filtering the context group by a particular attribute. 8. The method of claim 7 , wherein the particular attribute is a geographic location, team membership, or a level of seniority. 9. The method of claim 1 , wherein computing the predicted violation value for each developer in the context group comprises using a predictive model trained to provide a predicted violation value for a particular input attribute. 10. The method of claim 9 , wherein the particular input attribute is a count of lines of code added or churn. 11. The method of claim 9 , wherein the predictive model is trained using developer actions for all developers of all projects analyzed by a distributed static analysis system. 12. The method of claim 9 , wherein the predictive model is trained using developer actions for a plurality of projects written in a particular programming language. 13. The method of claim 9 , wherein the predictive model is trained using a commit history for each developer. 14. The method of claim 9 , wherein the predictive model is trained using a commit history for developers in the context group. 15. The method of claim 1 , wherein computing the score for a each developer comprises computing an absolute distance between the predicted violation value and the actual violation value. 16. The method of claim 1 , wherein computing the score for a each developer comprises computing a relative distance between the predicted violation value and the actual violation value. 17. The method of claim 1 , wherein computing the score for a each developer comprises computing an average between a first ranking based on an absolute distance between the predicted violation value and the actual violation value and a second ranking based on a relative distance between the predicted violation value and the actual violation value. 18. A 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: obtaining data representing a plurality of developer actions for a developer of source code in one or more code bases, wherein each developer action is a violation introduction into the one or more code bases attributed to the developer, a violation removal from the one or more code bases attributed to the developer, an added line of source code in the one or more code bases attributed to the developer, or a unit of source code change in the one or more code bases attributed to the developer; obtaining a plurality of characteristic metric values for the developer; determining a context group for the developer based on the characteristic metric values for the developer, the context group comprising the developer and one or more other developers having respective characteristic metric values that are most similar to the characteristic metric values for the developer among a population of developers; automatically computing a predicted violation value for each developer in the context group, wherein the predicted violation value represents a predicted measure of violation introductions into the one or more code bases attributed to the developer; automatically computing an actual violation value for each developer in the context group, wherein the actual violation value represents a measure of violation introductions into the one or more code bases attributed to the developer; automatically computing a score for each developer in the context group, wherein the score represents a distance between the actual violation value for the developer and the predicted violation value for the developer; and automatically generating a contextual ranking of a plurality of developers in the context group based on the score for each developer in the context group. 19. The system of claim 18 , wherein the predicted violation value represents a predicted net violation value representing the predicted measure of violation introductions attributed to the developer compared to violation removals attributed to the developer. 20. The system of claim 18 , wherein the operations further comprise receiving a request from the developer for developer metrics for the developer; and providing, in response to the request, a user interface presentation that presents a contextual rank of the developer relative to th

Assignees

Inventors

Classifications

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

  • G06F8/77Primary

    Software metrics · CPC title

  • Physics · mapped topic

  • Structural analysis for program understanding · CPC title

  • Physics · mapped topic

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 US9645817B1 cover?
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for computing a contextual ranking for a developer. One of the methods includes computing a predicted violation value for each developer in a context group. An actual violation value is computed for each developer in the context group. A score for each developer in the context group is computed, wher…
Who is the assignee on this patent?
Semmle Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/3604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 09 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).