CAREER: Data-Driven Debugging of Complex Program Changes
Virginia Polytechnic Institute And State University, Blacksburg VA
Investigators
Abstract
After the initial release of a software application, developers continue changing it by adding new features, fixing software defects, or improving the implementation of existing features. As the application becomes older and larger, program changes become more complex. It becomes more difficult for developers to change or maintain the software efficiently and correctly. Slowly and incorrectly evolved software systems negatively impact both software producers and consumers; these systems can cause tremendous economic costs, put customers' data and privacy at risk, and even threaten people's lives. This project addresses this problem by helping computers and developers better understand, check, and apply complex changes. The project's novelty is in new methods and tools to characterize, model, validate, and suggest code modifications. The project's impacts are increasing programmer productivity, improving software reliability, reducing software cost, and protecting people and privacy data from issues caused by problematic software upgrades. The project will conduct empirical studies of software projects (in the GitHub repository) to understand and characterize multi-change edits "in the wild" to discover frequently co-changed patterns among code and non-code entities. Using these inferred patterns, the project will classify multi-change edits into different types such as bug fixes, refactorings, and feature enhancements. Techniques will be devised to make multi-edit changes, to ensure their correctness, and to automatically repair programs' multi-change edit sequences. These capabilities will be combined with delta debugging and dynamic patch validation in a a prototype editing and testing tool called Oedit, which will automatically recover programs from erroneous software updates and upgrades. The long-term vision is to provide a programming environment that supports complex, multi-change edits, with attention to their correctness, and with self-healing capabilities. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
View original record on NSF Award Search →