Export Ready — 

Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback

Bibliographic Details
Main Author: Medeiros, Júlio Cordeiro
Publication Date: 2019
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: https://hdl.handle.net/10316/87868
Summary: Dissertação de Mestrado Integrado em Engenharia Biomédica apresentada à Faculdade de Ciências e Tecnologia
id RCAP_53b04b5467f79cc6f4e53a533351d397
oai_identifier_str oai:estudogeral.uc.pt:10316/87868
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedbackAvaliação da complexidade do código de software usando características de EEG: Em direção a um novo paradigma de engenharia de software usando biofeedbackProcessamento de Bio-sinaisElectroencefalogramaBiofeedbackEngenharia de SoftwareBio-signal ProcessingElectroencephalogramBiofeedbackSoftware EngineeringDissertação de Mestrado Integrado em Engenharia Biomédica apresentada à Faculdade de Ciências e TecnologiaO presente estudo foi desenvolvido no âmbito do projeto BASE, Biofeedback Augmented SoftwareEngineering (POCI - 01-0145 - FEDER-031581) que se encontra a decorrer, e que visa a monitorização das funções cognitivas do cérebro durante o desenvolvimento de código de software, de modo a detectar possíveis bugs que possam ocorrer devido a mudanças no estado emocional do programador. Mais especificamente, o objetivo deste estudo inicial é investigar a atividade cerebral durante a compreensão do código por meio da análise de sinais de Eletroencefalograma (EEG) adquiridos de vários voluntários e tentar estabelecer possíveis biomarcadores de EEG sensíveis a diferentes níveis de carga mental. O uso de EEG para esse fim é relevante, uma vez que os estudos existentes em detecção de bugs foram principalmente focados em técnicas de neuroimagem com base em Functional Magnetic Ressonance Imaging (fMRI), as quais apresentam desvantagens, como por exemplo, o desconforto para o sujeito e a impossibilidade de serem adquiridas em condições normais de programação.O presente estudo foi conduzido usando informação de 64 canais de EEG adquiridos de 30 participantes durante tarefas de compreensão de código. Os sujeitos foram submetidos a três ensaios diferentes, correspondentes a três tarefas de compreensão do código de diferente dificuldade. Os três níveis diferentes de complexidade de código considerados foram de acordo com cinco métricas de complexidade de software amplamente utilizadas na area de engenharia de software.Através de uma sequência de métodos de pré-processamento, artefatos foram identificados e removidos dos sinais de EEG, para posteriormente proceder-se à extração de caraterísticas lineares e não lineares. Assim, foi possível investigar a possibilidade de distinguir diferentes níveis de complexidade com base nas características do EEG. Para isso, foram utilizados diferentes tipos de modelos de classificação, binário ou multiclasse, através da combinação de quatro métodos de seleção/redução de caracteristicas com quatro classificadores diferentes.Considerando um modelo multiclasse utilizando Principal Component Analysis (PCA) e o classificador Support Vector Machine (SVM) com kernel linear, obteve-se um F-Measure de 93.60% para a complexidade do código fácil, 50.60% para a complexidade do código intermédio, 47.09% para a complexidade do código avançada e 94.42% para a tarefa de controlo (leitura de texto). Estes resultados revelam uma evidência de saturação do esforço mental com o aumento da complexidade do código e também sugerem que as métricas de complexidade de código usadas actualmente não captam a carga cognitiva, e por isso podem não ser a melhor abordagem para avaliar o risco de bugs nos códigos.A partir da análise realizada neste estudo, também se verificou que as características relacionadas com as atividades Teta, Alfa e Beta foram as mais comuns entre as características selecionadas com maior poder de discriminação da complexidade das tarefas. No que respeita aos canais que contribuíram com mais informação, eles estavam localizados predominantemente na região frontal (principalmente em Fz, F2 e FCz), centro-parietal (principalmente em CPZ e CP2) e parietal (principalmente em Pz). Estes resultados estão de acordo com as características e regiões (lobos frontal e parietal) relatadas em estudos relacionados, como sendo as mais relevantes para medir a carga cognitiva nas áreas investigação de compreensão de código e da carga de trabalho mental.Por fim, como estudo preliminar, utilizando duas das características mais discriminantes, foi explorada a possibilidade de realizar-se uma análise espaço-temporal, a fim de identificar áreas que exibiram um esforço mental elevado durante a tarefa de código que está sendo realizado. Estas áreas foram comparados com (i) os aglomerados dos dados do Eye tracking; (ii) as regiões críticas apontadas por profissionais especializados; e (iii) outros dois biosinais (Variabilidade da Frequência Cardíaca e Pupilografia).This study was developed on behalf of the on-going project BASE, Biofeedback Augmented Software Engineering (POCI - 01-0145 - FEDER- 031581), which aims at monitoring cognitive functions of the brain during code development to detect possible bugs that might occur due to shifts in the emotional condition of the subject. Specifically, the goal of this initial study is to investigate the brain activity during code comprehension through the analysis of Electroencephalogram (EEG) signals acquired from multiple volunteers and try to establish possible EEG biomarkers sensitive to different levels of mental workload. The use of EEG for this purpose is relevant, since the existing studies in bug detection were mostly focused on neuroimaging techniques based on fMRI, which have disadvantages, such as subject discomfort and impossibility to be acquired in normal programming condition.The study reported herein was conducted using information from 64 channels of EEG recorded from 30 subjects during code comprehension tasks. The subjects were submitted to three different trials corresponding to three different difficulty code comprehension tasks. The three different code complexity levels considered were according to five software complexity metrics widely used. Through a sequence of preprocessing methods, artifacts were identified and removed from EEG signals for further extraction of linear and nonlinear features. Then, the possibility to distinguish different levels of complexity based on EEG features was investigated. For this purpose, different types of classification models were considered, either binary or multiclass, by combining four different feature selection/reduction methods with four different classifiers. Considering a multiclass model using Principal Component Analysis (PCA) and a Support Vector Machine (SVM) classifier with linear kernel, it was obtained a F-Measure of 93.60% for code complexity easy, 50.60% for code complexity intermediate, 47.09% for code complexity advanced and 94.42% for the control (reading) task. These results reveals an evidence of mental effort saturation as code complexity increases and also suggest that current code complexity metrics do not capture cognitive load and might not be the best approach to assess bug risk.From the analysis, it was also found that the features related with the Theta, Alpha and Beta activity were the most common among the selected features with highest discriminative power. Concerning the channels which contributed with more information, they were located predominantly in frontal (mainly in Fz, F2 and FCz), central-parietal (mainly in CPz and CP2) and parietal (mainly in Pz) regions. These findings are in agreement with the features and regions (Frontal and Parietal Lobes) more relevant to cognitive load in the areas of mental workload and code comprehension, reported in related studies.Finally, as a preliminary study, using two of the most discriminant features, it was explored the possibility of a space-temporal analysis in order to spot areas that exhibited a higher mental effort during the code task being performed. These areas were compared to the (i) clusters of Eye tracking data; (ii) critical regions pointed by expert professionals; and (iii) other two biosignals (Heart Rate Variability and Pupillography).Outro - BASE, Biofeedback Augmented Software Engineering (POCI - 01-0145 - FEDER- 031581), funded by FCT.2019-09-25info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttps://hdl.handle.net/10316/87868https://hdl.handle.net/10316/87868TID:202308901engMedeiros, Júlio Cordeiroinfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2021-06-16T10:40:04Zoai:estudogeral.uc.pt:10316/87868Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T05:35:41.053513Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
Avaliação da complexidade do código de software usando características de EEG: Em direção a um novo paradigma de engenharia de software usando biofeedback
title Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
spellingShingle Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
Medeiros, Júlio Cordeiro
Processamento de Bio-sinais
Electroencefalograma
Biofeedback
Engenharia de Software
Bio-signal Processing
Electroencephalogram
Biofeedback
Software Engineering
title_short Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
title_full Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
title_fullStr Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
title_full_unstemmed Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
title_sort Software code complexity assessment using EEG features: Towards a new software engineering paradigm using biofeedback
author Medeiros, Júlio Cordeiro
author_facet Medeiros, Júlio Cordeiro
author_role author
dc.contributor.author.fl_str_mv Medeiros, Júlio Cordeiro
dc.subject.por.fl_str_mv Processamento de Bio-sinais
Electroencefalograma
Biofeedback
Engenharia de Software
Bio-signal Processing
Electroencephalogram
Biofeedback
Software Engineering
topic Processamento de Bio-sinais
Electroencefalograma
Biofeedback
Engenharia de Software
Bio-signal Processing
Electroencephalogram
Biofeedback
Software Engineering
description Dissertação de Mestrado Integrado em Engenharia Biomédica apresentada à Faculdade de Ciências e Tecnologia
publishDate 2019
dc.date.none.fl_str_mv 2019-09-25
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/10316/87868
https://hdl.handle.net/10316/87868
TID:202308901
url https://hdl.handle.net/10316/87868
identifier_str_mv TID:202308901
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833602406377586688