CAREER: Leveraging Objective Measures for Developers' Cognitive Load to Identify and Quantify the Impact of Design, Coding, and Review Practices.
Washington State University, Pullman WA
Investigators
Abstract
Software engineers spend the majority of their time reading and understanding software that they or someone else has written. Several catalogs have emerged from academia and industry documenting good and poor practices to make software more flexible, modular, reusable, and understandable. However, those practices are based on experts' opinions, i.e., researchers and software engineers, and not on empirical evidence. Thus, very little is known about the effect of those practices on developers when they read and understand software. With the recent adoption of high-resolution medical imaging technologies in software engineering, the investigator proposes to bring the science behind "best and worst practices" by empirically validating the impact of existing software practices on program comprehension. Moreover, the investigator will identify new practices using scientific methods as opposed to experts' opinions. The proposed work is expected to facilitate new research in the field of software engineering and beyond as it provides a general methodology to objectively measure program comprehension and to empirically evaluate and identify existing and new practices. The outcomes of this research will result in guidelines for students and software engineers on how to write software that minimizes their effort during program comprehension. Once the results have been disseminated and adopted by software engineers, they will be more productive, thus improving their well-being at the workplace. With support from this award, the investigator will integrate the results from this research in her undergraduate and graduate courses where she would teach student how to write software that is easier to understand. The objective of this award is to bring science behind "best" and "worst" software practices by 1) using direct and objective measures to empirically evaluate the impact of existing practices on developers' cognitive load and 2) using those direct and objective measures to empirically identify new practices. In particular, the award targets good and poor software practices (i.e., patterns and antipatterns, respectively) pertaining to the design, code, and reviews of software in the context of bug localization and code review tasks. The central hypothesis is that software development practices impact the cognitive load that developers experience while understanding source code. To test the central hypothesis, mainly a series of controlled experiments will be conducted using a functional near-infrared spectroscopy (fNIRS) and an eyetracking devices. Once the impact of software development practices on program comprehension has been determined, the investigator will recommend guidelines for how to develop and maintain software in a way that 1) it will require less mental effort to be understood by the original developers and by software maintainers; and 2) it will be easier to maintain. The results of the proposed research are also expected to be integrated into automatic recommender tools to improve their recommendations based on empirically validated practices. 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 →