Machine Learning Model for Source Code Issue Assignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software development, identifying the appropriate developer to assign to a source code issue is challenging, especially when the issue's cause is unclear or when multiple developers are involved, as existing methods lack efficiency in determining the best candidate for addressing the issue.
Innovation Solution
A machine learning model is generated using multiple versions of a source code object and associated developer identifiers, analyzing patterns and changes to identify candidate developers for addressing source code issues, with feedback used to update the model.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If automated testing techniques are used to detect source code issues, then testing efficiency is improved, but the ability to identify the appropriate developer to address the issue deteriorates
Solution Approach 1:
The patent introduces a machine learning model as an intermediary between source code issue detection and developer identification. The model analyzes historical source code versions, commit patterns, and developer behaviors to automatically match issues with appropriate developers, eliminating the manual identification process while maintaining high accuracy in developer assignment.
Solution Approach 2:
The patent replaces the mechanical/manual process of developer identification with an automated machine learning system. The system processes source code data, detects issues, and identifies developers through algorithmic analysis of historical patterns, substituting human judgment with computational intelligence to improve both efficiency and accuracy.
2Adaptability or versatility
If multiple developers are working on a given application, then code complexity and collaboration improve, but determining the best candidate to address an issue becomes more difficult
Solution Approach 1:
The patent implements a feedback mechanism where the machine learning model continuously learns from historical issue resolution data, commit patterns, and developer performance metrics. This feedback loop enables the system to refine its candidate selection accuracy over time, even as the number of developers and code complexity increase, by adapting to new patterns and relationships in the data.
Solution Approach 2:
The patent performs preliminary analysis of developer capabilities, historical performance, and code ownership patterns before an issue needs to be assigned. The machine learning model pre-processes and stores this information, enabling rapid identification of the best candidate when an issue is detected, rather than searching through multiple developers at the moment of assignment.
3Measurement precision
If static and dynamic code analysis techniques are used, then issue detection accuracy is improved, but the time required for testing operations increases
Solution Approach 1:
The patent performs preliminary analysis by training the machine learning model on historical source code data during off-peak times. The model learns patterns of code structure, common issues, and developer behaviors in advance, so that when new code is analyzed, the system can quickly match detected issues with appropriate developers using pre-computed knowledge, reducing real-time processing requirements.
Solution Approach 2:
The patent segments the code analysis process into distinct phases: static analysis for structural issues, dynamic analysis for runtime behavior, and machine learning-based developer matching. Each phase operates independently and can be prioritized or parallelized, allowing the system to maintain high detection accuracy while optimizing overall testing time through efficient resource allocation.
Data Source
AI summary
Technologies are provided for assigning developers to source code issues using machine learning. A machine learning model can be generated based on multiple versions of source code objects (such as source code files, classes, modules, packages, etc.), such as those that are managed by a version control system. The versions of the source code objects can reflect changes that are made to the source code objects over time. Associations between developers and source code object versions can be analyzed and used to train the machine learning model. Patterns of similar changes to various source code objects can be detected and can also be used to train the machine learning model. When an issue is detected in a version of a source code object, the model can be used to identify a developer to assign to the issue. Feedback data regarding the developer assignment can be used to re-train the model.


