erros de programacao
Projeto BASE já obteve alguns resultados tangíveis na identificação e prevenção de erros de programação

Um projeto liderado por Henrique Madeira, professor catedrático do Departamento de Engenharia Informática (DEI) da Faculdade de Ciências e Tecnologia da Universidade de Coimbra (FCTUC), demonstrou que é possível, através de ferramentas inteligentes, detetar se um programador está ou não a compreender o software que está a ler, verificar ou construir e, desta forma, ajudar a prevenir erros de programação (bugs).

O “Base – Biofeedback Augmented Software Engineering” é um projeto interdisciplinar que agrega investigadores de vários domínios científicos, designadamente neurociências, biomédica e inteligência artificial e engenharia de software. Da parte das neurociências, a equipa, coordenada pelo Professor Miguel Castelo Branco, procura 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 ativação cerebral quando se descobre um bug.

Já o grupo de biomédica e inteligência artificial, coordenado pelo Professor Paulo de Carvalho, investiga processos não intrusivos de medir a carga cognitiva de programadores, bem como avaliar estados cognitivos de stress, distração ou fadiga de programadores. Por sua vez, a equipa do professor Henrique Madeira, de engenharia de software, é responsável por desenvolver novas ferramentas de apoio ao programador de software, isto é, ferramentas que consigam prever erros do programação do próprio programador. 

Segundo Henrique Madeira, «o problema da falta de qualidade de software há muito que é investigado, mas não na perspetiva do elemento mais importante no processo da construção do software, o programador». Nesta linha de investigação, o projeto BASE já obteve alguns resultados tangíveis.

iReview avalia qualidade da revisão que é feita na deteção de erros de programação

Um primeiro resultado foi demonstrar, de uma forma prática, que é possível «dotar o ambiente de desenvolvimento de software de novas funções para ajudar o programador, particularmente indicar o código que deve ser (re)visto com mais cuidado. A pessoa está a programar e a ferramenta vai marcando, a amarelo ou a vermelho, as zonas de código que devem ser revistas», explica o investigador.

A partir daqui, foi desenvolvida a iReview, uma ferramenta já patenteada, que avalia «a qualidade das reviews (revisões)» de um programador. Por exemplo, «um módulo de software é produzido por um autor, sendo depois revisto por outro elemento da equipa, que pode detetar erros de programação e enviar de volta para o autor corrigir, ou pelo contrário, não se aperceber de possíveis bugs e enviar o módulo para produção. A interação entre quem programa e quem verifica é extremamente falível, e a iReview pretende especificamente identificar essas falhas», considera.

Em concreto, a iReview avalia a qualidade da revisão feita pelo revisor, indicando se a revisão deve ou não ser repetida. Caso sinalize a necessidade de repetição, são apontadas as zonas do código que têm de ser analisadas com mais atenção, explicando ainda a razão pela qual é necessária uma segunda revisão.

LEIA TAMBÉM: Roteiros turísticos: Framie é a app ideal para o viajante moderno, “mobile” e sempre “online”

No âmbito do projeto, está também a ser desenvolvida a ferramenta iMind, que é uma «generalização» da iReview, idealizada com o objetivo de ajudar indivíduos a compreender conteúdos digitais, como, por exemplo, no estudo de uma língua estrangeira. «O processo é o mesmo, mas a ler um texto em vez de rever código de software. Por exemplo, se houver uma passagem que a pessoa não entenda no texto, a ferramenta indica de forma automática a tradução ou dá uma sugestão. Ainda estamos longe de atingir este resultado, mas pelo menos já provámos que a ferramenta consegue indicar se a pessoa entendeu um parágrafo ou não», afirma.

Resultados do projeto vão ter um enorme impacto

Para chegar a estes resultados, a equipa do BASE começou por estudar o elemento central do projeto, o programador, desde a parte da neurociência, porque é a nível mental que cometemos erros de programação, até à manifestação dos mesmos a nível fisiológico, uma vez que essas reações se podem traduzir em ferramentas que ajudam os programadores.

Para tal, foram realizadas várias experiências com equipamentos sofisticados, envolvendo a participação de dezenas de voluntários. Essencialmente, os grupos de programadores executavam tarefas típicas de engenharia de software. «Fizemos três tipos de experiências, recorrendo a ressonâncias magnéticas, eletroencefalogramas, equipamentos para o sistema nervoso autónomo, sensores cardíacos e rastreadores oculares, que permitiam, no fundo, recolher uma enorme quantidade de informação durante os momentos em que eles desempenhavam essas tarefas», descreve o investigador, que acredita que «os resultados deste projeto vão ter muito impacto, pelo menos o potencial de impacto é muito grande».

LEIA TAMBÉM: App para afasia é a primeira com comunicação aumentativa e alternativa em Portugal

O BASE resulta de um consórcio entre o Centro de Informática e Sistemas da Universidade de Coimbra (CISUC), do Departamento de Engenharia Informática da FCTUC, o Coimbra Institute for Biomedical Imaging and Translational Research (CIBIT) da Universidade de Coimbra, e o Politécnico de Milão, tendo sido financiado pela Fundação para a Ciência e a Tecnologia (FCT), no valor de 239 mil euros.

Gabinete de Imprensa:

Sara Machado

Assessora de Imprensa 

Universidade de Coimbra • Faculdade de Ciências e Tecnologia

96 9728546

FONTEFaculdade de Ciências e Tecnologia da Universidade de Coimbra
Artigo anteriorPassagem de ano em Gaia: WOW entrou em “countdown” e… a esgotar
Próximo artigoCandidados Fantasma: 4 dicas para contrariar a tendência
Envie-nos o seu press release através do nosso formulário de submissão e potencie a visibilidade da sua marca, empresa, ideia ou projeto. Se tiver dúvidas sobre a elaboração de uma nota à comunicação social, leia o nosso artigo "Como Fazer um Press Release".