Project Synopsis


The main hypothesis of this project is to research software bugs in a new perspective using neuroscience, physiological response and software reliability engineering in a tight interdisciplinary approach to understand the brain mechanisms involved in error making and error discovery, focusing on software programming and code inspection activities, and evaluate the possibilities of using the findings to improve software quality through a new comprehensive biofeedback augmented software engineering approach. The project is structured in three major steps:

Neural networks

Research the neural network associated to human error making and error discovery during software inspection activities, using functional magnetic resonance imaging (fRMI) and electroencephalography (EEG), to understand the mental conditions that lead to a bug and reveal the neural patterns associated to the “eureka moment” of finding a bug.

Physiological response

Establish correlation models between the neuronal activation patterns associated to bug scenarios and the physiological response of programmers that can be monitored by currently available smart watches and similar wearable devices equipped with sensors for HRV (heart rate variability), PPG (photoplethysmography), EDA (electrodermal activity) to monitor physiologic reaction to emotional and cognitive stress and concentration states (e.g., variations in the heart rate, breathing rhythm, secretion increasing by the sweat glands, etc.), considering also stress/concentration related behavioural information that can be inferred from the typical programming environment, such as mouse and keyboard activity, eye movement, and facial expression. Very preliminary experiment results recently published have shown promising possibilities to establish such correlation models.

Validation

Define and validate the new biofeedback augmented software development environment that uses the correlation models derived from the fRMI and EEG experiments (step 1) to enhance the accuracy and precision of the information gathered from the wearable devices (step 2) that reflects emotional and cognitive states of the programmer (stress, attention, mental effort level, etc.), and to link such information on the programmer’s emotional and cognitive state to specific lines of the code, allowing the identification of program areas with higher risk of having software bug.

Expected Features


Online warning of the programmer (during code development) by highlighting the lines of code that may exhibit high error probability and need attention or a second look from the programmer.

Guide the testing effort (after programming) by taking into account the individual information gathered from each programmer that has participated in the code development and use such information together with software complexity metrics to focus the testing effort on the code areas that have higher bug probability.

Improve current models of bug density estimation and software risk analysis, which are essential for high quality software applications (not only for the critical ones), through the use of additional information on programmer’s emotional and cognitive states, in addition to the traditional information used by current models based on complexity metrics and test coverage.

Create individual profiles for the programmers that will help define adequate training needs for each programmer, based on the information trail generated by the wearable devices associated to programmers and the productivity/quality metrics obtained from the code.

The BASE project represents the very first time that key software development and verification steps, as human intellectual activities with high degree of abstract concepts/structures that are inherently error prone for the human brain, are deeply researched from a cognitive neuroscience perspective, in conjunction with a pragmatic approach to use the expected results in practice, through the proposal of a new and comprehensive biofeedback augmented software engineering approach.

Consortium


CISUC - Centre for Informatics and Systems of University of Coimbra

Software Engineering Group
Adaptive Computing Group

CIBIT - Coimbra Institute for Biomedical Imaging and Translational Research

PoliMI - Politecnico di Milano

Dipartamento di Electronica, Informazione e Bioingegneria

Project News


BASE Workshop - 22 January 2021

BASE workshop will be held on the 22nd of January 2021 with all the partners.

BASE- Study 1: Call for volunteers

BASE project is seeking volunteers for its next experiment.

Kick-off meeting

BASE project kick-off meeting was held in the Department of Informatics Engineering - FCTUC, on the 7th of September 2018.

Our Publications

Biofeedback augmented software engineering: accurate monitoring of programmers’ mental effort

Ricardo Couceiro, Gonçalo Duarte, João Durães, João Castelhano, Catarina Duarte, Cesar Teixeira, Miguel Castelo Branco, Paulo Carvalho and Henrique Madeira

ICSE 2019

Pupillography as predictor of programmers’ mental effort and cognitive overload

Ricardo Couceiro, Gonçalo Duarte, Benjamim Manhanga, Joao Duraes, João Castelhano, Catarina Duarte, César Teixeira, Miguel Castelo Branco, Paulo de Carvalho, Henrique Madeira

DSN 2019

Software Code Complexity Assessment Using EEG Features

Julio Medeiros, Ricardo Couceiro, João Castelhano, Miguel Castelo-Branco, Gonçalo Duarte, Catarina Duarte, João Durães, Henrique Madeira, Paulo Carvalho, César Teixeira

EMBC 2019

Spotting problematic code lines using nonintrusive programmers’ biofeedback

R Couceiro, R Barbosa, J Durães, G Duarte, J Castelhano, C Duarte, C Teixeira, N Laranjeiro, J Medeiros, M Castelo Branco, P Carvalho, H Madeira

ISSRE 2019

EEG monitoring during software development

Calcagno, A., Coelli, S., Couceiro, R., Durães, J., Amendola, C., Pirovano, I., Re, R. and Bianchi, A.M.

MELECON 2020

Intelligent Biofeedback Comprehension Assessment: Theory, Research, and Tools

Haytham Hijazi; Ricardo Couceiro; João Castelhano; José Cruz; Miguel Castelo-Branco; Paulo de Carvalho; Henrique Madeira

