Software Change Impact Analysis Iterative Refinement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software change-impact analysis methods often produce false-positive errors, complicating the prediction of effects from modifying one part of a computer program on other parts, due to the complex nature of software and incorrect identification of change-affected parts.

Innovation Solution

A method that identifies a basepoint variable and iteratively selects candidate change-affected parts, confirming their status to reduce false-positive errors by determining the actual impact of changes, thereby improving the accuracy of software change-impact analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional software change-impact analysis methods are used, then the analysis can identify potential affected parts, but false-positive errors increase and accuracy decreases

Engineering Contradiction:
Improveaccuracy of change-impact analysisVSAvoidfalse-positive error rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent segments the change-impact analysis into multiple generations, where each generation identifies candidate change-affected parts based on the previous generation's results. This iterative segmentation allows the system to progressively refine accuracy by confirming identifications across multiple analysis passes, thereby reducing false positives while maintaining comprehensive coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary identification of candidate change-affected parts in early generations before final confirmation. By pre-identifying potential candidates and then verifying them through subsequent generations, the system eliminates false positives before they propagate, improving both accuracy and reliability of the final analysis results.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If comprehensive change-impact analysis is performed to identify all affected parts, then coverage increases, but complexity and overhead of the analysis process increase

Engineering Contradiction:
Improvecoverage of change-impact analysisVSAvoidcomplexity of analysis process
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic, multi-generation analysis process where the scope and depth of analysis adapt based on previous results. Each generation dynamically adjusts the candidate identification based on confirmed changes from the previous generation, allowing comprehensive coverage while managing complexity through iterative refinement rather than exhaustive simultaneous analysis.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs partial analysis in each generation, focusing only on candidate parts identified from the previous generation rather than analyzing all possible parts simultaneously. This partial action approach achieves comprehensive coverage through multiple passes while significantly reducing the complexity and overhead of each individual analysis step.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9250890B2Optimizing performance of a computer system in response to a software change
Publication Date: 2016.02.02 GLOBALFOUNDRIES US INC
  • US9250890B2 patent drawing
  • US9250890B2 patent drawing

AI summary

A method and associated systems that allow a computer system to optimize its performance when running a computer program after a characteristic of a variable of the computer program is changed. A processor of a computer system initially identifies a first generation of candidate components of the computer program that could possibly be affected by changing the characteristic and then confirms these identifications by analyzing one or more characteristics of the variable and of each identified component. The processor repeats this procedure, identifying in each iteration a next generation of program components that would be affected by varying a characteristic of any of the components confirmed in the current generation. This procedure repeats until the processor can confirm no additional previously unconfirmed components. The processor then considers the identified set of affected components in order to optimize its performance running the program after the variable's characteristic is changed.