# US 12,112,150 B2 · Reusable code management for improved deployment of application code

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

- Number: US 12,112,150 B2
- Document ID: US12112150B2
- Status: Granted
- Kind: B2
- Application number: 18/487,259
- Filed: 2023-10-16
- Published: 2024-02-08
- Granted: 2024-10-08
- Earliest claimed: 2021-08-11
- Assignees: Bank of America Corporation
- Applicants: Bank of America Corporation
- Inventors: Madhusudhanan Krishnamoorthy; Shadab Bubere; Vaasudevan Sundaram; Samrat Bhasin
- Web page: https://patentgrep.com/patent/US12112150B2

## CPC

- G06F 8/36: Software reuse
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/72: Code refactoring
- G06F 9/451: Execution arrangements for user interfaces
- G06F 16/3344: {using natural language analysis}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A code repository stores application code. A code management determines, based at least in part on requested features selected in a graphical user interface, code requirements that include attributes of application code needed to achieve the requested features. The code management system determines, based at least in part on the determined code requirements and the metadata for each entry of application code stored in the code repository, one or more candidate application code entries from the code repository. The code management system presents the candidate application code entries for user selection in the graphical user interface. After receipt of a user selection of a selected application code, the selected application code is provided to a computing device associated with the user.

## Claims

### Claim 1

A system comprising:
a code repository configured to store application code, each entry of application code comprising instructions in a programming language for performing a computing task, wherein, for each entry of application code, the code repository further comprises:
metadata indicating a purpose associated with the computing task performed by the application code, and
a value corresponding to an amount of resources needed to use an entry of application code for performing the computing task, wherein the value is scaled according to the frequency of usage of deployed code, user characteristics associated with the deployed code and tasks performed using the deployed code; and
a code management system comprising:
a memory operable to store instructions for presenting a graphical user interface to a user; and
a processor communicatively coupled to the memory and configured to:
present the graphical user interface comprising fields for a selection of requested features of application code requested by the user;
determine, based at least in part on the requested features selected in the graphical user interface, code requirements comprising attributes of application code needed to achieve the requested features;
determine, based at least in part on the determined code requirements and the metadata for each entry of application code stored in the code repository, one or more candidate application code entries that correspond to the requested features, wherein the one or more candidate application code entries are determined from the code repository;
determine, for each candidate application code entry, the scaled values that correspond to an amount of resources needed to use the corresponding candidate application code entry for performing the computing task;
determine available resources that are associated with the system to perform the computing task;
present the candidate application code entries for user selection in the graphical user interface;
present the scaled values that correspond to the determined amount of resources for each candidate application code entry for the user selection of a candidate application code entry;
provide the selected candidate application code entry as a selected application code to a computing device associated with the user to make changes to the selected application code;
determine whether the changes to the selected application code improve the computing task; and
in response to determining that the changes to the selected application code improve the computing task:
adjust the scaled values corresponding to resources required to use the selected application code;
store the changes to the selected application code and scaled values as an optimized application code in the code repository; and
present the optimized application code and scaled values to users associated with computing devices.

### Claim 2 (depends on 1)

The system of claim 1, wherein the requested features comprise an indication of an application programming language of the application code requested by the user, a type of the application code requested by the user, and the computing task to be performed by the application code requested by the user.

### Claim 3 (depends on 2)

The system of claim 2, wherein the code requirements comprise a requirement that the one or more candidate application code entries use the programming language indicated by the requested features, are a same type as the type indicated by the requested features, and perform at least a same computing task as computing tasks indicated by the requested features.

### Claim 4 (depends on 1)

The system of claim 1, wherein:
the graphical user interface further comprises a field for entry of a natural language request; and
the processor is further configured to determine, using a natural language processing algorithm, the code requirements based at least in part on the natural language request combined with the requested features selected in the graphical user interface.

### Claim 5 (depends on 1)

The system of claim 1, wherein:
the code repository comprises the value as a predefined value corresponding to each entry of the application code; and
the processor is further configured to present, in the graphical user interface, the predefined value corresponding to each of the candidate application code entries presented for user selection.

### Claim 6 (depends on 1)

The system of claim 1, wherein the processor is further configured to, after receipt of the user selection of the selected application code, automatically cause the application code to be stored in memory of the computing device associated with the user.

### Claim 7 (depends on 1)

The system of claim 1, further comprising an application tracking system configured to detect modifications to the selected application code after it is provided to the computing device associated with the user.

### Claim 8

