Semantic Version Control for Root Cause Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current version control systems are inefficient in identifying the root cause of software defects due to the time-consuming process of analyzing numerous source code files and changes, especially when many files are modified in a single change set, which hinders rapid resolution of high-severity issues.

Innovation Solution

Implementing semantic analysis within version control systems using abstract syntax trees (ASTs) to classify changes into important and unimportant categories, focusing only on important changes for root cause analysis, thereby expediting the identification of offending code changes and reducing the number of files to examine.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If all source code files and changes are analyzed to identify root cause of software defects, then the accuracy of defect identification is improved, but the time required for analysis increases significantly

Engineering Contradiction:
Improveaccuracy of defect identificationVSAvoidtime required for analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the source code into abstract syntax trees (ASTs) and further divides changes into categories (code logic changes vs. non-code logic changes). This segmentation allows the system to focus analysis only on relevant segments (code logic changes) rather than analyzing all source code files, thereby maintaining accuracy while reducing analysis time

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and isolates only the important changes (code logic changes) from the entire set of source code modifications. By taking out and focusing solely on the subset of changes that are likely to cause defects, the system achieves accurate defect identification without the time penalty of analyzing all changes

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If numerous source code files are examined to determine root cause, then the completeness of analysis is improved, but the complexity of the analysis process increases

Engineering Contradiction:
Improvecompleteness of analysisVSAvoidcomplexity of analysis process
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The analysis process is segmented into distinct stages: generating ASTs for each version, comparing ASTs to identify changes, classifying changes into categories, and analyzing only code logic changes. This segmentation simplifies the overall complex process by breaking it into manageable, systematic steps

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces abstract syntax trees (ASTs) as an intermediary representation between the raw source code and the defect analysis process. This intermediary structure simplifies the comparison and classification tasks, making the analysis process less complex while maintaining completeness

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If all changes in source code are considered for defect analysis, then the accuracy of cause determination is improved, but the productivity of defect resolution decreases

Engineering Contradiction:
Improveaccuracy of cause determinationVSAvoidproductivity of defect resolution
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts and identifies only the important changes (code logic changes) from all source code modifications. By focusing analysis exclusively on this extracted subset rather than all changes, the system maintains accurate cause determination while significantly improving defect resolution productivity

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing complete analysis on all source code changes, the patent applies partial action by analyzing only the necessary subset (code logic changes). This partial analysis approach achieves sufficient accuracy for defect cause determination while dramatically improving productivity

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11379221B2Version control mechanisms augmented with semantic analysis for determining cause of software defects
Publication Date: 2022.07.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11379221B2 patent drawing
  • US11379221B2 patent drawing
  • US11379221B2 patent drawing

AI summary

A plurality of metadata corresponding to a plurality of code versions of an application stored in a version control system is generated. A determination is made of a set of changes between a first metadata of a first code version and a second metadata of a second code version. A classification is made of elements in the set of changes into a first category and a second category based on a set of predetermined rules, wherein the elements classified into the first category are better candidates to determine causes of defects in the application than the elements classified into the second category. The elements classified in the first category are used to determine a cause of a defect in the application.