# US 12,223,315 B2 · Utilizing multiple analyses to migrate an application to a cloud computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,315 B2
- Document ID: US12223315B2
- Status: Granted
- Kind: B2
- Application number: 18/126,218
- Filed: 2023-03-24
- Published: 2024-09-26
- Granted: 2025-02-11
- Earliest claimed: 2023-03-24
- Assignees: Accenture Global Solutions Limited
- Applicants: Accenture Global Solutions Limited
- Inventors: Sanjay Tiwari; Nishant Shyam Patriker; Sanmati Jain; Dan Malagari; Trupti Meghshyam Shirodkar; Mayur Kolhe; Amol Nandkishor Joshi
- Web page: https://patentgrep.com/patent/US12223315B2

## CPC

- G06F 8/72: Code refactoring
- G06F 8/73: Program documentation
- G06F 8/76: Adapting program code to run in a different environment; Porting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A device may receive source code and a database to be migrated to a cloud computing environment, and may perform a first stage analysis of the source code to generate a first report. The device may cause a second stage analysis of the source code to be performed based on the first report and to generate refactored and rewritten code, and may perform a third stage analysis of the database to generate a second report. The device may cause a fourth stage analysis of the database to be performed and to generate a refactored and rewritten database, and may perform the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate a final report. The device may generate a migration strategy based on the final report and may perform actions based on the migration strategy.

## Claims

### Claim 1

A method for generating a migration strategy for source code and a database to be migrated to a cloud computing environment, comprising:
receiving, by a device, the source code and the database to be migrated to the cloud computing environment;
performing, by the device, a first stage analysis of the source code to generate a first report;
causing, by the device, a second stage analysis of the source code to be performed based on the first report and to generate refactored and rewritten code;
performing, by the device, a third stage analysis of the database to generate a second report;
causing, by the device, a fourth stage analysis of the database to be performed based on the second report and to generate a refactored and rewritten database;
validating, by the device, the refactored and rewritten code and the refactored and rewritten database;
performing, by the device, the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate a final report;
generating, by the device, a migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the final report; and
performing, by the device, one or more actions based on the migration strategy.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
performing a validation of the source code and a validation of access to the database prior to performing analyses on the source code and the database.

### Claim 3 (depends on 1)

The method of claim 1, wherein performing the first stage analysis of the source code to generate the first report comprises:
identifying components of the source code;
calculating a technical quality of the components of the source code;
filtering the components of the source code to identify one or more of classes, interfaces, or dependencies associated with the components of the source code;
performing a refactoring analysis of the components of the source code to generate refactoring results; and
generating the first report identifying the technical quality of the components of the source code, the one or more of the classes, the interfaces, or the dependencies associated with the components of the source code, and the refactoring results.

### Claim 4 (depends on 1)

The method of claim 1, wherein causing the second stage analysis of the source code to be performed based on the first report and to generate the refactored and rewritten code comprises:
causing the source code to be refactored based on the first report and to generate refactored code; and
causing the refactored code to be rewritten based on the first report and to generate the refactored and rewritten code.

### Claim 5 (depends on 1)

The method of claim 1, wherein performing the third stage analysis of the database to generate the second report comprises:
identifying components of the database;
performing a refactoring analysis of the components of the database to generate refactoring results; and
generating the second report identifying the components of the database and the refactoring results.

### Claim 6 (depends on 1)

The method of claim 1, wherein causing the fourth stage analysis of the database to be performed based on the second report and to generate the refactored and rewritten database comprises:
causing the database to be refactored based on the second report and to generate a refactored database; and
causing the refactored database to be rewritten based on the second report and to generate the refactored and rewritten database.

### Claim 7 (depends on 1)

The method of claim 1, wherein performing the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate the final report comprises:
identifying components of the refactored and rewritten code;
calculating a technical quality of the components of the refactored and rewritten code;
filtering the components of the refactored and rewritten code to identify one or more of classes, interfaces, or dependencies associated with the components of the refactored and rewritten code;
performing a refactoring analysis of the components of the refactored and rewritten code to generate refactoring results;
generating a first portion of the final report identifying the technical quality of the components of the refactored and rewritten code, the one or more of the classes, the interfaces, or the dependencies associated with the components of the refactored and rewritten code, and the refactoring results;
identifying components of the refactored and rewritten database;
performing a refactoring analysis of the components of the refactored and rewritten database to generate additional refactoring results;
generating a second portion of the final report identifying the components of the refactored and rewritten database and the additional refactoring results; and
generating the final report based on the first portion of the final report and the second portion of the final report.

### Claim 8

