RDBU| Repositório Digital da Biblioteca da Unisinos

CogEff: uma abordagem para mensurar a carga cognitiva de desenvolvedores em tarefas de compreensão de código

Mostrar registro simples

Autor Gonçales, Lucian José;
Lattes do autor http://lattes.cnpq.br/5798880473091490;
Orientador Oliveira, Kleinner Silva Farias de;
Lattes do orientador http://lattes.cnpq.br/2582456631204400;
Instituição Universidade do Vale do Rio dos Sinos;
Sigla da instituição Unisinos;
País da instituição Brasil;
Instituto/Departamento Escola Politécnica;
Idioma pt_BR;
Título CogEff: uma abordagem para mensurar a carga cognitiva de desenvolvedores em tarefas de compreensão de código;
Resumo A carga cognitiva refere-se ao esforço mental que os usuários aplicam ao desempenhar tarefas cognitivas tais como interpretar artefatos de software com diferentes níveis de abstração. A carga cognitiva na engenharia de software e importante devido ao potencial de considerar fatores humanos através de sinais fisiológicos enquanto desenvolvedores estão em sua rotina de trabalho. Por exemplo, enquanto estão trabalhando, desenvolvedores dedicam grande parte de seu tempo na compreensão de código. Mensurar a carga cognitiva através de indicadores psicofisiológicos possibilitaria uma correlação coerente da percepção dos desenvolvedores com as tarefas de compreensão de código. Enquanto indicadores psicofisiológicos refletem instantaneamente os estímulos dos desenvolvedores, métricas tradicionais apenas são consolidadas após a conclusão das tarefas. Por isso, abordagens de carga cognitiva são apontadas por ter potencial preditivo nas tarefas de engenharia de software. Para investigar a carga cognitiva na engenharia de software, pesquisadores combinam abordagens a partir de variados tipos de dispositivos psicofisiológicos. Por exemplo, a partir do eletroencefalograma (EEG) pesquisadores ja utilizaram diretamente abordagens tais como o Assymetry Ratio (ASR), o Event-Related Desyncronization (ERD), e as potencias de banda das ondas alfa (α), beta (β), delta (δ), e theta (θ). A partir do sensor fMRI, pesquisadores também utilizaram o Blood Oxygen Level Dependent (BOLD) para realçar quais áreas cerebrais são ativas durante a compreensão de código. Porém, apesar dessas técnicas serem relacionadas a carga cognitiva, ainda falta uma abordagem para mensurar a carga cognitiva em tarefas de compreensão de código. Isto implica em uma série de problemas identificados nesta área: (1) ausência de uma classificação do estado da arte sobre medidas da carga cognitiva na engenharia de software; (2) falta de abordagem para mensurar a carga cognitiva na engenharia de software; (3) escassez de analises de correlação de abordagens utilizadas para mensurar a carga cognitivas em tarefas de compreensão de código; (4) ausência da avaliação da efetividade para a utilização de dados EEG para classificar a compreensão de código utilizando técnicas de machine learning. Por isso, esta pesquisa busca: (1) realizar um estudo de mapeamento sistemático para classificar as pesquisas sobre medidas da carga cognitiva na engenharia de software; (2) desenvolver uma tecnica para mensurar a carga cognitiva atraves de dados EEG em tarefas de compreensao de software, chamada de CogEff; (3) analise da correlação entre abordagens de EEG tradicionais, e da abordagem CogEff em relação a tarefas de compreensão de codigo; (4) analise da efetividade ao utilizar abordagens tradicionais de EEG para classificar compreensão de código. Os principais resultados são: (1) a partir da classificacao dos estudos foi constatado que 37% (23/63) dos estudos adotaram dispositivos multimodais; e 59% (37/63) dos estudos analisaram a carga cognitiva em tarefas de programação, tais como, compreensão de código; (2) abordagem CogEff possui potencial de medir a carga cognitiva através da conectividade dos canais EEG; (3) os testes de correlação apresentaram que as abordagens de EEG tradicionais, e a CogEff possuem correlação com a compreensão de código; (4) o classificador K-Nearest Neighbors obteve uma media de f-measure de 86% para classificar a compreensão do código.;
Abstract Cognitive load refers to the mental effort that users spend when performing cognitive tasks such as interpreting software artifacts with different levels of abstraction. Cognitive load in software engineering is important due to the potential for considering human factors through physiological signals while users are in their work routine. For instance, developers spend most of their time understanding code while working. Measuring the cognitive load using psychophysiological indicators would enable a coherent correlation between the developers’ perception and the code comprehension tasks. While psychophysiological indicators instantly reflect user stimuli, traditional metrics consolidate after comprehension tasks finish. Therefore, literature recognizes that cognitive load approaches have high predictive potential in software engineering tasks. Researchers have investigated the cognitive load in software engineering by combining various approaches from diferente psychophysiological devices. For example, from the electroencephalogram (EEG) researchers have already directly used approaches such as as the Assymetry Ratio (ASR), the Event-Related Desyncronization (ERD), and the band power of the alpha (α), beta (β), delta (δ), and theta (θ) waves. Using the fMRI sensor, researchers also used the Blood Oxygen Level Dependent (BOLD) to highlight which brain areas are active during code comprehension tasks. However, despite these techniques’ relation to cognitive load, an approach to measure cognitive load in code comprehension tasks is still lacking. Thus, there is a series of problems identified in this area: (1) Absence of a state-of-the-art classification on measures of cognitive load in software engineering; (2) Lack of approach to measure cognitive load in software engineering; (3) Absence of correlation analysis of approaches used to measure cognitive load in code comprehension tasks; (4) Lack of evaluation of effectiveness for using EEG data to classify code comprehension using machine learning techniques. Therefore, this research aims to: (1) Conduct a systematic mapping study to classify research on measures of cognitive load in software engineering; (2) Develop a technique to measure cognitive load through EEG data in software comprehension tasks, named as CogEff; (3) Analyze the correlation between traditional EEG approaches, and the CogEff approach with code comprehension tasks; (4) Analyze the effectiveness of classifying code comprehension trained with traditional EEG approaches. The main results are: (1) Based on the classification, 37% (23/63) of the studies adopted multimodal devices; and 59% (37/63) of the studies analyzed the cognitive load in programming tasks, such as code comprehension; (2) CogEff approach has the potential to measure cognitive load through EEG channel connectivity; (3) Correlation tests showed that traditional EEG approaches, and CogEff correlates with code comprehension; (4) The K-Nearest Neighbors classifier obtained an average f-measure of 86% to classify code comprehension based on EEG data.;
Palavras-chave Compreensão de código; Carga cognitiva; Engenharia de Software; Code comprehension; Cognitive load; Software engineering;
Área(s) do conhecimento ACCNPQ::Ciências Exatas e da Terra::Ciência da Computação;
Tipo Tese;
Data de defesa 2022-03-31;
Agência de fomento CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior;
Direitos de acesso openAccess;
URI http://www.repositorio.jesuita.org.br/handle/UNISINOS/11418;
Programa Programa de Pós-Graduação em Computação Aplicada;


Arquivos deste item

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Buscar

Busca avançada

Navegar

Minha conta

Estatística