Build Order Optimization Using Historical Failure Factors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large-scale software build processes, determining the optimal build order for source code modules based on dependency information alone is insufficient, especially when dealing with rapidly changing libraries and high processing demands, as it does not account for historical failure patterns to efficiently identify and address failing components.

Innovation Solution

Creating a dependency graph and using historical build information to calculate relative failure factors, which determines the order of traversal during the build process to optimize for either finding failing modules first or last, thereby improving build efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dependency information alone is used to determine build order, then the build process can be executed, but it cannot efficiently identify failing components in large-scale rapidly changing libraries

Engineering Contradiction:
Improvebuild efficiencyVSAvoidhistorical failure patterns
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by collecting and analyzing historical build failure data before executing the build process. Build history information is gathered and processed in advance to calculate failure factors for each component, which then guides the build traversal order. This preliminary analysis enables the system to proactively identify and prioritize potentially failing components based on their historical failure patterns, rather than reacting to failures after they occur during the build process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If processing power is increased to keep up with rapid changes in over 100 libraries, then build completeness is maintained, but processing requirements become excessive

Engineering Contradiction:
Improvebuild completenessVSAvoidprocessing power
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system applies local quality by calculating and applying failure factors specifically to individual components based on their historical failure patterns, rather than treating all components uniformly. Each component receives a localized failure factor calculation that reflects its specific historical behavior, allowing the build system to concentrate processing attention on components with higher failure probabilities while reducing or skipping processing for stable components. This localized approach maintains build reliability for critical components while significantly reducing overall processing power requirements.

Inventive Principle:
Principle #3Local quality

3Device complexity

If build order is determined without historical data, then the process is simpler, but failure identification efficiency is reduced

Engineering Contradiction:
Improvebuild process complexityVSAvoidtime to identify failures
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The system implements feedback by continuously collecting build history information from previous build executions and using this feedback to inform future build order decisions. The failure factors are calculated based on historical feedback data, creating a closed-loop system where past build outcomes directly influence future build strategies. This feedback mechanism enables the system to learn from historical failures and progressively improve its ability to predict and prioritize failing components, reducing the time required to identify failures without requiring overly complex manual configuration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10649748B2Using build history information to optimize a software build process
Publication Date: 2020.05.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10649748B2 patent drawing
  • US10649748B2 patent drawing
  • US10649748B2 patent drawing

AI summary

Methods and systems for optimizing a build order of component source modules comprises creating a dependency graph based on dependency information. Historical build information associated with previous build failures is then used to calculate relative failure factors for paths of the dependency graph; and the relative failure factors are used to determine an order of traversal of the dependency graph during a build process in which component binary modules are built from the component source modules.