search menu icon-carat-right cmu-wordmark

Applying AI to Reduce Software Improvement Costs

September 2019 Fact Sheet
Ipek Ozkaya, James Ivers

This fact sheet summarizes several SEI projects seeking collaborators with whom to apply AI techniques that automate labor-intensive software engineering activities.

Publisher:

Software Engineering Institute

Abstract

Software-reliant systems need to evolve over time to meet new requirements and take advantage of new technology. However, all too often the structure of legacy software becomes too complicated to allow such improvements to be made quickly and cost effectively. While software can be refactored to isolate a collection of functionality, which is an essential step in making modernization and migration activities practical, this is a labor-intensive process whose cost can be difficult to justify. The SEI has kicked off several projects that apply artificial intelligence (AI) techniques to automate labor-intensive software engineering activities, starting with automation that recommends and implements refactorings that isolate functionality from its tangle of dependencies with the rest of the system. Our work combines advances in search-based software engineering, static code analysis, machine learning algorithms, and refactoring knowledge. With this combination, we aim to reduce the time required for this kind of architecture refactoring by two-thirds. The SEI would like to collaborate with the right programs to apply this work to address today's important problems and gain feedback to improve our ongoing research.