Automated Software Repair Event Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Automated software repair systems face challenges in accurately identifying and correcting errors in software programs due to vague commit messages and the lack of clear event insights from existing source code repositories, known as 'big code', which hinders effective error detection and repair.

Innovation Solution

A computing system is configured to infer events corresponding to changes in software programs by performing event type inference operations, generating detailed commit messages, and removing secondary modifications to identify primary changes contributing to errors, thereby facilitating error correction and improving software development.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If automated repair systems use existing source code repositories to identify and correct errors, then error correction capability is improved, but the lack of clear event insights and vague commit messages hinders effective error detection

Engineering Contradiction:
Improveerror correction capabilityVSAvoidevent insights
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system performs preliminary event type inference operations on source code changes before repair attempts. By inferring event types (such as fault introduction, fault correction, defect introduction, defect correction, platform migration) from commit messages and code changes in advance, the system prepares structured event insights that guide subsequent error detection and repair processes, transforming vague commit messages into actionable event information.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the system performs multiple event type inference operations to identify primary changes, then error detection accuracy is improved, but the complexity of the repair system increases

Engineering Contradiction:
Improveerror detection accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the complex task of error detection into multiple distinct event type inference operations. Each inference operation focuses on a specific event type (fault introduction, fault correction, defect introduction, defect correction, platform migration), allowing the system to analyze different aspects of code changes separately. This segmentation improves detection accuracy by specializing each inference operation while managing complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces event type inferences as intermediary representations between raw commit messages and error detection results. These inferences act as mediators that translate vague commit messages into structured event information, enabling more accurate error detection without requiring the system to directly process ambiguous original messages, thus improving precision while managing complexity through intermediate abstraction.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of repair

If the system removes secondary modifications to identify primary changes, then repair effectiveness is improved, but the time required for analysis increases

Engineering Contradiction:
Improverepair effectivenessVSAvoidanalysis time
Core Design Contradiction:
Ease of repairVSLoss of time

Solution Approach 1:

The system extracts and removes secondary modifications from code changes to isolate primary changes that are most relevant to error introduction and repair. By separating primary changes (which directly cause or fix errors) from secondary modifications (which are less relevant), the system focuses analysis on critical changes, improving repair effectiveness by concentrating resources on the most impactful modifications while filtering out noise from secondary changes.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10642716B1Automated software program repair
Publication Date: 2020.05.05 FUJITSU LTD
  • US10642716B1 patent drawing
  • US10642716B1 patent drawing
  • US10642716B1 patent drawing

AI summary

According to an aspect of an embodiment, operations may include determining a plurality of event correspondences. Each event correspondence may indicate a correspondence between a respective change of a plurality of changes made to first source code of a first software program and a respective event type that occurs with respect to the first software program. The plurality of event correspondences may be determined by performing two or more event type inference operations of a plurality of event type inference operations. The plurality of event type inference operations may include determining a fault introduction event, determining a fault correction event, determining a defect introduction event, determining a defect correction event, and determining a platform migration event.