Avaliando a Robustez e Manutenibilidade do Comportamento Excepcional em Aplicações C#
Tratamento de exceções, confiabilidade, manutenibilidade, robustez.
As linguagens de programação convencionais fornecem mecanismos de tratamento de exceções internos a fim de prover implementação de exceções robustas e manuteníveis em sistemas de software. A maioria dessas linguagens modernas, tais como C#, Ruby, Python e muitas outras, frequentemente afirmam ter mecanismos de tratamento de exceção mais apropriados. Elas reduzem as restrições de programação no tratamento de exceção buscando agilizar mudanças no código fonte. Essas linguagens suportam o que chamamos de mecanismos de tratamento de exceções dirigidos a manutenção. Espera-se que a adoção desses mecanismos aumentem a manutenibilidade dos softwares sem impactar na robustez. Entretanto existe pouco conhecimento acerca do impacto que a adoção desses mecanismos tem na robustez de sistemas de software. Este trabalho busca preencher essa lacuna conduzindo um estudo experimental direcionado ao entendimento da relação entre mudanças em programas C# e sua robustez. Em particular, foi avaliado como mudanças nos códigos normal e excepcional se relacionam com faltas no tratamento de exceção. Foi aplicado uma análise de impacto de mudança e uma análise de fluxo de controle em 119 versões de 16 programas escritos em C#. A partir dos dados coletados, este trabalho identificou os elementos do trade-off entre manutenibilidade e robustez.