Automated Architecture Bug Detection in Software Porting
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
Data Source
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.


