UMA FERRAMENTA DE ANÁLISE ESTÁTICA PARA A MELHORIA DA ROBUSTEZ DE APLICAÇÕES .NET
Tratamento de Exceções. Robustez. Análise Estática. Plataforma .NET.
Um produto de software é considerado confiável quando ele consegue entregar suas funcionalidades da forma como elas foram definidas. Robustez é um sub-atributo de confiabilidade e diz respeito à capacidade do software em reagir especificamente a defeitos externos. Os mecanismos de tratamento de exceções deveriam garantir a robustez dos sistemas. Entretanto, na prática o que se tem é dificuldade para se atingir tal objetivo, seja por mau uso dos modelos existentes, seja pela deficiência dos próprios modelos. Além disso, percebe-se que os desenvolvedores que tratam as exceções da maneira mais completa possível acabam tendo problemas sérios de produtividade, ao passo que o seu negligenciamento embora seja mais produtivo, tende a gerar sistemas menos confiáveis e com subseqüente aumento do custo de pós-produção. Alguns desastres reais tiveram relação direta com o negligenciamento do tratamento de exceções, por exemplo: o caso do foguete europeu Ariane 5 que se auto-destruiu logo após o lançamento, e do sistema do radar brasileiro X-4000 que foi indicado como uma das causas do acidente aéreo do vôo GOL 1907 em 2006. Nesse contexto, este trabalho apresenta a ferramenta de análise estática eFlowMining, focada na melhoria da robustez de aplicações, mais especificamente da plataforma .NET. Ela permite que o desenvolvedor: visualize tabelas e gráficos de métricas coletadas sobre o tratamento de exceções, além de uma representação gráfica do fluxo excepcional; acompanhe o comportamento do tratamento de exceções através da evolução da aplicação; localize de forma rápida os tipos de exceções lançadas e seus respectivos tratadores; e registre em banco de dados o histórico das análises. A avaliação da ferramenta foi dividida em duas fases. A primeira teve o objetivo de mostrar os benefícios práticos providos pelo conjunto de métricas, através da execução da ferramenta em cinco aplicações .NET de diferentes linguagens. A segunda irá avaliar se a ferramenta ajuda a diminuir a quantidade de fluxos excepcionais não tratados nas aplicações .NET, através de um experimento com desenvolvedores de uma empresa de software da cidade de Natal/RN.