ECSFlow: Implementação de um modelo de tratamento de exceção para C#
Tratamento de Exceções. Robustez. Manutenibilidade. Modularidade
As linguagens de programação convencionais, tais como C#, Ruby, Python e outras, fornecem mecanismos internos de tratamento de exceções afim de prover uma implementação de tratamento de exceções robusta e manutenível em sistemas de software. Essas linguagens suportam o que chamamos de mecanismos de tratamento de exceções dirigidos à manutenção, visto que elas reduzem as restrições de programação no tratamento de exceção buscando agilizar mudanças no código fonte. No entanto, muitos dos problemas que resultam do tratamento de exceção são causados pela forma local na qual as exceções são tratadas. Desta forma, os desenvolvedores devem compreender a origem da exceção, o local onde a exceção será tratada e todo o fluxo de controle excepcional entre esses dois pontos. Consequentemente, à medida que o desenvolvimento do software evolui, este fluxo torna-se cada vez menos conhecido, prejudicando a manutenção e robustez do sistema. Este trabalho apresenta uma implementação do modelo de tratamento de exceção para a linguagem C# denominada ECSFlow. Diferentemente de outros mecanismos de tratamento de exceção, este modelo provê abstrações para descrever o controle do fluxo excepcional numa visão global, permitindo entender o fluxo excepcional em uma perspectiva fim-a-fim, observando somente uma parte do código. Além disso, o modelo permite associar o tratamento de exceção ao código normal de forma mais flexível. Nós avaliamos qualitativamente e quantitativamente o modelo proposto através de um estudo de caso de uma aplicação web real