IP Library Granted Patent US 11,726,760
Granted Patent B2
US 11,726,760 · App. 17/534,695 · Granted Aug 15, 2023

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 11,726,760
App. No.
17/534,695
Granted
Aug 15, 2023
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 (67)

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;

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

replacing, by the transformer, the second subset of the plurality of associated code objects of the first functional area with second 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 an entry point of the first functional area, wherein at least one of the first functional area or the second functional area are defined by a respective ratio of intra-area associations to inter-area associations; 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 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 a 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 the 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 portion of memory used by code objects of 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 call back from a code object of the first functional area to a code object of the second functional area.

9. The method of claim 1 , wherein at least one entry point of the first functional area comprises 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.

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

11. 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 of the second functional area associated with the entry point of the first functional area with an identifier of a corresponding 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 the entry point of the first functional area.

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

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

a computing device having a processor configured to execute an analyzer client comprising an analysis agent and a transformer stored in a main memory unit, wherein the analyzer client is 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, and

identify at least one additional code object of a second functional area as associated with an entry point of the first functional area, wherein at least one of the first functional area or the second functional area are defined by a respective ratio of intra-area associations to inter-area associations; and

wherein the transformer is configured to:

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

replace the second subset of the plurality of associated code objects of the first functional area with second 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 entry point of the first functional area.

14. The system of claim 13 , 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.

15. The system of claim 14 , 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.

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

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

18. The system of claim 17 , 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 the code object of the second subset.

19. The system of claim 13 , 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.

20. The system of claim 13 , wherein at least one 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.

21. The system of claim 13 , wherein at least one entry point of the first functional area comprises 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.

22. The system of claim 13 , wherein at least one entry point of the first functional area comprises a class, type, or variable definition.

23. The system of claim 13 , wherein the transformer is further configured to replace an identifier within the at least one additional code object of the second functional area associated with the entry point of the first functional area with an identifier of a corresponding 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 the entry point of the first functional area.

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

25. A non-transitory software installation device storing processor-executable instructions configured to cause a computing device to perform entry point-based code analysis and transformation by executing a method comprising:

selecting, by an analysis agent executed by a processor of the 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;

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

replacing, by the transformer, the second subset of the plurality of associated code objects of the first functional area with second 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 an entry point of the first functional area, wherein at least one of the first functional area or the second functional area are defined by a respective ratio of intra-area associations to inter-area associations; 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 entry point of the first functional area.

26. The software installation device of claim 25 , 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.

27. The software installation device of claim 26 , wherein the method further comprises:

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.

28. The software installation device of claim 26 , wherein the method further comprises:

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

29. The software installation device of claim 25 , 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.

30. The software installation device of claim 29 , wherein the method further comprises, 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 the code object of the second subset.

31. The software installation device of claim 25 , 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.

32. The software installation device of claim 25 , wherein at least one 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.

33. The software installation device of claim 25 , wherein at least one entry point of the first functional area comprises 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.

34. The software installation device of claim 25 , wherein at least one entry point of the first functional area comprises a class, type, or variable definition.

35. The software installation device of claim 25 , 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 of the second functional area associated with the entry point of the first functional area with an identifier of a corresponding 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 the entry point of the first functional area.

36. The software installation device of claim 25 , wherein replacing the first subset of the plurality of associated code objects of the first functional area with first corresponding code objects of the target installation further comprises replacing the 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 Jul 6, 2022
From: GASS, ALBRECHT; HETGES, STEFAN; FARADOURIS, NIKOLAOS; FLACH, OLIVER
To: SMARTSHIFT TECHNOLOGIES, INC.
Reel/Frame 060416/0001 →
Continuity (3)
Continuation 16917262 · Jun 30, 2020
Continuation 15889980 · Feb 6, 2018
Related Publication 20220326928A1 · Oct 13, 2022
Cited By (6)
US 12,353,852 US 12,379,908 US 12,498,915 US 12,524,217 US 12,650,820 US 12,717,766