Automated Software Upgrade via ML Code Fix Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Enterprise organizations face challenges in efficiently and accurately upgrading dependent software applications while optimizing network resources and minimizing disruptions to computing infrastructure, as manual methods are time-consuming and prone to errors.

Innovation Solution

A computing platform uses a machine learning model to identify and apply code fixes and test cases based on release notes, scanning and parsing source codes to automate the upgrade process, ensuring timely and targeted updates with iterative feedback loops for performance optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual methods are used to identify and apply code fixes for dependent software upgrades, then accuracy can be maintained through human review, but the upgrade process becomes time-consuming and reduces productivity

Engineering Contradiction:
Improveaccuracy of code fix identificationVSAvoidupgrade speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system enables automated self-upgrading of dependent software applications by automatically scanning release notes, identifying required code modifications, retrieving appropriate code fixes from repositories, applying them to source code, and executing test cases. This self-service mechanism eliminates manual intervention while maintaining accuracy through automated parsing and machine learning-based code fix retrieval, thereby resolving the contradiction between accuracy and upgrade speed.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical processes (human reviewers physically examining and applying code fixes) with automated computational systems. The system uses machine learning models to retrieve code fixes and automated parsers to identify modifications, substituting human mechanical review with algorithmic processing that operates faster while maintaining or improving accuracy through systematic analysis of release notes and code patterns.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If comprehensive testing is performed to ensure upgrade reliability, then software stability is improved, but the testing process consumes additional time and network resources

Engineering Contradiction:
Improvesoftware stabilityVSAvoidtesting duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically generating and executing test cases immediately after code fixes are applied, before the upgraded software is deployed to production environments. This preliminary testing ensures that code modifications do not break existing functionality, thereby improving reliability while containing the time investment to a controlled pre-deployment phase rather than extending it to post-deployment troubleshooting.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where test case outcomes are automatically analyzed and fed back into the upgrade process. If tests fail, the system can automatically retrieve additional code fixes or adjust the modification approach. This closed-loop feedback ensures high reliability by catching issues early, while the automation of the feedback cycle reduces the manual time investment required for comprehensive testing.

Inventive Principle:
Principle #23Feedback

3Productivity

If automated systems are used to speed up the upgrade process, then productivity increases, but the complexity of the system increases requiring more sophisticated tools and models

Engineering Contradiction:
Improveupgrade automation speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system achieves high productivity through a multi-functional automated platform that performs diverse tasks: parsing release notes in multiple formats, identifying various types of code modifications (additions, deletions, changes), retrieving code fixes from repositories, applying modifications to source code, generating and executing test cases, and analyzing outcomes. This universal system handles the entire upgrade workflow through a single integrated mechanism, reducing the need for multiple separate complex tools while maintaining high automation capability and productivity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11061806B2Self-correcting dependent software upgrades
Publication Date: 2021.07.13 BANK OF AMERICA CORP
  • US11061806B2 patent drawing
  • US11061806B2 patent drawing
  • US11061806B2 patent drawing

AI summary

Aspects of the disclosure relate to self-correcting dependent software upgrades. A computing platform may scan a software source code and parse release notes associated with the source code. The computing platform may identify a code modification to be performed on dependent source code, and may identify a code segment of the dependent source code. Then, the computing platform may retrieve, based on a machine learning model, a code fix for the code segment, and a test case associated with the code modification. The computing platform may update the code segment by applying the code fix, and may merge the updated code segment with the dependent source code. Then, the computing platform may run the test case on the modified source code. Then, the computing platform may determine an outcome for the modified source code, and may initiate, based on the outcome, an action related to the dependent source code.