Systems and methods for legacy source code optimization and modernization

US11599356B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11599356-B1
Application numberUS-202117353501-A
CountryUS
Kind codeB1
Filing dateJun 21, 2021
Priority dateFeb 3, 2020
Publication dateMar 7, 2023
Grant dateMar 7, 2023

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 embodiments of systems, methods, and products for modernizing and optimizing legacy software. A computing device may perform an automated runtime performance profiling process. The performance profiler may automatically profile the legacy software at runtime, monitor the memory usage and module activities of the legacy software, and pinpoint/identify a subset of inefficient functions in the legacy software that scale poorly or otherwise inefficient. The computing device may further perform a source code analysis and refactoring process. The computing device may parse the source code of the subset of inefficient functions and identify code violations within the source code. The computing device may provide one or more refactoring options to optimize the source code. Each refactoring option may comprise a change to the source code configured to correct the code violations. The computing device may refactor the source code based on a selected refactoring option.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: launching, by a computer, a process of a software program, thereby executing a plurality of machine-readable functions of the software program to generate a performance profile of the software; identifying, by the computer, a subset of functions for refactoring in the plurality of functions, the subset of functions corresponding to one or more performance attributes based upon the performance profile of the software; identifying, by the computer, one or more refactoring options for source code of at least one function of the subset of functions by applying a machine-learning model on the source code of each function in the subset of functions, the machine-learning model trained according to the one or more performance attributes to identify each function in the subset of functions; updating, by the computer, a graphical user interface to display the one or more refactoring options for the subset of functions, including: identifying, by the machine-learning model, one or more code violations in the source code of the at least one function of the subset of functions according to a set of code violation patterns corresponding to the one or more performance attributes, and the one or more refactoring options comprising at least one change to the source code of the at least one function of the subset of function to correct the one or more code violation in the source code of the at least one function in the subset of functions; refactoring, by the computer, the source code of the at least one function of the subset of functions based upon a selected refactoring option received via the graphical user interface. 2. The method according to claim 1 , further comprising receiving, by the computer, a user configuration via the graphical user interface, the user configuration indicating the one or more performance attributes for identifying each function of the subset of functions. 3. The method according to claim 1 , further comprising parsing, by the computer, the source code of each function of the subset of functions to identify the one or more refactoring options. 4. The method according to claim 3 , wherein parsing the source code of each function of the subset of functions includes: generating, by the computer, an abstract syntax tree representing the source code of each function of the subset of functions; and identifying, by the computer, one or more code violations in the source code of each function of the subset of functions by applying the machine-learning model to the abstract syntax tree. 5. The method according to claim 1 , wherein the machine-learning model is trained using the one or more performance attributes to identify each function of the subset of functions according to a set of rules for code violation patterns corresponding to the one or more performance attributes. 6. The method according to claim 4 , wherein the computer trains the machine-learning model according to one or more machine-learning algorithms including at least one of: decision tree learning, association rule learning, learning via artificial neural networks, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, genetic algorithms, and rule-based machine learning. 7. The method according to claim 1 , wherein generating the performance profile of the software includes: monitoring, by the computer, status data for the software program, the status data including memory usage and process activities of the program corresponding to the one or more performance attributes. 8. The method according to claim 7 , wherein identifying each function of the subset of functions includes: identifying, by the computer, one or more values in the status data corresponding to the one or more performance attributes of the function lower than one or more corresponding value thresholds. 9. The method according to claim 1 , wherein updating the graphical user interface to display the one or more refactoring options for the function further includes: generating, by the computer, an indicator associated with the code violation in the source code for display via the graphical user interface. 10. The method according to claim 1 , further comprising identifying, by the computer, one or more code violations in the source code of the function of the subset of functions, wherein a refactoring option for the source code of the function includes a change to the source code configured to remediate the one or more code violations in the source code. 11. A system comprising: a non-transitory machine-readable media configured to store a plurality of software programs; and a computer comprising a processor coupled to the non-transitory machine-readable media and configured to: launch a process of a software program of the plurality of software programs, thereby executing a plurality of machine-readable functions of the software program to generate a performance profile of the software; identify a subset of functions for refactoring in the plurality of functions, the subset of functions corresponding to one or more performance attributes based upon the performance profile of the software; identify one or more refactoring options for source code of at least one function of the subset of functions by applying a machine-learning model on the source code of each function in the subset of functions, the machine-learning model trained according to the one or more performance attributes to identify each function in the subset of functions; update a graphical user interface to display the one or more refactoring options for the subset of functions, including: identifying, by the machine-learning model, one or more code violations in the source code of the at least one function of the subset of functions according to a set of code violation patterns corresponding to the one or more performance attributes, and the one or more refactoring options comprising at least one change to the source code of the at least one function of the subset of function to correct the one or more code violation in the source code of the at least one function in the subset of functions; refactor the source code of the at least one function of the subset of functions based upon a selected refactoring option received via the graphical user interface. 12. The system according to claim 11 , wherein the computer is further configured to: receive a user configuration via the graphical user interface, the user configuration indicating the one or more performance attributes for identifying each function of the subset of functions. 13. The system according to claim 11 , wherein the computer is further configured to: parse the source code of each function of the subset of functions to identify the one or more refactoring options. 14. The system according to claim 13 , wherein when parsing the source code of each function of the subset of functions the computer is configured to: generate an abstract syntax tree representing the source code of each function of the subset of functions; and identify one or more code violations in the source code of each function of the subset of functions by applying the machine-learning model to the abstract syntax tree. 15. The system according to claim 11 , wherein the computer is configured to train the machine-learning model using the one or more performance attributes to identify each function of the subset of functions according to a set of rules for code v

Assignees

Inventors

Classifications

  • via adapters, e.g. between incompatible applications · CPC title

  • where the computing system component is a software system · CPC title

  • Graphical or visual programming · CPC title

  • Machine learning · CPC title

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · 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 US11599356B1 cover?
Disclosed herein are embodiments of systems, methods, and products for modernizing and optimizing legacy software. A computing device may perform an automated runtime performance profiling process. The performance profiler may automatically profile the legacy software at runtime, monitor the memory usage and module activities of the legacy software, and pinpoint/identify a subset of inefficient…
Who is the assignee on this patent?
Architecture Tech Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/72. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 07 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).