Uma Abordagem De Definição e Verificação de Regras de Design no Tratamento de Exceções
tratamento excepcional, análise do fluxo excepcional, anti-patterns, ferramentas de análise estática.
Os mecanismos de tratamento de exceções são parte integrante de importantes linguagens de programação (e.g. C++, C#, Java), e consequentemente são bastante utilizados como forma de estruturar a detecção e a recuperação de condições excepcionais das aplicações modernas. Se por um lado, os mecanismos de tratamento de exceção auxiliam o desenvolvedor a estruturar o código de tratamento de exceções, por outro lado, um tratamento de exceções defeituoso (ou inadequado) pode ser uma das principais causas de crash das aplicações: exceções não capturadas (do inglês: uncaught exceptions) tem a capacidade de abortar a execução da aplicação, tornando-se um dos principais obstáculos a robustez de aplicações Java atuais.
Poucos foram os trabalhos propostos até o momento com o objetivo de auxiliar o desenvolvedor a projetar o tratamento de exceções de uma dada aplicação e verificar como este comportamento evolui ao longo das atividades de manutenção. O trabalho proposto tem o objetivo de propor uma suíte de ferramentas que auxilie o desenvolvedor: (i) na identificação de bugs no código excepcional causados pelas tarefas de manutenção; e, (ii) na compreensão do impacto das mudanças na política de tratamento excepcional. Esta suíte é baseada em uma linguagem específica de domínio que permite a especificação e verificação deste tratamento - ela deve permitir a especificação dos elementos comuns (por exemplo, fluxo excepcional e as respectivas ações de tratamento) e específicos (por exemplo, features para linhas de produtos) em diferentes contextos de sistemas Java.