Pattern-Driven Maintenance: A Method to Prevent Unhandled Latent Exceptions in Web Applications
Resumo
Contexto: Exceções não tratadas afetam a confiabilidade, usabilidade e segurança em aplicações web. Detectar exceções não tratadas latentes de forma automatizada é uma tarefa difícil e específica de cada aplicação. Assim, abordagens gerais para tratar defeitos em aplicações web não tratam exceções não tratadas latentes apropriadamente. Objetivos: Projetar e avaliar um método que possa suportar encontrar, corrigir e prevenir exceções não tratadas em aplicações web. Método: Nós projetamos o método chamado Manutenção Orientada a Padrões (Pattern-Driven Maintenance - PDM), que consiste em identificar padrões de defeitos se baseando em falhas para produzir regras de análise estática que podem ser utilizadas para a prevenção de defeitos. Nós aplicamos PDM em duas aplicações web na indústria medindo a melhoria na confiabilidade das aplicações. Nós também avaliamos o reuso das regras de análise estática produzidas na mesma empresa e em outras empresas. Finalmente, nós estudamos a eficácia, os desafios encontrados e a aceitação de mantenedores novatos aplicando o método PDM. Resultados: Nos dois casos industriais, nós eliminamos completamente as falhas relacionadas a exceções não tratadas latentes melhorando assim a confiabilidade da aplicação. Algumas regras de análise estática produzidas pela aplicação do método PDM foram reutilizadas em software na mesma empresa e em outra empresa. Nós identificamos os conhecimentos e experiências que influenciam em aplicar os passos do método PDM de forma eficaz. Conclusões: O PDM pode ajudar os mantenedores a melhorar a confiabilidade de aplicações existentes. Nós disponibilizamos orientações sobre como utilizar o método, reutilizar as regras de análise estática produzidas, e quais conhecimentos e experiências são necessários para aplicar o PDM com eficácia.
Palavras-chave:
Pattern-Driven Maintenance, Latent Exceptions, Web Applications
Referências
Bourque, Pierre, Richard E Fairley, and others. 2014. Guide to the Software Engineering Body of Knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press.
Dogan, Serdar, Aysu Betin-Can, and Vahid Garousi. 2014. “Web Application Testing: A Systematic Literature Review.” Journal of Systems and Software 91: 174–201.
Ersoy, Ersin, and Hasan Sözer. 2016. “Extending Static Code Analysis with Application-Specific Rules by Analyzing Runtime Execution Traces.” In International Symposium on Computer and Information Sciences, 30–38.
Garousi, Vahid, Ali Mesbah, Aysu Betin-Can, and Shabnam Mirshokraie. 2013. “A Systematic Mapping Study of Web Application Testing.” Information and Software Technology 55 (8): 1374–96.
Heckman, Sarah, and Laurie Williams. 2011. “A Systematic Literature Review of Actionable Alert Identification Techniques for Automated Static Code Analysis.” Information and Software Technology 53 (4): 363–87.
ISO, I E C. 2010. “IEEE, Systems and Software Engineering--Vocabulary.” ISO/IEC/IEEE 24765: 2010 (E)) Piscataway, NJ: IEEE Computer Society, Tech. Rep.
Jones, Capers, and Olivier Bonsignour. 2011. The Economics of Software Quality. Addison-Wesley Professional.
Li, Yuan-Fang, Paramjit K Das, and David L Dowe. 2014. “Two Decades of Web Application Testing-A Survey of Recent Advances.” Information Systems 43: 20–54.
Mendonça, D.S., T.G. Da Silva, D.F. De Oliveira, J.S. Brando, H. Lopes, S.D.J. Barbosa, M. Kalinowski, and A. Von Staa. 2018. “Applying Pattern-Driven Maintenance: A Method to Prevent Latent Unhandled Exceptions in Web Applications.” In International Symposium on Empirical Software Engineering and Measurement. https://doi.org/10.1145/3239235.3268924.
Mendonça, Diogo, and Marcos Kalinowski. 2020a. “Towards Practical Reuse of Custom Static Analysis Rules for Defect Localization.” In Proceedings of Simpósio Brasileiro de Qualidade de Software (SBQS’20), 10. Natal: ACM.
Mendonça, Diogo Silveira. 2019. “Pattern-Driven Maintenance: A Method to Prevent Unhandled Latent Exceptions in Web Applications.” PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO - PUC-RIO. https://doi.org/10.17771/pucrio.acad.45455.
Mendonça, Diogo Silveira, and Marcos Kalinowski. 2020b. “An Empirical Investigation on the Challenges of Creating Custom Static Analysis Rules for Defect Localization.” ArXiv, November. http://arxiv.org/abs/2011.12886.
Muske, Tukaram, and Alexander Serebrenik. 2016. “Survey of Approaches for Handling Static Analysis Alarms.” In Source Code Analysis and Manipulation (SCAM), 2016 IEEE 16th International Working Conference On, 157–66.
Petroski, Henry, and Anthony J. Baratta. 1988. “To Engineer Is Humam—The Role of Failure in Successful Design.” The Physics Teacher.
SonarSource. 2008. “SonarQube.” 2008. https://www.sonarqube.org/.
Wieringa, Roel. 2014. Design Science Methodology for Information Systems and Software Engineering. Springer Berlin Heidelberg. https://doi.org/10.1145/1810295.1810446.
Dogan, Serdar, Aysu Betin-Can, and Vahid Garousi. 2014. “Web Application Testing: A Systematic Literature Review.” Journal of Systems and Software 91: 174–201.
Ersoy, Ersin, and Hasan Sözer. 2016. “Extending Static Code Analysis with Application-Specific Rules by Analyzing Runtime Execution Traces.” In International Symposium on Computer and Information Sciences, 30–38.
Garousi, Vahid, Ali Mesbah, Aysu Betin-Can, and Shabnam Mirshokraie. 2013. “A Systematic Mapping Study of Web Application Testing.” Information and Software Technology 55 (8): 1374–96.
Heckman, Sarah, and Laurie Williams. 2011. “A Systematic Literature Review of Actionable Alert Identification Techniques for Automated Static Code Analysis.” Information and Software Technology 53 (4): 363–87.
ISO, I E C. 2010. “IEEE, Systems and Software Engineering--Vocabulary.” ISO/IEC/IEEE 24765: 2010 (E)) Piscataway, NJ: IEEE Computer Society, Tech. Rep.
Jones, Capers, and Olivier Bonsignour. 2011. The Economics of Software Quality. Addison-Wesley Professional.
Li, Yuan-Fang, Paramjit K Das, and David L Dowe. 2014. “Two Decades of Web Application Testing-A Survey of Recent Advances.” Information Systems 43: 20–54.
Mendonça, D.S., T.G. Da Silva, D.F. De Oliveira, J.S. Brando, H. Lopes, S.D.J. Barbosa, M. Kalinowski, and A. Von Staa. 2018. “Applying Pattern-Driven Maintenance: A Method to Prevent Latent Unhandled Exceptions in Web Applications.” In International Symposium on Empirical Software Engineering and Measurement. https://doi.org/10.1145/3239235.3268924.
Mendonça, Diogo, and Marcos Kalinowski. 2020a. “Towards Practical Reuse of Custom Static Analysis Rules for Defect Localization.” In Proceedings of Simpósio Brasileiro de Qualidade de Software (SBQS’20), 10. Natal: ACM.
Mendonça, Diogo Silveira. 2019. “Pattern-Driven Maintenance: A Method to Prevent Unhandled Latent Exceptions in Web Applications.” PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO - PUC-RIO. https://doi.org/10.17771/pucrio.acad.45455.
Mendonça, Diogo Silveira, and Marcos Kalinowski. 2020b. “An Empirical Investigation on the Challenges of Creating Custom Static Analysis Rules for Defect Localization.” ArXiv, November. http://arxiv.org/abs/2011.12886.
Muske, Tukaram, and Alexander Serebrenik. 2016. “Survey of Approaches for Handling Static Analysis Alarms.” In Source Code Analysis and Manipulation (SCAM), 2016 IEEE 16th International Working Conference On, 157–66.
Petroski, Henry, and Anthony J. Baratta. 1988. “To Engineer Is Humam—The Role of Failure in Successful Design.” The Physics Teacher.
SonarSource. 2008. “SonarQube.” 2008. https://www.sonarqube.org/.
Wieringa, Roel. 2014. Design Science Methodology for Information Systems and Software Engineering. Springer Berlin Heidelberg. https://doi.org/10.1145/1810295.1810446.
Publicado
01/12/2020
Como Citar
MENDONÇA, Diogo; VON STAA, Arndt; KALINOWSKI, Marcos .
Pattern-Driven Maintenance: A Method to Prevent Unhandled Latent Exceptions in Web Applications. In: CONCURSO DE TESES E DISSERTAÇÕES EM QUALIDADE DE SOFTWARE - SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 19. , 2020, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 1-10.