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 possíveis bugs (erros).
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 os próprios erros do 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.
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 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.
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.
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, 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».
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. Universidade
de Coimbra - Portugal
Sem comentários:
Enviar um comentário