Automated Architecture Bug Detection in Software Porting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of porting software projects from one system architecture to another is error-prone and manual, requiring developers to identify and address architecture-related bugs, which is inefficient and time-consuming due to the complexity of code changes and errors.

Innovation Solution

A system and method that identifies a base working commit, scores commits based on portability likelihood, and patches together commits for building on a target architecture, highlighting potential issues for manual review, thereby reducing the need for manual code examination and minimizing errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually review and identify architecture-related bugs during porting, then they can detect errors, but the process is time-consuming and inefficient

Engineering Contradiction:
Improveerror detection accuracyVSAvoidporting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs self-diagnosis by automatically analyzing commits and detecting architecture-related bugs without requiring manual code review. The automated analysis engine examines commit histories, identifies problematic patterns, and flags issues that developers would need to detect manually, thereby eliminating time-consuming manual inspection while maintaining high error detection accuracy

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical process of manual code review with an automated computational system. The analysis engine uses algorithms to scan commits, identify architecture-specific bugs, and generate reports, substituting human manual inspection with automated mechanical analysis that is both faster and more consistent

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

2Reliability

If developers manually examine code changes during porting, then they can identify bugs, but the effort required is excessive for millions of lines of code

Engineering Contradiction:
Improvebug detection capabilityVSAvoidporting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system extracts only the relevant commits that contain architecture-related bugs from the vast repository of code changes. Instead of requiring developers to examine all commits and millions of lines of code, the automated analysis engine identifies and extracts only those specific commits that contain porting issues, dramatically reducing the review burden while maintaining comprehensive bug detection

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the large codebase into individual commits and analyzes them separately using automated algorithms. This segmentation allows the system to process manageable units of code, identifying architecture-related bugs in each commit without requiring developers to manually review the entire codebase, thereby maintaining high detection capability while improving porting efficiency

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If comprehensive testing is performed on each commit for both architectures, then portability issues can be identified, but the computational resources required increase significantly

Engineering Contradiction:
Improveportability assessment accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary analysis of commits by examining commit messages, code patterns, and metadata before conducting full builds. This preliminary action identifies commits that are likely to contain architecture-related issues, allowing the system to focus computational resources only on those specific commits rather than performing comprehensive testing on all commits, thereby maintaining high assessment accuracy while reducing overall resource consumption

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10592237B2Efficient detection of architecture related bugs during the porting process
Publication Date: 2020.03.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10592237B2 patent drawing
  • US10592237B2 patent drawing
  • US10592237B2 patent drawing

AI summary

Systems, methods, and computer program products to perform an operation comprising identifying a first commit of a plurality for a software project, a source code of the first commit executable in a first system architecture, determining, based on a set of tests run against a built source code of the first commit for the first and second system architectures, that the first commit is a latest working build for the architectures, computing a score for each commit in a first set of the plurality, identifying a second commit of the first set of commits based on the scores for each commit, building the source code of the second commit for execution on the second system architecture, and determining that the source code of the second commit did not build successfully for the second system architecture based on an error at a first line of the source code.