“Vestível Controlador” pode ter muitas outras falhas


por Jade Scobri
| Curitiba, Brasil

Fontes próximas à equipe de desenvolvimento do iWear sugerem que há outros problemas no código do dispositivo que podem estar relacionados à falha que causou a paralisação motora da piloto Alberta Dumont, da Capivaras Airlines, em agosto passado. A aeronave seguiu sua rota até seu combustível acabar e caiu com 113 pessoas a bordo.

A SBC Horizontes conseguiu mais trechos de código do dispositivo que revelam diversos problemas. Em um deles, a variável que deveria registrar a informação relacionada ao nível de estresse do usuário recebe um valor inicial muito acima dos valores considerados normais. A informação sobre o nível de estresse é então obtida por uma função que mede o nível de estresse do usuário em tempo real. Porém, de acordo com a fonte, o código implementado reconhece apenas o gênero Masculino e Feminino, que são duas das três opções configuráveis na interface do dispositivo. 

Segundo nossa fonte, “a interface de configuração do iWear permite que o usuário escolha entre três opções para indicar o gênero: masculino (1), feminino (2) ou outro / prefiro não informar (3). Como a configuração do dispositivo ocorre por comandos de voz, a opção 3 é utilizada também quando o assistente não reconhece a entrada como 1 ou 2.

Var 

X : Integer;

iStress : Integer;

X := fGenero(); {identifica o gênero do usuário}

iStress := 999; {inicializa a variável}

Case X Of

          1 : iStress := fMedirStress()-7; {se Masculino, reduz 10}

          2 : iStress := fMedirStress()+11; {se Feminino, aumenta 10}

     End;

O problema, segundo a nossa fonte, é que a interface de configuração oferece uma terceira opção que não é utilizada na hora de atualizar o valor da variável que guarda a informação sobre o nível de estresse do usuário. “Isso faz com que a variável não seja atualizada e permaneça com o valor que recebeu ao ser inicializada. Se esse valor for muito diferente do valor real, então temos um problema sério!

Mostramos o código à Professora Carmem Hara, da UFPR, que confirmou os problemas indicados pela nossa fonte.

O código certamente possui problemas sérios que impactarão o seu funcionamento. Há valores arbitrários utilizados para inicializar ou atualizar variáveis. Por exemplo, não é possível saber porque a variável iStress é inicializada com 999. E quando essa variável é atualizada com o valor obtido pela função fMedirStress(), não é possível saber porque o valor é reduzido em 7 quando o usuário é do gênero masculino mas aumentado em 10 quando a usuária é do gênero feminino. Valores, aliás, que estão diferentes do indicado nos comentários do código.” 

A Professora adiciona: “O problema fica ainda mais sério porque não há atualização da variável quando o gênero do usuário estiver configurado como outro ou quando o usuário preferir não informar. Nesse caso, a variável não será atualizada com o valor que representa o nível de estresse real do usuário, e permanecerá com o valor de 999 utilizado em sua inicialização”. 

Carmem chamou a atenção para a baixa qualidade da documentação do código, e criticou a especificação baseada em post-its para uma funcionalidade de caráter crítico. Para a professora, esse trecho de código já é preocupante e mostra a necessidade de uma auditoria em todo o código do dispositivo. 

Perguntamos à nossa fonte sobre os valores utilizados como padrão. Segundo ela, a Vina Systems possui diversas bases de dados rotuladas por especialistas e utilizadas por algoritmos de inteligência artificial. “Para identificar o nível de estresse do usuário, os dados obtidos pelo dispositivo servem de entrada para um modelo treinado com uma base de dados da Vina. São utilizadas bases de treinamento e de testes para garantir a precisão dos resultados.

Sobre os valores específicos para cada gênero, porém, nossa fonte não soube dizer a origem ou justificativa: “Pode ser um valor de calibração, ou pode ter sido algo gerado automaticamente por um chat como o gpt… mas não sei… é preciso perguntar ao Malcom, que foi quem implementou esse código. Talvez ele tenha esquecido de ajustar algo, ou até tenha sido um pedido dos responsáveis pelo projeto.

A reportagem procurou a gerente de projetos responsável pelo iWear na Vina Systems para saber como os valores utilizados como referência no código foram obtidos, e se ferramentas de IA foram utilizadas para gerar partes do projeto, porém não obtivemos retorno até o final desta reportagem. A SBC Horizontes tentou contatar novamente o programador, porém ainda não obteve resposta.

Jade Scobri, Jornalista Científica
Especialista em Tecnologias Computacionais

 


O Caso do Vestível Controlador © 2022 by Roberto Pereira, Fabiano Silva and Leticia Mara Peres is licensed under CC BY-NC-SA 4.0.