A method comprising:
accessing application code stored in a code repository, wherein the code repository is configured to store application code, each entry of application code comprising instructions in a programming language for performing a computing task, wherein, for each entry of application code, the code repository further comprises:
metadata indicating a purpose associated with the computing task performed by the application code, and
a value corresponding to an amount of resources needed to use an entry of application code for performing the computing task, wherein the value is scaled according to the frequency of usage of deployed code, user characteristics associated with the deployed code and tasks performed using the deployed code;
presenting a graphical user interface comprising fields for a selection of requested features of application code requested by a user;
determining, based at least in part on the requested features selected in the graphical user interface, code requirements comprising attributes of application code needed to achieve the requested features;
determining, based at least in part on the determined code requirements and metadata for each entry of application code stored in the code repository, one or more candidate application code entries that correspond to the requested features, wherein the one or more candidate application code entries are determined from the code repository;
determining, for each candidate application code entry, the scaled values that correspond to an amount of resources needed to use the corresponding candidate application code entry for performing the computing task;
determining available resources to perform the computing task;
presenting the candidate application code entries for user selection in the graphical user interface;
presenting the scaled values that correspond to the determined amount of resources for each candidate application code entry for the user selection of a candidate application code entry;
providing the selected candidate application code entry as a selected application code to a computing device associated with the user to make changes to the selected application code;
determining whether the changes to the selected application code improve the computing task; and
in response to determining that the changes to the selected application code improve the computing task:
adjusting the scaled values corresponding to resources required to use the selected application code;
storing the changes to the selected application code and scaled values as an optimized application code in the code repository; and
presenting the optimized application code and scaled values to users associated with computing devices.

### Claim 9 (depends on 8)

The method of claim 8, wherein the requested features comprise an indication of an application programming language of the application code requested by the user, a type of the application code requested by the user, and the computing task to be performed by the application code requested by the user.

### Claim 10 (depends on 9)

The method of claim 9, wherein the code requirements comprise a requirement that the one or more candidate application code entries use the programming language indicated by the requested features, are a same type as the type indicated by the requested features, and perform at least a same computing task as computing tasks indicated by the requested features.

### Claim 11 (depends on 8)

The method of claim 8, wherein:
the graphical user interface further comprises a field for entry of a natural language request; and
the method further comprises determining, using a natural language processing algorithm, the code requirements based at least in part on the natural language request combined with the requested features selected in the graphical user interface.

### Claim 12 (depends on 8)

The method of claim 8, wherein:
the code repository comprises the value as a predefined value corresponding to each entry of the application code; and
the method further comprises presenting, in the graphical user interface, the predefined value corresponding to each of the candidate application code entries presented for user selection.

### Claim 13 (depends on 8)

The method of claim 8, further comprising detecting modifications to the selected application code after it is provided to the computing device associated with the user.

### Claim 14

A system comprising:
a memory operable to store instructions for presenting a graphical user interface to a user; and
a processor communicatively coupled to the memory and configured to:
access application code stored in a code repository, wherein the code repository is configured to store application code, each entry of application code comprising instructions in a programming language for performing a computing task, wherein, for each entry of application code, the code repository further comprises:
metadata indicating a purpose associated with the computing task performed by the application code, and
a value corresponding to an amount of resources needed to use an entry of application code for performing the computing task, wherein the value is scaled according to the frequency of usage of deployed code, user characteristics associated with the deployed code and tasks performed using the deployed code;
present the graphical user interface comprising fields for a selection of requested features of application code requested by the user;
determine, based at least in part on the requested features selected in the graphical user interface, code requirements comprising attributes of application code needed to achieve the requested features;
determine, based at least in part on the determined code requirements and metadata for each entry of application code stored in the code repository, one or more candidate application code entries that correspond to the requested features, wherein the one or more candidate application code entries are determined from the code repository;
determine, for each candidate application code entry, the scaled values that correspond to an amount of resources needed to use the corresponding candidate application code entry for performing the computing task;
determine available resources that are associated with the system to perform the computing task;
present the scaled values that correspond to the candidate application code entries for user selection in the graphical user interface;
present the determined amount of resources for each candidate application code entry for the user selection of a candidate application code entry;
provide the selected candidate application code entry as a selected application code to a computing device associated with the user to make changes to the selected application code;
determine whether the changes to the selected application code improve the computing task; and
in response to determining that the changes to the selected application code improve the computing task:
adjust the scaled values corresponding to resources required to use the selected application code;
store the changes to the selected application code and scaled values as an optimized application code in the code repository; and
present the optimized application code and scaled values to users associated with computing devices.

### Claim 15 (depends on 14)

The system of claim 14, wherein the requested features comprise an indication of an application programming language of the application code requested by the user, a type of the application code requested by the user, and the computing task to be performed by the application code requested by the user.

### Claim 16 (depends on 15)

The system of claim 15, wherein the code requirements comprise a requirement that the one or more candidate application code entries use the programming language indicated by the requested features, are a same type as the type indicated by the requested features, and perform at least a same computing task as computing tasks indicated by the requested features.

### Claim 17 (depends on 14)

The system of claim 14, wherein:
the graphical user interface further comprises a field for entry of a natural language request; and
the processor is further configured to determine, using a natural language processing algorithm, the code requirements based at least in part on the natural language request combined with the requested features selected in the graphical user interface.

### Claim 18 (depends on 14)

The system of claim 14, wherein:
the code repository comprises the value as a predefined value corresponding to each entry of the application code; and
the processor is further configured to present, in the graphical user interface, the predefined value corresponding to each of the candidate application code entries presented for user selection.

### Claim 19 (depends on 14)

The system of claim 14, wherein the processor is further configured to, after receipt of the user selection of the selected application code, automatically cause the application code to be stored in memory of the computing device associated with the user.

### Claim 20 (depends on 14)

The system of claim 14, further comprising an application tracking system configured to detect modifications to the selected application code after it is provided to the computing device associated with the user.
