Fast change impact analysis tool for large-scale software systems

US11334474B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11334474-B2
Application numberUS-202117163241-A
CountryUS
Kind codeB2
Filing dateJan 29, 2021
Priority dateJan 10, 2019
Publication dateMay 17, 2022
Grant dateMay 17, 2022

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.

A method may include obtaining original source code including entities. The entities each correspond to a location in the original source code. The method may further include during an offline phase and by a computer processor, generating, from the original source code, (i) a dependency graph including nodes corresponding to the entities and (ii) a location index that maps each location in the original source code to one of the nodes, and during an online phase following the offline phase and using the dependency graph and the location index: identifying modified locations in the original source code by comparing modified source code to the original source code, obtaining, for each of the modified locations and by searching the location index, matching nodes, determining, for each of the matching nodes, impacted nodes reachable from the matching node, and identifying, using the location index, impacted entities corresponding to the impacted nodes.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: obtaining original source code comprising a plurality of entities, wherein the plurality of entities each correspond to a location in the original source code; during an offline phase and by a computer processor, generating, from the original source code, (i) a dependency graph comprising a plurality of nodes corresponding to the plurality of entities and (ii) a location index that maps each location in the original source code to one of the plurality of nodes; and during an online phase following the offline phase and using the dependency graph and the location index: identifying a plurality of modified locations in the original source code by comparing modified source code to the original source code; determining, based on the comparing of the modified source code to the original source code, that a level of imprecision of the dependency graph exceeds a predetermined threshold; in response to determining that the level of imprecision exceeds the predetermined threshold, re-generating the dependency graph using the modified source code; obtaining, for each of the plurality of modified locations and by searching the location index, matching nodes of the plurality of nodes; determining, for each of the matching nodes, impacted nodes of the plurality of nodes reachable from the matching node; and identifying, using the location index, impacted entities of the plurality of entities corresponding to the impacted nodes. 2. The method of claim 1 , further comprising: obtaining, for each of a plurality of tests, covered entities of the plurality of entities; identifying, for each of the plurality of tests, covered impacted entities common to the impacted entities and the covered entities for the test; and obtaining test priorities by prioritizing execution of the plurality of tests using the covered impacted entities for each of the plurality of tests. 3. The method of claim 2 , further comprising: generating a report comprising the impacted entities and the test priorities. 4. The method of claim 1 , wherein comparing the modified source code to the original source code comprises determining modifications that result in the modified source code when applied to the original source code, and wherein each of the modifications comprises a first location in the original source code and a second location in the modified source code. 5. The method of claim 1 , wherein identifying the impacted nodes reachable from the matching node comprises: identifying, for each of the impacted nodes, a path in the dependency graph between the matching node and the impacted node, wherein the impacted node has a specific node type. 6. The method of claim 1 , wherein identifying the impacted nodes reachable from the matching node comprises: identifying, for each of the impacted nodes, a path in the dependency graph between the matching node and the impacted node, wherein the path comprises an edge connected to the impacted node, and wherein the edge has a specific edge type. 7. A system, comprising: a memory coupled to a computer processor; a repository configured to store: original source code comprising a plurality of entities, wherein the plurality of entities each correspond to a location in the original source code, modified source code, a dependency graph comprising a plurality of nodes corresponding to the plurality of entities, and a location index that maps each location in the original source code to one of the plurality of nodes; a difference generator, executing on the computer processor and using the memory, configured to identify a plurality of modified locations by comparing the modified source code to the original source code; and an impact analyzer, executing on the computer processor and using the memory, configured to: during an offline phase, generate (i) the dependency graph from the original source code, and (ii) the location index, and during an online phase following the offline phase and using the dependency graph and the location index: obtain, for each of the plurality of modified locations and by searching the location index, matching nodes of the plurality of nodes, determine, based on the comparing of the modified source code to the original source code, that a level of imprecision of the dependency graph exceeds a predetermined threshold, in response to determining that the level of imprecision exceeds the predetermined threshold, re-generate the dependency graph using the modified source code, determine, for each of the matching nodes, impacted nodes of the plurality of nodes reachable from the matching node, and identify, using the location index, impacted entities of the plurality of entities corresponding to the impacted nodes, wherein the difference generator identifies the plurality of modified locations during the online phase. 8. The system of claim 7 , wherein the impact analyzer is further configured to: obtain, for each of a plurality of tests, covered entities of the plurality of entities, identify, for each of the plurality of tests, covered impacted entities common to the impacted entities and the covered entities for the test, and obtain test priorities by prioritizing execution of the plurality of tests using the covered impacted entities for each of the plurality of tests. 9. The system of claim 8 , wherein the impact analyzer is further configured to: generate a report comprising the impacted entities and the test priorities. 10. The system of claim 7 , wherein the difference generator is further configured to compare the modified source code to the original source code by determining modifications that result in the modified source code when applied to the original source code, and wherein each of the modifications comprises a first location in the original source code and a second location in the modified source code. 11. The system of claim 7 , wherein the impact analyzer is further configured to: identify, for each of the impacted nodes, a path in the dependency graph between the matching node and the impacted node, wherein the impacted node has a specific node type. 12. The system of claim 7 , wherein the impact analyzer is further configured to: identify, for each of the impacted nodes, a path in the dependency graph between the matching node and the impacted node, wherein the path comprises an edge connected to the impacted node, and wherein the edge has a specific edge type. 13. A non-transitory computer readable medium comprising instructions that, when executed by a computer processor, perform: obtaining original source code comprising a plurality of entities, wherein the plurality of entities each correspond to a location in the original source code; during an offline phase and by a computer processor, generating, from the original source code, (i) a dependency graph comprising a plurality of nodes corresponding to the plurality of entities and (ii) a location index that maps each location in the original source code to one of the plurality of nodes; and during an online phase following the offline phase and using the dependency graph and the location index: identifying a plurality of modified locations in the original source code by comparing modified source code to the original source code; determining, based on the comparing of the modified source code to the original source code, that a level of imprecision of the dependency graph exceeds a predetermined threshold; in response to determining that the level of imprecision exceeds the predetermined threshold, re-generating the dependency graph usi

Assignees

Inventors

Classifications

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • for test execution, e.g. scheduling of test suites · CPC title

  • for coverage analysis · CPC title

  • where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats · CPC title

  • Threshold · 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 US11334474B2 cover?
A method may include obtaining original source code including entities. The entities each correspond to a location in the original source code. The method may further include during an offline phase and by a computer processor, generating, from the original source code, (i) a dependency graph including nodes corresponding to the entities and (ii) a location index that maps each location in the …
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/433. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 17 2022 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).