System and method for identifying source code defect introduction during source code modification
Uloženo v:
| Název: | System and method for identifying source code defect introduction during source code modification |
|---|---|
| Patent Number: | 11281,460 |
| Datum vydání: | March 22, 2022 |
| Appl. No: | 17/101287 |
| Application Filed: | November 23, 2020 |
| Abstrakt: | Methods, systems, and computer-readable media are disclosed herein that provide a comprehensive view that reveals all or nearly all possible method dependencies that are present in client workflows. In aspects, when computer code for a particular method is going to be edited, other methods are identified that have upstream or downstream dependencies relative to the particular method. The methods that will be affected based on the computer code editing can be presented in a user-interactive graphical user interface that facilitates exploration of upstream and downstream dependencies. |
| Inventors: | CERNER INNOVATION, INC. (Kansas City, KS, US) |
| Assignees: | CERNER INNOVATION, INC. (Kansas City, KS, US) |
| Claim: | 1. A computerized method for impact identification based on code analysis, the method comprising: generating a static dependency graph that maps a first plurality of dependencies for one or more client workflows encoded in a code base; generating an internal-domain dynamic dependency graph by tracing a first plurality of method calls based on execution of the code base in an internal domain, wherein the internal-domain dynamic dependency graph includes a second plurality of dependencies identified for the one or more client workflows based on the first plurality of method calls; identifying overlap and at least one difference between the first plurality of dependencies and the second plurality of dependencies by superimposing the internal-domain dynamic dependency graph and the static dependency graph; generating a client-domain dynamic dependency graph by tracing a second plurality of method calls based on execution of the code base in a client domain, wherein the client-domain dynamic dependency graph includes a third plurality of dependencies identified for the one or more client workflows based on the second plurality of method calls; and performing an impact analysis for the one or more client workflows based on a comparison of the first plurality of dependencies, the second plurality of dependencies, and the third plurality of dependencies. |
| Claim: | 2. The method of claim 1 , wherein the impact analysis identifies specific upstream and downstream method call dependencies for the one or more client workflows using each of the first, second, and third plurality of dependencies, wherein the impact analysis identifies overlap between the first, second, and third plurality of dependencies, and wherein the impact analysis identifies one or more differences between the first, second, and third plurality of dependencies for the one or more client workflows. |
| Claim: | 3. The method of claim 1 , wherein identifying the overlap and the at least one difference between the first plurality of dependencies and the second plurality of dependencies comprises at least one of: superimposing the internal-domain dynamic dependency graph and the static dependency graph; and identifying that at least one method that is present in the internal-domain dynamic dependency graph is absent from the static dependency graph. |
| Claim: | 4. The method of claim 1 , wherein identifying the overlap and the at least one difference between the first plurality of dependencies and the second plurality of dependencies comprises at least one of: superimposing the internal-domain dynamic dependency graph and the static dependency graph; and identifying that at least one method that is absent in the internal-domain dynamic dependency graph is present from the static dependency graph. |
| Claim: | 5. The method of claim 1 , wherein generating the static dependency graph comprises: scanning computer code that encodes the one or more client workflows in the code base; and identifying all of the first plurality of dependencies between method calls based on scanning the computer code; wherein the static dependency graph includes all of the first plurality of dependencies, wherein the first plurality of dependencies represents upstream and downstream calls between methods of the one or more client workflows. |
| Claim: | 6. The method of claim 5 , wherein the first plurality of dependencies includes at least one upstream method that calls another downstream method in the one or more client workflows. |
| Claim: | 7. The method of claim 5 , wherein the first plurality of dependencies includes at least one downstream method that is called by another upstream method in the one or more client workflows. |
| Claim: | 8. The method of claim 1 , wherein generating the internal-domain dynamic dependency graph comprises: executing the one or more client workflows using the internal domain. |
| Claim: | 9. The method of claim 8 , wherein generating the internal-domain dynamic dependency graph further comprises: tracing the first plurality of method calls. |
| Claim: | 10. The method of claim 9 , wherein generating the internal-domain dynamic dependency graph further comprises: identifying at least one of an upstream dependency relationship or a downstream dependency relationship for all methods present in the first plurality of method calls; wherein the internal-domain dynamic dependency graph includes the second plurality of dependencies, and the second plurality of dependencies include the at least one of the upstream dependency relationship or the downstream dependency relationship for all methods present in the first plurality of method calls. |
| Claim: | 11. The method of claim 1 , wherein generating the client-domain dynamic dependency graph comprises: executing the one or more client workflows using the client domain; tracing the second plurality of method calls; and identifying at least one of an upstream dependency relationship or a downstream dependency relationship for methods present in the second plurality of method calls; wherein the internal-domain dynamic dependency graph includes the third plurality of dependencies, and the third plurality of dependencies includes the at least one of the upstream dependency relationship or the downstream dependency relationship for the methods present in the second plurality of method calls. |
| Claim: | 12. One more non-transitory computer-readable media having computer-executable instructions embodied thereon that, when executed using one or more hardware processors, perform a method for impact identification based on code analysis, the media comprising: generating a static dependency graph that maps a first plurality of dependencies for one or more client workflows encoded in a code base; generating an internal-domain dynamic dependency graph by tracing a first plurality of method calls based on execution of the code base in an internal domain, wherein the internal-domain dynamic dependency graph includes a second plurality of dependencies identified for the one or more client workflows based on the first plurality of method calls; identifying overlap and at least one difference between the first plurality of dependencies and the second plurality of dependencies by superimposing the internal-domain dynamic dependency graph and the static dependency graph; generating a client-domain dynamic dependency graph by tracing a second plurality of method calls based on execution of the code base in a client domain, wherein the client-domain dynamic dependency graph includes a third plurality of dependencies identified for the one or more client workflows based on the second plurality of method calls; and performing an impact analysis for the one or more client workflows based on a comparison of the first plurality of dependencies, the second plurality of dependencies, and the third plurality of dependencies, wherein the impact analysis identifies upstream and downstream dependencies for the one or more client workflows using each of the first, second, and third plurality of dependencies, wherein the impact analysis identifies overlap between the first, second, and third, dependencies, and wherein the impact analysis identifies differences between the first, second, and third plurality of dependencies for the one or more client workflows. |
| Claim: | 13. The media of claim 12 , wherein generating the static dependency graph comprises: receive a plurality of code bases as input; generating a plurality of separate dependency maps for the plurality of code bases; combining the plurality of separate dependency maps into one map; and parsing the one map; wherein the static dependency graph that maps the first plurality of dependencies is generated from the one map, and wherein the first plurality of dependencies includes at least 90% of dependencies present in the plurality of code bases. |
| Claim: | 14. The media of claim 12 , wherein generating the internal-domain dynamic dependency graph comprises: executing the one or more client workflows using the internal domain; and tracing all of the first plurality of method calls during execution of the one or more client workflows in the internal domain. |
| Claim: | 15. The media of claim 14 , wherein generating the internal-domain dynamic dependency graph further comprises: generating a sequenced method call tree that represents all of the first plurality of method calls traced; and based on the sequenced method call tree, identifying at least one of an upstream dependency relationship or a downstream dependency relationship for all methods present in the first plurality of method calls; wherein the internal-domain dynamic dependency graph includes the second plurality of dependencies, and wherein the second plurality of dependencies includes the at least one of the upstream dependency relationship or the downstream dependency relationship for all methods traced for the first plurality of method calls. |
| Claim: | 16. The media of claim 12 , further comprising: generating and causing display of a graphical user interface (GUI) that displays computer code for the one or more client workflows encoded in the code base. |
| Claim: | 17. The media of claim 16 , further comprising: receiving a selection of a first method directly from the computer code displayed in the GUI; and in response to the selection, generating and causing display of the impact analysis as specific to the first method in the GUI, wherein the impact analysis that is specific to the first method specifies at least one of an upstream dependency relationship or a downstream dependency relationship of a second method relative to the first method. |
| Claim: | 18. The media of claim 17 , further comprising: receiving a subsequent selection of the second method from the impact analysis that is specific to the first method in the GUI; and in response to the subsequent selection, generating and causing display of the impact analysis as specific to the first method and the second method, wherein the impact analysis as specific to the first method and the second method specifies at least one of another upstream dependency relationship or another downstream dependency relationship of a third method relative to the second method. |
| Claim: | 19. The media of claim 12 , wherein identifying the overlap and the at least one difference between the first plurality of dependencies and the second plurality of dependencies comprises: identifying that at least one method that is present in the internal-domain dynamic dependency graph is absent from the static dependency graph; or identifying that the at least one method that is absent in the internal-domain dynamic dependency graph is present from the static dependency graph. |
| Claim: | 20. A system for impact identification based on code analysis, the system comprising: one or more processors; and a dependency graph generating module that generates a static dependency graph that maps a first plurality of dependencies for one or more client workflows encoded in a code base; generates an internal-domain dynamic dependency graph by tracing a first plurality of method calls based on execution of the code base in an internal domain, wherein the internal-domain dynamic dependency graph includes a second plurality of dependencies identified for the one or more client workflows based on the first plurality of method calls; generates a client-domain dynamic dependency graph by tracing a second plurality of method calls based on execution of the code base in a client domain, wherein the client-domain dynamic dependency graph includes a third plurality of dependencies identified for the one or more client workflows based on the second plurality of method calls; a superimposing module that identifies overlap and at least one difference between the first plurality of dependencies and the second plurality of dependencies by superimposing the internal-domain dynamic dependency graph and the static dependency graph; an impact analysis module that performs an impact analysis for the one or more client workflows based on a comparison of the first plurality of dependencies, the second plurality of dependencies, and the third plurality of dependencies; and a graphical user interface module that generates and causes display of the impact analysis, wherein the impact analysis is specific to a first method that is selected from displayed computer code from the code base, and wherein the impact analysis specifies at least one of an upstream dependency relationship or a downstream dependency relationship of a second method relative to the first method. |
| Patent References Cited: | 5936634 August 1999 Kawamoto 8898676 November 2014 Hiltgen et al. 9122490 September 2015 Fanning 10275240 April 2019 Kogan et al. 10817283 October 2020 Naik 11106460 August 2021 Culibrk et al. 2009/0083268 March 2009 Coqueret et al. 2013/0080993 March 2013 Stravers 2014/0310559 October 2014 Deng 2014/0331203 November 2014 Elshishiny et al. 2016/0188325 June 2016 Blitzstein 2017/0068676 March 2017 Jayachandran 2020/0034135 January 2020 Shi et al. 2020/0174907 June 2020 Lundquist et al. 2020/0349055 November 2020 Reddy et al. 2021/0049050 February 2021 Goodwin 2021/0049465 February 2021 Bogdan 2021/0247976 August 2021 Masis et al. |
| Other References: | Preinterview First Office Action received for U.S. Appl. No. 17/101,284, dated Dec. 22, 2021, 4 pages. cited by applicant |
| Primary Examiner: | Deng, Anna C |
| Attorney, Agent or Firm: | Shook, Hardy & Bacon L.L.P. |
| Přístupové číslo: | edspgr.11281460 |
| Databáze: | USPTO Patent Grants |
| Abstrakt: | Methods, systems, and computer-readable media are disclosed herein that provide a comprehensive view that reveals all or nearly all possible method dependencies that are present in client workflows. In aspects, when computer code for a particular method is going to be edited, other methods are identified that have upstream or downstream dependencies relative to the particular method. The methods that will be affected based on the computer code editing can be presented in a user-interactive graphical user interface that facilitates exploration of upstream and downstream dependencies. |
|---|