Systems and methods for modernizing legacy applications
Methods and supporting systems are disclosed herein that when applied to enterprise applications built on various enterprise application development platforms are translated from the high-level platform-specific language into applications programmed using low-code objects that are deployable as edge-ready, cloud-based applications.
1. A computer-implemented method comprising:
receiving source code for a platform-dependent application comprising a plurality of application components developed using a platform-dependent programming construct;
selecting one or more application components for conversion from the platform-dependent programming construct to a platform agnostic programming construct;
parsing the platform-dependent source code into functional components for each selected application component;
deriving pseudocode and metadata for each functional component parsed from the platform-dependent source code;
deriving platform-agnostic programming instructions for each selected application component based at least in part on the derived pseudocode and metadata;
generating processing logic correlating to a data flow and process flow for the platform-dependent application and attributing the generated programming instructions to steps in the data flow and process flow;
generating user interface objects corresponding to user actions that, when instantiated, execute one or more of the platform-agnostic programming instructions;
generating database objects which, when executed, process data queries from the platform-agnostic programming instructions in conjunction with a database; and
combining the platform-agnostic programming instructions, user interface objects, database objects, and processing logic into a plurality of platform-agnostic applications, each of the plurality of platform-agnostic applications being deployable on a specific form factor.
2. A system for generating device-specific artificial neural network (ANN) models for distribution across user devices, the system comprising:
one or more processors; and
a memory coupled with the one or more processors on which a plurality of modules stored in the memory, that when executed:
receive source code for a platform-dependent application comprising a plurality of application components developed using a platform-dependent programming construct;
select one or more application components for conversion from the platform-dependent programming construct to a platform-agnostic programming construct;
parse the platform-dependent source code into functional components for each selected application component;
derive pseudocode and metadata for each functional component parsed from the platform-dependent source code;
derive platform-agnostic programming instructions for each selected application component based at least in part on the derived pseudocode and metadata;
generate processing logic correlating to a data flow and process flow for the platform-dependent application and attributing the generated programming instructions to steps in the data flow and process flow;
generate user interface objects corresponding to user actions that, when instantiated, execute one or more of the platform-agnostic programming instructions;
generate database objects which, when executed, process data queries from the platform-agnostic programming instructions in conjunction with a database; and
combine the platform-agnostic programming instructions, user interface objects, database objects, and processing logic into a plurality of platform-agnostic applications, each of the plurality of platform-agnostic applications being deployable on a specific form factor.
3. The computer-implemented method of claim 1 , wherein the conversion includes converting the one or more application components to a common language format.
4. The computer-implemented method of claim 1 , wherein the platform-agnostic programming instructions are programming instructions that are platform-independent.
5. The computer-implemented method of claim 1 , wherein the platform-dependent programming construct is a platform-specific legacy programming construct.
6. The computer-implemented method of claim 1 , wherein the derivation of the pseudocode and metadata includes reading source code of the one or more selected application components.
7. The computer-implemented method of claim 6 , further comprising reading the pseudocode and metadata into the platform-agnostic programming construct automatically if the access to the platform-dependent programming construct is granted.
8. The computer-implemented method of claim 6 , further comprising reading the pseudocode and metadata into the platform-agnostic programing construct manually if the access to the platform-dependent programming construct is not granted.
9. The computer-implemented method of claim 6 , further comprising interpreting application logic of the source code, the application logic expressed as the pseudocode and metadata.
10. The computer-implemented method of claim 9 , wherein the expression of the application logic as the pseudocode and metadata is common language for modernization (CLM), the CLM being a common metadata of the application logic written in the pseudocode.
11. The computer-implemented method of claim 10 , wherein the CLM documents the application logic without relying on language-specific syntax.
12. The computer-implemented method of claim 10 , wherein the CLM removes language-specific syntax.
13. The computer-implemented method of claim 1 , wherein the processing logic includes application logic and business logic.
14. The system of claim 2 , wherein the conversion includes converting the one or more application components to a common language format.
15. The system of claim 2 , wherein the platform-agnostic programming instructions are programming instructions that are platform-independent.
16. The system of claim 2 , wherein the platform-dependent programming construct is a platform-specific legacy programming construct.
17. The system of claim 2 , wherein the derivation of the pseudocode and metadata includes reading source code of the one or more selected application components.
18. The system of claim 17 , wherein application logic of the source code is expressed as the pseudocode and metadata.
19. The system of claim 18 , wherein the expression of the application logic as the pseudocode and metadata is common language for modernization (CLM), the CLM being a common metadata of the application logic written in the pseudocode.
20. The system of claim 2 , wherein the processing logic includes application logic and business logic.
21. The computer-implemented method of claim 1 , wherein one or more of the plurality of platform-agnostic applications continue to execute in conjunction with application components that are not selected for conversion.