Semantic-aware and self-corrective re-architecting system

US10846083B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10846083-B2
Application numberUS-201816217689-A
CountryUS
Kind codeB2
Filing dateDec 12, 2018
Priority dateDec 12, 2018
Publication dateNov 24, 2020
Grant dateNov 24, 2020

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.

Disclosed herein are system, method, and device embodiments for semantic-aware and self-corrective automatic re-architecting. An embodiment operates by determining abstract syntax trees based on source code and target code, determining method identifier information based on the abstract syntax tree of the source code, determining reference location information based on the abstract syntax tree of target code, generating updated source code based on the abstract syntax tree of the source code, and determining interface mapping information including a mapping between a first service method of the source code and a second service method of the updated service code. Some embodiments may further operate by validating the interface mapping information, and generating updated source code based on the method identifier information, the reference location information, the interface mapping information, and the abstract syntax tree of the source code.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising: determining a first hierarchical data structure and a second hierarchical data structure associated with source code including initial service code and initial client code; determining method identifier information based on the first hierarchical data structure; determining reference location information based on the second hierarchical data structure and the method identifier information; generating updated service code based on the first hierarchical data structure; determining, by a migration tool, interface mapping information including a mapping between a first service method of the initial service code and a second service method of the updated service code; validating whether the interface mapping information corresponds to the source code during a subsequent execution of the migration tool, wherein upon a detection that the interface mapping information is stale, new interface mapping information is generated; determining a third hierarchical data structure based on the initial client code; and generating updated client code based on the method identifier information, the reference location information, the interface mapping information, and the third hierarchical data structure. 2. The non-transitory computer-readable device of claim 1 , the operations further comprising receiving configuration information including a file location of the source code or a file filter. 3. The non-transitory computer-readable device of claim 1 , wherein generating the updated client code comprises: determining an environment type associated with the first service method within the initial client code; and modifying the updated client code based on the environment type. 4. The non-transitory computer-readable device of claim 1 , wherein the first hierarchical data structure is an initial abstract syntax tree, and generating the updated service code comprises: determining an updated abstract syntax tree by replacing an initial syntactical element of the initial abstract syntax tree with an updated syntactical element; and generating the updated service code based on the updated abstract syntax tree. 5. The non-transitory computer-readable device of claim 1 , wherein the third hierarchical data structure is an initial abstract syntax tree, and generating the updated client code comprises: determining an updated abstract syntax tree by replacing an initial syntactical element of the initial abstract syntax tree corresponding to the first service method with an updated syntactical element corresponding to the second service method; and generating the updated client code based on the updated abstract syntax tree. 6. The non-transitory computer-readable device of claim 1 , wherein the interface mapping information is first interface mapping information, the validation information is second interface mapping information, and validating the first interface mapping information comprises: determining the second interface mapping information; and determining that the first interface mapping information matches the second interface mapping information. 7. The non-transitory computer-readable device of claim 1 , wherein at least one of the first hierarchical data structure, the second hierarchical data structure, or the third hierarchical data structure is an abstract syntax tree. 8. The non-transitory computer-readable device of claim 1 , wherein the generating updated service code comprises: identifying a first exception associated with the first hierarchical data structure; identifying a second exception associated with the second hierarchical data structure; and wrapping the second identified exception within the first exception, wherein the first exception is executable. 9. A method, comprising: determining a first hierarchical data structure based on initial service code including an original service method; determining a second hierarchical data structure based on target code corresponding to the initial service code; determining method identifier information based on the first hierarchical data structure; determining reference location information identifying an invocation location of the original service method based on the second hierarchical data structure; generating updated service code based on the first hierarchical data structure; determining, by a migration tool, interface mapping information including a mapping between the original service method and a new service method based on generating the updated service code; validating whether the interface mapping information corresponds to the new service method during a subsequent execution of the migration tool, wherein upon a detection that the interface mapping information is stale, new interface mapping information is generated; determining a third hierarchical data structure based on the initial client code; and generating updated client code based on the method identifier information, the reference location information, the interface mapping information, and the third hierarchical data structure. 10. The method of claim 9 , further comprising: receiving configuration information including at least one of a location of source code including the initial service code and initial client code, a location of target code, a file filter, or a type of migration run. 11. The method of claim 9 , wherein the interface mapping information is a first interface mapping information, and further comprising: determining a second interface mapping information; comparing the first interface mapping information to the second interface mapping information; and validating the first interface mapping information based on the comparing. 12. The method of claim 11 , further comprising: determining method identifier information based on the first hierarchical data structure; determining the third hierarchical data structure based on initial client code that invokes the original service method; and generating updated client code based on at least one of the method identifier information, the reference location table, the interface mapping information, or the third hierarchical data structure. 13. The method of claim 12 , wherein the third hierarchical data structure is an initial abstract syntax tree, and generating the updated client code comprises: determining an updated abstract syntax tree by replacing an initial syntactical element corresponding to the original service method with an updated syntactical element corresponding to the new service method; and generating the updated client code based on the updated abstract syntax tree. 14. The method of claim 12 , further comprising: determining an environment type associated with the original service method within the initial client code; and generating environment adapted client code based on the updated client code and the environment type. 15. The method of claim 9 , wherein the second hierarchical data structure includes an abstract syntax tree, and determining the reference location information (RLT) comprises: determining the invocation location based on traversing the abstract syntax tree for invocation of the original service method; and determining an RLT entry including the invocation location and an identifier of the original service method. 16. The method of claim 9 , wherein the first hierarchical data structure includes an ini

Assignees

Inventors

Classifications

  • Structural analysis for program understanding · CPC title

  • Trees, e.g. B+trees · CPC title

  • Code refactoring · CPC title

  • Software reuse · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · 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 US10846083B2 cover?
Disclosed herein are system, method, and device embodiments for semantic-aware and self-corrective automatic re-architecting. An embodiment operates by determining abstract syntax trees based on source code and target code, determining method identifier information based on the abstract syntax tree of the source code, determining reference location information based on the abstract syntax tree …
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F8/76. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 24 2020 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).