MELECON 2022

A Quick Review on Machine Learning Techniques in Code Comprehension and Code Review Estimated by Neurophysiological Data

Haytham Hijazi; Ricardo Couceiro; João Castelhano; Miguel Castelo-Branco; Paulo de Carvalho; Henrique Madeira

MELECON 2022

Impact of Ultra-short-term HRV Features in Software Code Sections Complexity Classification

André Bernardes; Ricardo Couceiro; Júlio Medeiros; Jorge Henriques; César Teixeira; João Durães; Henrique Madeira; Paulo Carvalho

MELECON 2022

Spotting Problematic Code Lines using Nonintrusive Programmers' Biofeedback

Ricardo Couceiro; Raul Barbosa; Joáo Duráes; Gonçalo Duarte; Joáo Castelhano; Catarina Duarte; Cesar Teixeira; Nuno Laranjeiro; Júlio Medeiros; Paulo Carvalho; Miguel Castelo Branco; Henrique Madeira

ISSRE 2019

iReview: an Intelligent Code Review Evaluation Tool using Biofeedback

Haytham Hijazi; José Cruz; João Castelhano; Ricardo Couceiro; Miguel Castelo-Branco; Paulo de Carvalho; Henrique Madeira

ISSRE 2021

Brain Activations during Programming Tasks: TD-NIRS and EEG Study

Caterina Amendola, Alessandra Calcagno, Rebecca Re, Ileana Pirovano, Davide Contini, Lorenzo Spinelli, Ricardo Couceiro, João Durães, Raul Barbosa, Paulo de Carvalho, Henrique Madeira, Anna Maria Bianchi, and Alessandro Torricelli

ECBO 2021

Software Bug Detection Causes a Shift From Bottom-Up to Top-Down Effective Connectivity Involving the Insula Within the Error-Monitoring Network

Castelhano Joao, Duarte Isabel C., Couceiro Ricardo, Medeiros Julio, Duraes Joao, Afonso Sónia, Madeira Henrique, Castelo-Branco Miguel

Frontiers in Human Neuroscience

The role of the insula in intuitive expert bug detection in computer code: an fMRI study

Joao Castelhano, Isabel C. Duarte, Carlos Ferreira, Joao Durães, Henrique Madeira and Miguel Castelo-Branco

Brain Imaging and Behavior

Intelligent Biofeedback Augmented Content Comprehension (TellBack)

Haytham Hijazi, Ricardo Couceiro, João Castelhano, Paulo Carvalho, Miguel Castelo-Branco, Henrique Madeira

IEEE Access

Can EEG Be Adopted as a Neuroscience Reference for Assessing Software Programmers’ Cognitive Load?

Júlio Medeiros, Ricardo Couceiro, Gonçalo Duarte, João Durães, João Castelhano, Catarina Duarte, Miguel Castelo-Branco, Henrique Madeira, Paulo Carvalho, César Teixeira

Sensors

How Reliable Are Ultra-Short-Term HRV Measurements during Cognitively Demanding Tasks?

André Bernardes , Ricardo Couceiro, Júlio Medeiros, Jorge Henriques, César Teixeira, Marco SimõesORCID, João Durães, Raul Barbosa, Henrique Madeira and Paulo Carvalhodeira and Paulo Carvalho

Sensors 2022

Quality Evaluation of Modern Code Reviews Through Intelligent Biometric Program Comprehension

Haytham Hijazi, Joao Duraes, Ricardo Couceiro, Joao Castelhano, Raul Barbosa, Julio Medeiros, Miguel Castelo-Branco, Paulo De Carvalho, Henrique Madeira

IEEE Transactions on Software Engineering

Reading and Calculation Neural Systems and Their Weighted Adaptive Use for Programming Skills

Joao Castelhano, Isabel C. Duarte, Joao Duraes, Henrique Madeira and Miguel Castelo-Branco

Neural Plasticity

Can EEG Be Adopted as a Neuroscience Reference for Assessing Software Programmers’ Cognitive Load?

Júlio Medeiros, Ricardo Couceiro, Gonçalo Duarte, João Durães, João Castelhano, Catarina Duarte, Miguel Castelo-Branco, Henrique Madeira, Paulo de Carvalho and César Teixeira

Sensors

Software bug detection causes a shift from bottom-up to top-down effective connectivity involving the insula within the error monitoring network

João Castelhano, Isabel Duarte, Ricardo Couceiro, Júlio Medeiros, João Durães, Sónia Afonso, Henrique Madeira, Miguel Castelo-Branco

Frontiers of Neuroscience

Method and System for Scoring a Software Review Process

Haytham Hijazi, Henrique Madeira, Ricardo Couceiro, Paulo De Carvalho, Miguel Castelo-Branco, Joao Castelhano, Julio Medeiros, Raul Barbosa, Joao Duraes

PCT/IB2021/059461

Where we are


Share our work

Contact us


Name


Affiliation


E-mail


Subject


Message


Congratulations. Your message has been sent successfully.
Error, please retry. Your message has not been sent.