Aggregating source code metric values

US9619224B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9619224-B2
Application numberUS-201514794227-A
CountryUS
Kind codeB2
Filing dateJul 8, 2015
Priority dateMay 30, 2014
Publication dateApr 11, 2017
Grant dateApr 11, 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 aggregating source code metric values. One of the methods includes obtaining data representing a directed graph, wherein one or more nodes of the graph are associated with a respective set of one or more metric instances, wherein each set of metric instances for each node includes all metric instances occurring in sets of any node descendant from the node in the graph, wherein each metric instance identifies a location in a source code base, and wherein each metric instance has a respective metric value, a respective identifier, and a respective attribute type. An attribute value is computed for a first node in the graph from the respective metric value of each metric instance in a first set of metric instances associated with the first node.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: obtaining data representing a directed graph, wherein one or more nodes of the graph are associated with a respective set of one or more metric instances, wherein each respective set of metric instances for each node in the graph identifies all metric instances associated with the node and all metric instances associated with any node descendant from the node in the graph, wherein each metric instance identifies a location in a source code base, and wherein each metric instance has a respective metric value, and wherein at least one node is reachable by multiple paths in the graph, wherein the graph includes multiple source code location nodes and multiple edges between the source code location nodes, each source code location node representing a portion of the source code base, each edge between source code location nodes representing inclusion of a first portion of the source code base in a second portion of the source code base, wherein the graph includes multiple organizational nodes and multiple edges, each organizational node representing a respective business entity of a business organization, each edge between organizational nodes representing responsibility of a first business entity for a second business entity, wherein each edge between an organizational node and a source code location node represents responsibility of a business entity represented by the organizational node for a portion of the source code base represented by the source code location node; and computing an aggregated attribute value for a first node in the graph, including aggregating respective metric values of each metric instance in a first set of metric instances associated with the first node, wherein the first set of metric instances identifies all metric instances associated with the first node and all metric instances associated with any node descendant from the first node in the graph including the node reachable by multiple paths in the graph. 2. The method of claim 1 , further comprising computing the first set of metric instances associated with the first node as a set union of one or more sets of metric instances associated with any node directly descendant from the first node in the graph. 3. The method of claim 2 , wherein at least one metric instance is associated with multiple locations in the source code base, the multiple locations being represented by multiple source code location nodes in the graph, and wherein computing the first set of metric instances associated with the first node comprises including the metric instance associated with multiple locations in the source code base in the first set of metric instances only once. 4. The method of claim 1 , further comprising computing respective sets of metric instances for each of multiple parent nodes of the node reachable by multiple paths in the graph including adding all the metric instances associated with the node to each respective set of metric instances of the multiple parent nodes. 5. The method of claim 1 , wherein each source code location node represents a location in a file system. 6. The method of claim 1 , wherein the first node is an organizational node representing a particular business entity. 7. The method of claim 6 , wherein the node reachable by multiple paths in the graph represents a source code location node. 8. The method of claim 7 , wherein the node reachable by multiple paths in the graph represents a portion of the source code base for which multiple business entities have responsibility. 9. 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 directed graph, wherein one or more nodes of the graph are associated with a respective set of one or more metric instances, wherein each respective set of metric instances for each node in the graph identifies all metric instances associated with the node and all metric instances associated with any node descendant from the node in the graph, wherein each metric instance identifies a location in a source code base, and wherein each metric instance has a respective metric value, and wherein at least one node is reachable by multiple paths in the graph, wherein the graph includes multiple source code location nodes and multiple edges between the source code location nodes, each source code location node representing a portion of the source code base, each edge between source code location nodes representing inclusion of a first portion of the source code base in a second portion of the source code base, wherein the graph includes multiple organizational nodes and multiple edges, each organizational node representing a respective business entity of a business organization, each edge between organizational nodes representing responsibility of a first business entity for a second business entity, wherein each edge between an organizational node and a source code location node represents responsibility of a business entity represented by the organizational node for a portion of the source code base represented by the source code location node; and computing an aggregated attribute value for a first node in the graph, including aggregating respective metric values of each metric instance in a first set of metric instances associated with the first node, wherein the first set of metric instances identifies all metric instances associated with the first node and all metric instances associated with any node descendant from the first node in the graph including the node reachable by multiple paths in the graph. 10. The system of claim 9 , wherein the operations further comprise computing the first set of metric instances associated with the first node as a set union of one or more sets of metric instances associated with any node directly descendant from the first node in the graph. 11. The system of claim 10 , wherein at least one metric instance is associated with multiple locations in the source code base, the multiple locations being represented by multiple source code location nodes in the graph, and wherein computing the first set of metric instances associated with the first node comprises including the metric instance associated with multiple locations in the source code base in the first set of metric instances only once. 12. The system of claim 9 , wherein the operations further comprise computing respective sets of metric instances for each of multiple parent nodes of the node reachable by multiple paths in the graph including adding all the metric instances associated with the node to each respective set of metric instances of the multiple parent nodes. 13. The system of claim 9 , wherein each source code location node represents a location in a file system. 14. The system of claim 9 , wherein the first node is an organizational node representing a particular business entity. 15. The system of claim 14 , wherein the node reachable by multiple paths in the graph represents a source code location node. 16. The system of claim 15 , wherein the node reachable by multiple paths in the graph represents a portion of the source code base for which multiple business entities have responsibility. 17. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operation

Assignees

Inventors

Classifications

  • G06F8/70Primary

    Software maintenance or management · CPC title

  • using software metrics · CPC title

  • G06F8/75Primary

    Structural analysis for program understanding · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • Software metrics · 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 US9619224B2 cover?
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for aggregating source code metric values. One of the methods includes obtaining data representing a directed graph, wherein one or more nodes of the graph are associated with a respective set of one or more metric instances, wherein each set of metric instances for each node includes all metric inst…
Who is the assignee on this patent?
Semmle Ltd
What technology area does this patent fall under?
Primary CPC classification G06F8/70. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 11 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).