Research
Research Mission
Our research mission is to pursue a more complete understanding of how engineers develop software, and to build the next generation of intelligent developer tools to help facilitate the software engineering process. To accomplish this, we study the methods and techniques by which developers design, create, test, and manage software. In particular, we examine developer needs related to various tasks in the software development lifecycle and design tailored automated approaches for those needs with the intention of facilitating software development and maintenance tasks.
Given the developer-focused nature of our research, we aim to straddle the line between scientific discovery and industrial applicability. We work to identify and understand meaningful problems faced by real developers in the constantly shifting modern landscape of software engineering, and then formulate projects that work towards solving these problems by designing state-of-the-art, automated approaches applying novel adaptations of machine learning, deep learning, program analysis, computer vision, and natural language processing techniques.
In essence, we aim to make it as easy as possible for engineers to go from ideas to working software.
Research Focus Areas
-
AI for Software Engineering
Our lab conducts research that aims to leverage new advances in artificial intelligence (with a focus on MLLMs & Deep Learning) to help build automated developer tools. Additionally, we examine how to best design tools and practices to engineer reliable systems that make use of artificial intelligence.
-
Agentic Software Engineering
Coding agents are being handed more and more of the software engineering process. We work on making them genuinely useful to developers, and on understanding what they can and cannot do — using machine learning interpretability techniques to explain their behavior and designing new forms of benchmarking to measure it honestly.
-
Bug Reporting
Given the complexity of modern applications, bugs often continue to persist after release, and users need effective mechanisms to report them. Our research has pioneered interactive bug reporting systems, and we continue to advance error reporting methods for software.
-
Software Security
Given that software is interwoven into users' personal lives, the stakes of software security and privacy have never been higher. Our research examines how we can apply software engineering principles and practices to help ensure the security of complex software systems.
-
Automated UI Analysis
The Graphical User Interface represents a rich source of information that describes software in a visual manner, allowing users to intuitively understand software functionality. Our research aims to automatically analyze user interfaces to automate software tasks.
-
Open Science
Our lab follows open science practices. We strive to make all of our papers, software, and data freely available to the public to support replication, scientific progress, and the advancement of software engineering research.
Research Sponsors
The SAGE Lab graciously acknowledges support from our sponsors, including the National Science Foundation, Cisco Systems, and Apple. See the Lab Funding page for the grants supporting our work.