Remote application modernization
Abstract
Various embodiments of the present technology generally relate to the characterization and improvement of software applications. More specifically, some embodiments relate to systems and methods for modeling code behavior and generating new versions of the code based on the code behavior models. In some embodiments, a method of improving a codebase includes recording a run of the existing code, characterizing the code behavior via one or more models, prototyping new code according to a target language and target environment, deploying the new code to the target environment, and comparing the behavior of the new code to the behavior of the existing code. In some implementations, generating new code based on the behavior models includes using one or more machine learning techniques for code generation based on the target language and environment.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system, comprising:
a remote recording component executing on an application server, the remote recording component comprising recording instructions that, when executed by one or more application server processors, cause the one or more application server processors to:
generate one or more data files based on information captured about an application comprising existing code during a run of the application; and
transmit the one or more data files to an analysis component on an analysis server; and
the analysis component executing on an analysis server, the analysis component comprising analysis instructions that, when executed by one or more analysis server processors, cause the one or more analysis server processors to:
generate a behavior model representing a behavior of the existing code, wherein generating the behavior model comprises:
interrogating the one or more data files to:
identify and label one or more functional areas of the existing code; and
identify one or more steps performed by the application and one or more code paths connecting the one or more steps, wherein the behavior model comprises operational code path data including information about the application correlated with the one or more steps and the one or more code paths; and
generate new code in a target code language different than a language of the existing code based on the behavior model, wherein a behavior of the new code matches the behavior of the existing code of the application.
2 . The system of claim 1 , further comprising:
a user interface component executing on a remote computing system, the user interface component comprising interface instructions that, when executed by one or more computing system processors, cause the one or more computing system processors to:
receive user input indicating a request to record the run of the application; and
in response to the user input, send the request to the remote recording component.
3 . The system of claim 2 , wherein the user interface component comprises a browser extension.
4 . The system of claim 1 , wherein the analysis component comprises further analysis instructions that, when executed by the one or more analysis server processors, cause the one or more analysis server processors to:
generate a graphical depiction of the behavior model; and transmit the graphical depiction of the behavior model to a user interface component on a remote computing system.
5 . The system of claim 4 , further comprising:
the user interface component executing on a remote computing system, the user interface component comprising interface instructions that, when executed by one or more computing system processors, cause the one or more computing system processors to:
receive user input indicating a request to record the run of the application;
in response to the user input, send the request to the remote recording component; and
display the graphical depiction of the behavior model.
6 . The system of claim 1 , wherein the information captured about the application comprises dependencies, logic, and data queries.
7 . The system of claim 1 , wherein the recording instructions to generate the one or more data files comprises further recording instructions that, when executed by the one or more application server processors, cause the one or more application server processors to:
store information related to the one or more functional areas of the application and the one or more code paths of the application in the one or more data files.
8 . The system of claim 1 , wherein the instructions to generate the one or more data files comprises further instruction that, when executed by the one or more application server processors, cause the one or more application server processors to:
execute test cases designed to explore user interactions with the application.
9 . The system of claim 1 , wherein the analysis component comprises further analysis instructions that, when executed by the one or more analysis server processors, cause the one or more analysis server processors to:
generate a functional visualization of the existing code based on the behavior model, wherein the functional visualization comprises a plurality of elements each representing a functional area of the one or more functional areas, and wherein a size of each element of the plurality of elements is representative of a density of an underlying codebase of the respective functional area.
10 . The system of claim 9 , wherein the information about the application comprises decision points and branches between functional areas of the application.
11 . A computer-implemented method, comprising:
generating, by a remote recording component executing on an application server, one or more data files based on information captured about an application comprising existing code during a run of the application; transmitting, by the remote recording component, the one or more data files to an analysis component executing on an analysis server; generating, by the analysis component, a behavior model representing a behavior of the existing code, wherein the generating the behavior model comprises:
interrogating the one or more data files to:
identify and label one or more functional areas of the existing code; and
identify one or more steps performed by the application and one or more code paths connecting the one or more steps, wherein the behavior model comprises operational code path data including information about the application correlated with the one or more steps and the one or more code paths; and
generating, by the analysis component, new code in a target code language different than a language of the existing code based on the behavior model, wherein a behavior of the new code matches the behavior of the existing code of the application.
12 . The computer-implemented method of claim 11 , further comprising:
receiving, via a user interface component executing on a remote computing system, user input indicating a request to record the run of the application; and in response to the user input, sending, by the user interface component, the request to the remote recording component.
13 . The computer-implemented method of claim 12 , wherein the user interface component comprises a browser extension.
14 . The computer-implemented method of claim 11 , further comprising:
generating, by the analysis component, a visual depiction of the behavior model.
15 . The computer-implemented method of claim 14 , further comprising:
displaying, by a user interface component executing on a remote computing system, the visual depiction of the behavior model.
16 . The computer-implemented method of claim 11 , wherein the information captured about the application comprises dependencies, logic, and data queries.
17 . The computer-implemented method of claim 11 , wherein the generating the one or more data files comprises:
storing information related to the one or more functional areas of the application and the one or more code paths of the application in the one or more data files.
18 . The computer-implemented method of claim 11 , wherein generating the one or more data files comprises executing a run of the application and executing test cases designed to explore user interactions with the application.
19 . The computer-implemented method of claim 11 , further comprising:
generating, by the analysis component, a functional visualization of the existing code based on the behavior model, wherein the functional visualization comprises a plurality of elements each representing a functional area of the one or more functional areas, and wherein a size of each element of the plurality of elements is representative of a density of an underlying codebase of the respective functional area.
20 . The computer-implemented method of claim 19 , wherein the information about the application comprises decision points and branches between functional areas of the application.Join the waitlist — get patent alerts
Track US2023273775A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.