A device, comprising:
one or more memories; and
one or more processors, coupled to the one or more memories, configured to:
receive source code and a database to be migrated to a cloud computing environment;
perform a validation of the source code and a validation of access to the database;
perform a first stage analysis of the source code to generate a first report;
cause a second stage analysis of the source code to be performed based on the first report and to generate refactored and rewritten code;
perform a third stage analysis of the database to generate a second report;
cause a fourth stage analysis of the database to be performed based on the second report and to generate a refactored and rewritten database;
validate the refactored and rewritten code and the refactored and rewritten database;
perform the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate a final report;
generate a migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the final report; and
perform one or more actions based on the migration strategy.

### Claim 9 (depends on 8)

The device of claim 8, wherein the one or more processors, to generate the migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the final report, are configured to:
generate a proposed migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the final report;
receive input associated with the proposed migration strategy; and
generate the migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the proposed migration strategy and the input.

### Claim 10 (depends on 8)

The device of claim 8, wherein the one or more processors, to perform the one or more actions, are configured to one or more:
provide the migration strategy for display; or
migrate the refactored and rewritten code and the refactored and rewritten database to the cloud computing environment based on the migration strategy.

### Claim 11 (depends on 8)

The device of claim 8, wherein the one or more processors, to perform the one or more actions, are configured to:
determine completion times associated with migrating the refactored and rewritten code and the refactored and rewritten database to the cloud computing environment;
generate a summary of the completion times; and
provide the summary for display.

### Claim 12 (depends on 8)

The device of claim 8, wherein the one or more processors, to perform the one or more actions, are configured to:
determine successes associated with migrating the refactored and rewritten code and the refactored and rewritten database;
generate a summary of the successes; and
provide the summary for display.

### Claim 13 (depends on 8)

The device of claim 8, wherein the one or more processors, to perform the one or more actions, are configured to:
receive a change to the migration strategy;
modify the migration strategy based on the change and to generate a modified migration strategy; and
migrate the refactored and rewritten code and the refactored and rewritten database to the cloud computing environment based on the modified migration strategy.

### Claim 14 (depends on 8)

The device of claim 8, wherein the one or more processors, to perform the one or more actions, are configured to:
generate a summary of migrating the refactored and rewritten code and the refactored and rewritten database to the cloud computing environment based on the migration strategy; and
provide the summary for display.

### Claim 15

A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:
one or more instructions that, when executed by one or more processors of a device, cause the device to:
receive source code and a database to be migrated to a cloud computing environment;
perform a first stage analysis of the source code to generate a first report;
cause a second stage analysis of the source code to be performed based on the first report and to generate refactored and rewritten code;
perform a third stage analysis of the database to generate a second report;
cause a fourth stage analysis of the database to be performed based on the second report and to generate a refactored and rewritten database;
validate the refactored and rewritten code and the refactored and rewritten database;
perform the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate a final report;
generate a migration strategy for the refactored and rewritten code and the refactored and rewritten database based on the final report; and
migrate the refactored and rewritten code and the refactored and rewritten database to the cloud computing environment based on the migration strategy.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to perform the first stage analysis of the source code to generate the first report, cause the device to:
identify components of the source code;
calculate a technical quality of the components of the source code;
filter the components of the source code to identify one or more of classes, interfaces, or dependencies associated with the components of the source code;
perform a refactoring analysis of the components of the source code to generate refactoring results; and
generate the first report identifying the technical quality of the components of the source code, the one or more of the classes, the interfaces, or the dependencies associated with the components of the source code, and the refactoring results.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to cause the second stage analysis of the source code to be performed based on the first report and to generate the refactored and rewritten code, cause the device to:
cause the source code to be refactored based on the first report and to generate refactored code; and
cause the refactored code to be rewritten based on the first report and to generate the refactored and rewritten code.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to perform the third stage analysis of the database to generate the second report, cause the device to:
identify components of the database;
perform a refactoring analysis of the components of the database to generate refactoring results; and
generate the second report identifying the components of the database and the refactoring results.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to cause the fourth stage analysis of the database to be performed based on the second report and to generate the refactored and rewritten database, cause the device to:
cause the database to be refactored based on the second report and to generate a refactored database; and
cause the refactored database to be rewritten based on the second report and to generate the refactored and rewritten database.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the device to perform the first stage analysis of the refactored and rewritten code and the third stage analysis of the refactored and rewritten database to generate the final report, cause the device to:
identify components of the refactored and rewritten code;
calculate a technical quality of the components of the refactored and rewritten code;
filter the components of the refactored and rewritten code to identify one or more of classes, interfaces, or dependencies associated with the components of the refactored and rewritten code;
perform a refactoring analysis of the components of the refactored and rewritten code to generate refactoring results;
generate a first portion of the final report identifying the technical quality of the components of the refactored and rewritten code, the one or more of the classes, the interfaces, or the dependencies associated with the components of the refactored and rewritten code, and the refactoring results;
identify components of the refactored and rewritten database;
perform a refactoring analysis of the components of the refactored and rewritten database to generate additional refactoring results;
generate a second portion of the final report identifying the components of the refactored and rewritten database and the additional refactoring results; and
generate the final report based on the first portion of the final report and the second portion of the final report.
