search menu icon-carat-right cmu-wordmark

AI for Software Engineering

August 2021 Presentation
James Ivers, Ipek Ozkaya

This talk describes the state of research in AI applied to improving software development efficiency and the SEI's recent progress in search-based refactoring.

Publisher:

Software Engineering Institute

Abstract

This talk was given at the SEI's Software Engineering Workshop for Educators in August 2021.

At almost every stage of the software development process, artificial intelligence (AI) holds the promise of assisting humans. As we work toward formalizing and subsequently automating software development activities, a key goal is to design, develop, and deploy reliable software. By relieving humans of tedious tasks, they will be better equipped to focus on tasks requiring creativity and innovation that only humans can provide. To reach this goal, a research challenge ahead is whether we need to re-envision the entire software development process with increased AI and automation support for developers. Taking advantage of data generated throughout the entire software development lifecycle is one step toward this goal. AI-enabled tools can also help provide more targeted automated support. For example, we need tools that help developers find/fix defects and express tradeoffs to explore a variation of solution options. Software engineering research is not new to application of AI to development tasks; however, we are seeing reinvigorated interest in AI4SE, including outcomes being tested at scale by industry. In this talk, we provide a short overview of the state of research in AI applied to improving software development efficiency and summarize the SEI's work in this area with a particular focus on our recent progress in search-based refactoring.