ML Code Prediction From Issue Context for Software Tasks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software engineering tools fail to automate the writing of source code that is suitably connected to requirements or specifications, and do not assist developers in generating code that accurately reflects the intended software design.
Innovation Solution
A system and agent that utilize a machine-learning model to predict and automate source code changes based on issue reports and project history, integrating with code editors and issue trackers to provide intelligent code completion and issue report generation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If software tools are used to assist with source code construction, then ease of operation is improved, but extent of automation remains insufficient
Solution Approach 1:
The system enables self-service automation by having the software construction tool automatically generate source code constructs, complete partial code, and perform refactoring operations without requiring manual intervention for each coding task, while still allowing developer oversight and control
Solution Approach 2:
The system performs preliminary actions by pre-generating boilerplate source code from templates, pre-completing partially-typed code lines, and pre-organizing code structure before the developer needs to write the actual implementation details
2Productivity
If code editors provide assistance for source code tasks, then productivity is improved, but connection to requirements or specifications is weakened
Solution Approach 1:
The system implements feedback loops where the software construction tool continuously monitors the generated source code against the original requirements and specifications, automatically detecting and correcting deviations to maintain traceability and ensure the code fulfills its intended purpose
3Ease of operation
If software tools facilitate narrow tasks, then ease of operation is improved, but adaptability to different software engineering tasks is reduced
Solution Approach 1:
The software construction tool is designed with multi-functionality to handle diverse software engineering tasks including but not limited to source code generation, code completion, refactoring, and requirements traceability, making it adaptable across different development contexts and task types
Data Source
AI summary
A system stores a source code change, at a location in source code associated with a software engineering task, received from a software developer's code editor. The system receives a request from the code editor for predicted source code changes at a source code location, and retrieves context data which establishes the software engineering task's context. The system transforms the context data to be compatible with the data format used to train a machine-learning model to assist with performing software engineering tasks. The machine-learning model uses the transformed context data to predict source code changes at the source code location. The system outputs the predicted source code changes at the source code location to the software developer's code editor. The system commits source code changes based on any predicted source code changes at any source code locations, as accepted by the code editor.


