Abstract

An emergent research area in software engineering and software reliability is the use of wearable biosensors to monitor the cognitive state of software developers during software development tasks. The goal is to gather physiologic manifestations that can be linked to error-prone scenarios related to programmers’ cognitive states. In this paper we investigate whether electroencephalography (EEG) can be applied to accurately identify programmers’ cognitive load associated with the comprehension of code with different complexity levels. Therefore, a controlled experiment involving 26 programmers was carried. We found that features related to Theta, Alpha, and Beta brain waves have the highest discriminative power, allowing the identification of code lines and demanding higher mental effort. The EEG results reveal evidence of mental effort saturation as code complexity increases. Conversely, the classic software complexity metrics do not accurately represent the mental effort involved in code comprehension. Finally, EEG is proposed as a reference, in particular, the combination of EEG with eye tracking information allows for an accurate identification of code lines that correspond to peaks of cognitive load, providing a reference to help in the future evaluation of the space and time accuracy of programmers’ cognitive state monitored using wearable devices compatible with software development activities.

Highlights

  • Software defects represent the most enduring problem of software quality.In spite of decades of research and advances in software engineering and software reliability, the number of defects per 1000 lines of delivered code (KLoC) remains astonishingly high.Steve McConnell’s seminal book [1] points to an industry average of about 15 defects per KLoCs, which is a very large standard deviation

  • Was consistent with the subjective perception of code complexity measured using the NASA-TLX survey, and both the EEG and NASA-TLX results deviated considerably from complexity metrics in some of the programs used in the experiments

  • This means that complexity metrics alone are not a good indicator of code complexity as perceived by programmers, which suggests that widespread practice in software engineering such as using metrics to limit complexity of the different modules during software development should be revisited

Read more

Summary

Introduction

Software defects (i.e., bugs) represent the most enduring problem of software quality.In spite of decades of research and advances in software engineering and software reliability, the number of defects per 1000 lines of delivered code (KLoC) remains astonishingly high.Steve McConnell’s seminal book [1] points to an industry average of about 15 defects per KLoCs, which is a very large standard deviation. More recent field data from several projects show defects densities from 1 to 6 bugs per KLoC [6], suggesting that in real projects, often characterized by millions of lines of code, the defect density remains quite significant and represents a huge cost for the software industry and society in general. The root causes of software defects are buried deep in human error manifestations and must be addressed in an interdisciplinary perspective involving software engineering, cognitive psychology, neuroscience, and even biomedical fields. This interdisciplinary research perspective on software defects has gained ground and is an emergent research line. The present paper reinforces this conclusion using the much more reliable measurement provided by the EEG

Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call