IP Library Granted Patent US 10,698,674
Granted Patent B2
US 10,698,674 · App. 15/889,980 · Granted Jun 30, 2020

Systems and methods for entry point-based code analysis and transformation

Inventors: Albrecht Gass (Fullerton, CA); Stefan Hetges (Mannheim, DE); Nikolaos Faradouris (Mannheim, DE); Oliver Flach (Leinfelden-Echterdingen, DE)
Assignee: smartShift Technologies, Inc.
G06F8/64G06F8/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,698,674
App. No.
15/889,980
Granted
Jun 30, 2020
Kind
B2
Abstract

The present application is directed towards systems and methods for identifying and grouping code objects into functional areas with boundaries crossed by entry points. An analysis agent may select a first functional area of a source installation of an application to be transformed to a target installation of the application from a plurality of functional areas of the source installation, each functional area comprising a plurality of associated code objects; and identify a first subset of the plurality of associated code objects of the first functional area having associations only to other code objects of the first functional area, and a second subset of the plurality of associated code objects of the first functional area having associations to code objects in additional functional areas, the second subset comprising entry points of the first functional area.

Claims (41)

1. A method for entry point-based code analysis and transformation, comprising:

selecting, by an analysis agent executed by a processor of a computing device, a first functional area of a source installation of an application to be transformed to a target installation of the application from a plurality of functional areas of the source installation, each functional area comprising a plurality of associated code objects;

identifying, by the analysis agent, a first subset of the plurality of associated code objects of the first functional area having associations only to other code objects of the first functional area, and a second subset of the plurality of associated code objects of the first functional area having associations to code objects in additional functional areas, the second subset comprising entry points of the first functional area, wherein a first entry point of the first functional area comprises a call back from a code object of the first functional area to a code object of the second functional area, or a database table having associations to at least one code object of the first functional area and at least one code object of the second functional area;

replacing, by a transformer executed by the processor of the computing device, the identified first subset of the plurality of associated code objects of the first functional area with corresponding code objects of the target installation;

replacing, by the transformer, the identified second subset of the plurality of associated code objects of the first functional area with corresponding code objects of the target installation;

identifying, by the analysis agent, at least one additional code object of a second functional area as associated with the first entry point of the first functional area; and

modifying the at least one additional code object of the second functional area, responsive to the identification of the at least one additional code object of the second functional area as associated with the first entry point of the first functional area.

2. The method of claim 1 , wherein identifying the first subset and the second subset of the plurality of associated code objects of the first functional area further comprises, for each code object of the first functional area:

identifying, within the code object, one or more references to a corresponding one or more additional code objects, and

determining whether any of the one or more additional code objects are part of the second functional area.

3. The method of claim 2 , further comprising:

assigning the code object to the first subset responsive to a determination that no additional code object of the one or more additional code objects is part of the second functional area.

4. The method of claim 2 , further comprising:

assigning the code object to the second subset responsive to the determination that at least one additional code object of the one or more additional code objects is part of the second functional area.

5. The method of claim 1 , wherein identifying the second subset of the plurality of associated code objects of the first functional area first comprises adding a predetermined identifier to each code object of the second subset.

6. The method of claim 5 , further comprising, for each code object of the second subset, adding a corresponding predetermined identifier to an additional code object of the second functional area associated with said code object of the second subset.

7. The method of claim 1 , wherein at least one entry point of the first functional area comprises a shared variable between the first functional area and the second functional area.

8. The method of claim 1 , wherein at least one entry point of the first functional area comprises a shared portion of memory used by code objects of the first functional area and the second functional area.

9. The method of claim 1 , wherein at least one entry point of the first functional area comprises a class, type, or variable definition.

10. The method of claim 1 , wherein modifying the at least one additional code object of the second functional area further comprises replacing an identifier within the at least one additional code object matching the first entry point of the first functional area with an identifier of the corresponding replaced code object of the target installation, responsive to the identification of the at least one additional code object of the second functional area as associated with said first entry point of the first functional area.

11. The method of claim 1 , wherein replacing the identified first subset of the plurality of associated code objects of the first functional area with corresponding code objects of the target installation further comprises replacing the identified first subset of the plurality of associated code objects with standard functionality of the target installation.

12. A system for entry point-based code analysis and transformation, comprising:

a processor circuit, configured to execute an analysis agent and a transformer stored in a memory device, in communication with a source installation of an application to be transformed to a target installation of the application;

wherein the analysis agent is configured to:

select a first functional area of the source installation from a plurality of functional areas of the source installation, each functional area comprising a plurality of associated code objects,

identify a first subset of the plurality of associated code objects of the first functional area having associations only to other code objects of the first functional area, and a second subset of the plurality of associated code objects of the first functional area having associations to code objects in additional functional areas, the second subset comprising entry points of the first functional area, wherein a first entry point of the first functional area comprises a call back from a code object of the first functional area to a code object of the second functional area, or a database table having associations to at least one code object of the first functional area and at least one code object of the second functional area, and

identify at least one additional code object of a second functional area as associated with the first entry point of the first functional area;

wherein the transformer is configured to:

replace the identified first subset of the plurality of associated code objects of the first functional area with corresponding code objects of the target installation,

replace the identified second subset of the plurality of associated code objects of the first functional area with corresponding code objects of the target installation, and

modify the at least one additional code object of the second functional area, responsive to the identification of the at least one additional code object of the second functional area as associated with the first entry point of the first functional area.

13. The system of claim 12 , wherein the analysis agent is further configured to, for each code object of the first functional area:

identify, within the code object, one or more references to a corresponding one or more additional code objects, and

determine whether any of the one or more additional code objects are part of the second functional area.

14. The system of claim 13 , wherein the analysis agent is further configured to assign the code object to the first subset responsive to a determination that no additional code object of the one or more additional code objects is part of the second functional area.

15. The system of claim 13 , wherein the analysis agent is further configured to assign the code object to the second subset responsive to the determination that at least one additional code object of the one or more additional code objects is part of the second functional area.

16. The system of claim 12 , wherein the analysis agent is further configured to add a predetermined identifier to each code object of the second subset.

17. The system of claim 16 , wherein the analysis agent is further configured to, for each code object of the second subset, add a corresponding predetermined identifier to an additional code object of the second functional area associated with said code object of the second subset.

18. The system of claim 12 , wherein at least one entry point of the first functional area comprises a shared variable between the first functional area and the second functional area, or a shared portion of memory used by code objects of the first functional area and the second functional area.

19. The system of claim 12 , wherein the transformer is further configured to replace an identifier within the at least one additional code object matching the first entry point of the first functional area with an identifier of the corresponding replaced code object of the target installation, responsive to the identification of the at least one additional code object of the second functional area as associated with said first entry point of the first functional area.

20. The system of claim 12 , wherein the transformer is further configured to replace the identified first subset of the plurality of associated code objects with standard functionality of the target installation.

Assignments (2)
SECURITY INTEREST Recorded Sep 1, 2023
From: SMARTSHIFT TECHNOLOGIES, INC.
To: BARINGS FINANCE LLC, AS AGENT
Reel/Frame 064777/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2018
From: GASS, ALBRECHT; HETGES, STEFAN; FARADOURIS, NIKOLAOS; FLACH, OLIVER
To: SMARTSHIFT TECHNOLOGIES, INC.
Reel/Frame 047573/0345 →
Continuity (1)
Related Publication 20190243629A1 · Aug 8, 2019
Cited By (4)
US 12,379,908 US 12,498,915 US 12,524,217 US 12,717,766