Software Update Impact Estimation via Code Diff and Usage Metrics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for assessing the impact of software updates are time-consuming, expensive, and often subjective, failing to guarantee risk-free updates due to the variability in user experiences and application-specific impacts.

Innovation Solution

A system and method that involves monitoring usage metrics for software applications, comparing base and updated code to identify lines of interest, and aggregating these metrics to determine an impact factor, which helps in evaluating the potential impact of software updates on end users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If extensive testing is performed on software updates before release, then reliability of the update is improved, but loss of time and productivity deteriorate

Engineering Contradiction:
Improveupdate reliabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the software update by comparing the updated code against the base code to identify modified lines before extensive testing begins. Usage measures for these modified lines are collected in advance from production environments, allowing the impact assessment to be prepared beforehand, thus reducing the time needed for comprehensive testing while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the traditional mechanical approach of extensive manual testing with an automated information processing system. The impact analyzer automatically compares code versions, identifies modified lines, aggregates usage measures, and computes impact factors through automated data processing, substituting time-consuming manual testing procedures with efficient computational analysis.

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

2Reliability

If extensive testing is performed on software updates before release, then reliability of the update is improved, but productivity deteriorates

Engineering Contradiction:
Improveupdate reliabilityVSAvoidupdate deployment productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary analysis of the software update by comparing the updated code against the base code to identify modified lines before extensive testing begins. Usage measures for these modified lines are collected in advance from production environments, allowing the impact assessment to be prepared beforehand, thus reducing the time needed for comprehensive testing while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the traditional mechanical approach of extensive manual testing with an automated information processing system. The impact analyzer automatically compares code versions, identifies modified lines, aggregates usage measures, and computes impact factors through automated data processing, substituting time-consuming manual testing procedures with efficient computational analysis.

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

3Ease of operation

If subjective analysis is used to determine perceived impact of updates, then ease of operation is improved, but measurement precision deteriorates

Engineering Contradiction:
Improveimpact assessment easeVSAvoidimpact measurement precision
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent replaces the traditional mechanical approach of extensive manual testing with an automated information processing system. The impact analyzer automatically compares code versions, identifies modified lines, aggregates usage measures, and computes impact factors through automated data processing, substituting time-consuming manual testing procedures with efficient computational analysis.

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

Solution Approach 2:

The system introduces an intermediary computational layer between the subjective perception of impact and the actual impact assessment. The impact analyzer serves as an intermediary that processes objective data (code comparisons, usage measures) to generate quantified impact factors, mediating between simple operational input and precise measurement output.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9348585B2System and method for estimating impact of software updates
Publication Date: 2016.05.24 RED HAT INC
  • US9348585B2 patent drawing
  • US9348585B2 patent drawing
  • US9348585B2 patent drawing

AI summary

A system and method of estimating impact of software updates includes obtaining usage measures for an instance of a software application, analyzing the software update of the software application by comparing base code for the software application to updated code for the software application, identifying one or more lines of interest from the base code based on the comparing, and aggregating the usage measures for the instance associated with the lines of interest to determine an impact factor. The base code corresponds to source code for the instance. The updated code corresponds to source code for the software application after the software update is applied to the base code. In some examples, the system and method further include normalizing the impact factor based on a length of time used to collect the usage measures, a number of lines of code in the base code, and a number of lines of code in the updated code.