Self-healing software project — NSF career award
Credit: Virginia Tech
For Na Meng, assistant professor in the Department of Computer Science in the College of Engineering, a guiding principle of “every effort counts” has resulted in some significant impacts, including a recent Faculty Early Career Development (CAREER) Program award from the National Science Foundation (NSF).
Meng’s project, titled “Data-Driven Debugging of Complex Program Changes,” funded at almost $500,000, will span five years with the goals of increasing programmer productivity and improving software reliability. Other related impacts include reducing software cost and protecting people and privacy data from issues caused by problematic software upgrades.
According to Meng, as software is on the market for a period of time and becomes older and larger, more and more program changes become increasingly complex. This in turn makes it more challenging for developers to change or maintain software efficiently and accurately.
“This project addresses this problem by helping computers and developers better understand, check, and apply complex changes,” Meng said. “The project’s novelties are new methods and tools to characterize, model, validate, and suggest complex changes.”
These novel components, according to Meng, are what she feels distinguished her submission. “It had an element of surprise and was unique with a software engineering focus.”
Through this research, Meng wants programmers to know they are not alone to figure out all the problems. “Imagine a software system that can detect its own bugs and generate the patches to fix it,” Meng said.
The long-term vision is to provide a programming environment that supports complex, multichange edits, with attention to their correctness and with self-healing capabilities.
Although Meng is the principal investigator, she is excited about the prospect of collaborating with her computer science colleagues regarding issues related to debugging and security.
One of the first objectives will be characterizing the recurring change patterns once the complex program changes have been committed to open-source projects. Using these inferred patterns, the project will classify multichange edits into different types, such as bug fixes, refactorings, and feature enhancements.
From there, techniques will be devised to make multi-edit changes to ensure their correctness and to automatically repair programs’ multichange edit sequences. These capabilities will be combined with delta debugging and dynamic patch validation in a prototype editing and testing tool called Oedit, which will automatically recover programs from erroneous software updates and upgrades.
She has also consulted with industry contacts to determine how developers can use these tools to improve their code quality.
According to the NSF, the CAREER program is considered one of its most prestigious awards in support of early-career faculty who have the “potential to serve as academic role models in research and education and to lead advances in the mission of their department or organization.”