Developing Smarter Software Engineering Tools by Utilizing AI Assistance
Elias Syyrilä, Jussi Kasurinen · 2024
Software development tasks such as code generation have been successfully augmented with artificial intelligence (AI), adding value and revealing new possibilities. Especially with new software, AI models can be trained on existing, external data to speed up development time and save resources. But how easily can other tasks be augmented with AI? This study takes a look at an existing AI model that facilitates cross-project learning to aid new software development, enhances its usefulness by developing a visualisation plugin for it, and experiments by mixing multiple unrelated training datasets to see how effective the tool can become as a whole. Overall, the model was found to perform better in line-level defect prediction in at least one case where two labeled software projects were used as combined training data. Based on our proof-of-concept studies, developing functional and useful AI solutions to assist programmers in specific tasks is feasible already with the existing tools, as our developed extension provided accurate predictions and integrated to an existing, popular source code editor within a reasonable amount of time and other resource investments.