CAREER: Aiding Comprehension of Complex Software Dynamics to Support High-Quality Software Development
University Of California-Irvine, Irvine CA
Investigators
Abstract
This research is aimed at helping software developers understand, diagnose, and fix bugs in software. A large class of bugs that are caused by logical inconsistencies in the software code, i.e., incongruences between the developers' expectation of how the program should behave and the way it actually does. Such common logical inconsistencies typically require developer attention and comprehension, and are not amenable to algorithmic location and repair. As such, the goal of this research is to assist software developers performing software maintenance and debugging tasks by facilitating their comprehension of the software and its behavior, with the ultimate goal of equipping them to produce higher quality software, more economically. Viewing the challenges of software maintenance and debugging as challenges of human comprehension, the research aims to help understand where bugs reside in the codebase, why the code behaves incorrectly, who are the developers best equipped to understand and fix problems, and when were the changes made that introduced bugs. These questions are addressed using a combination of (1) automated recommendation systems to use software artifacts and analyses to provide automated assistance to engineers; (2) discovery and exploration tools to enable engineers to develop deeper comprehension of the automated recommendations; novel experimental protocols and evaluations to determine sources of comprehension challenges. The research combines ideas from software analysis and human-computer interaction. Better understanding of software faults and how to repair them will lead to higher quality software at reduced costs.
View original record on NSF Award Search →