Programadores à prova de erros: investigadores da Universidade de Coimbra criam software para aprimorar a revisão de código

Um novo projecto da UC levou à criação de uma ferramenta inteligente que percebe se um programador está ou não a compreender o software que está a ler, verificar ou a escrever.

O processo que leva a escrita de código para programar um software pode ser um verdadeiro viveiro de erros, que depois dão origem a bugs que acabam por influenciar de forma negativa a experiência do utilizador.

Aqui, há alguns detalhes que podem fugir mesmo aos programadores mais atentos, quer por distracção, quer por falta de conhecimento. Foi precisamente por esta “porta” que entraram os investigadores da Universidade de Coimbra (UC): o resultado foi a criação de uma «ferramenta inteligente» que percebe se um «programador está ou não a compreender o software que está a ler, verificar ou construir» para, assim, «ajudar a prevenir possíveis bugs».

O projecto BASE (Biofeedback Augmented Software Engineering) começou por estudar o comportamento dos programadores: «Analisámos desde a parte da neurociência, porque é a nível mental que cometemos erros, até à manifestação dos mesmos a nível fisiológico, uma vez que essas reacções se podem traduzir em ferramentas que podem ajudar», explica Henrique Madeira, professor catedrático da UC e líder desta investigação.

Nesta fase foram usadas «ressonâncias magnéticas, eletroencefalogramas, equipamentos para o sistema nervoso autónomo, sensores cardíacos e rastreadores oculares» para perceber o comportamento e as tomadas de decisão dos programadores.

©Universidade de Coimbra - Henrique Madeira
©Universidade de Coimbra | Henrique Madeira, professor catedrático do Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra, é o líder deste projecto.

O objectivo foi «identificar as zonas do cérebro envolvidas no erro humano no contexto de produção de software, tentando perceber, por exemplo, se existe um padrão de activação cerebral quando se descobre um bug».

Os dados foram, depois, usados para criar a iReview, uma nova “camada” a usar no processo de revisão de código que indica, ao programador, as partes de código que devem «ser (re)vistas com mais cuidado» – isto é feito a amarelo ou vermelho, de acordo com o nível de propensão a erros.

«A interacção entre quem programa e quem verifica é extremamente falível – a iReview pretende especificamente identificar essas falhas», garante Henrique Madeira, ao «avalia a qualidade da revisão feita pelo revisor, indicando se a revisão deve ou não ser repetida»; a ferramenta até explica a «razão pela qual é necessária uma segunda revisão».

O líder do projecto BASE (que garantiu um financiamento da FCT no valor de 239 mil euros) acredita que os resultados da entrada em acção da iReview vão ter «muito impacto» – pelo menos o «potencial de impacto é muito grande», conclui Henrique Madeira.