Code Recommender for Issue Tracking Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development issue tracking systems face inefficiencies in managing and resolving issues due to duplicated code and similar issues, requiring developers to manually identify and debug code snippets, which decreases workflow efficiency.

Innovation Solution

A code recommender system that trains a model to correlate code snippets with issue representations using supervised learning, embedding code and issue vectors into a high-dimensional space, allowing for the recommendation of existing code snippets likely to resolve new issues based on similarity analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers manually identify and debug code snippets, then they can resolve issues with high accuracy, but the workflow efficiency decreases and time consumption increases

Engineering Contradiction:
Improveissue resolution accuracyVSAvoidworkflow efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system enables self-service by automatically analyzing new issues and recommending relevant code snippets without requiring manual intervention. The issue tracking system autonomously processes issue descriptions, searches the codebase, and presents potential solutions to developers, allowing them to quickly verify and apply fixes without extensive manual code review.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual process of searching and analyzing code with an automated computational system. Machine learning models and text analysis algorithms substitute for human developers' manual effort in identifying relevant code snippets, transforming a labor-intensive manual process into an automated intelligent system that maintains high accuracy while dramatically improving efficiency.

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

2Reliability

If developers manually review code snippets to resolve issues, then they ensure code quality, but the time required for debugging increases

Engineering Contradiction:
Improvecode qualityVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-processing and indexing the entire codebase before issues occur. Code snippets are organized, tagged, and made searchable in advance, allowing the system to quickly retrieve relevant code when an issue arises. This pre-prepared structure enables rapid response to new issues without compromising code quality review.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where developer interactions with recommended code snippets (acceptance, rejection, modifications) are fed back into the system to improve future recommendations. This continuous learning process enhances code quality assurance by refining the system's ability to suggest appropriate, high-quality code snippets while reducing the time developers need to spend on manual review.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the system analyzes the entire codebase to find relevant code snippets, then recommendation accuracy improves, but system complexity and processing requirements increase

Engineering Contradiction:
Improvecode snippet recommendation accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the codebase into modular, manageable units with hierarchical organization. Code is structured into functions, classes, and modules that can be independently analyzed and indexed. This segmentation allows the system to efficiently search and compare specific code segments rather than processing the entire codebase as a monolithic structure, maintaining accuracy while reducing complexity.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If the system stores and processes large amounts of code data, then recommendation capability improves, but storage and processing requirements increase

Engineering Contradiction:
Improverecommendation capabilityVSAvoiddata storage requirements
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system extracts and stores only the essential features and characteristics of code snippets rather than maintaining complete copies of all code. Key attributes such as function signatures, data structures, error patterns, and contextual metadata are extracted and indexed for efficient retrieval. This extraction approach preserves recommendation capability by maintaining the critical information needed for matching while significantly reducing storage requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11157246B2Code recommender for resolving a new issue received by an issue tracking system
Publication Date: 2021.10.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11157246B2 patent drawing
  • US11157246B2 patent drawing
  • US11157246B2 patent drawing

AI summary

Training data identifying a plurality of pairs is received. Each pair identifies one or more separate code snippets known to resolve a respective issue of a plurality of issues. For each pair of the plurality of pairs, a respective issue representation of core content of the respective issue and a linear expression of the one or more separate code snippets in a respective code representation is constructed and a model to correlate the respective code representation as resolving the respective issue representation is trained. The model is queried with a new issue and a selected one of the one or more separate code snippets. The model returns a classification indicating whether the selected one of the one or more separate code snippets is likely to resolve the new issue.