Dissertação

Automatic Dependency Identification for Isolation of Software Errors EVALUATED

Os erros de software são uma das principais causas das falhas dos sistemas informáticos. Estima-se que são responsáveis por 40% destas falhas, levando a enormes custos tanto para os produtores de software, como para os utilizadores. Num ciclo típico de desenvolvimento de software, uma grande quantidade de recursos é despendida a localizar erros. Para encontrar a causa de um erro, os programadores tipicamente executam os programas passo a passo observando muitas operações e variáveis que podem não ser relevantes para o problema em causa. É difícil destacar do código fonte as partes relevantes para o desencadeamento de um erro. Diversas ferramentas de diagnóstico podem ajudar neste processo de localização de erros. No entanto, estas ferramentas não são totalmente eficazes, pois requerem vários ciclos de re-execução. De modo a simplificar o processo de diagnóstico de erros, propomos uma ferramenta que fornece ao programador uma visualização da execução contendo as instruções e variáveis que podem estar relacionadas com a causa de um erro observado e com a qual podem rapidamente analisar diversos aspectos da execução, evitando os ciclos de re-execução. Esta ferramenta consiste, numa primeira instância, em instrumentar a aplicação para gravar as instruções que consideramos relevantes: atribuições, instruções condicionais e invocações a métodos. A partir da informação gravada durante a execução que reproduz o problema, apresenta um grafo de dependências entre variáveis e um grafo das instruções executadas. A ferramenta introduz uma penalidade no tempo de execução que é perfeitamente aceitável considerando o processo tradicional de desenvolvimento e teste de software.
Erros de Software, Depuração, Diagnóstico, Instrumentação

novembro 4, 2014, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Coelho Garcia

Departamento de Engenharia Informática (DEI)

Professor Auxiliar