Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3267183.3267191acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbcarsConference Proceedingsconference-collections
research-article

Analysing the Evolution of Exception Handling Anti-Patterns in Large-Scale Projects: A Case Study

Published: 17 September 2018 Publication History

Abstract

Previous studies have shown that exception handling bad practices may impact the overall software quality. We believe that quality of exception handling code is directly affected by (i) an absence, or lack of awareness, of an explicit exception handling policy; and (ii) a silent rising and spreading of exception handling anti-patterns. To investigate such phenomenon, we conducted a case study in a large-scale Java Web system, trying to better understand the relationship between (i) and (ii). The study takes into account technical and human aspects. We surveyed 21 developers regarding their perception about exception handling in the system's institution. Next, we analyse the evolution of exception handling anti-patterns across 15 releases of the target system. Finally, we conduct a semi-structured interview with three senior software architects. Our finds beneficiated the system's institution by making it aware of these problems and enabling it to take actions towards to combat them.

References

[1]
Eiji Adachi Barbosa and Alessandro Garcia. 2017. Global-Aware Recommendations for Repairing Violations in Exception Handling. IEEE Transactions on Software Engineering PP, 99 (2017), 1--1.
[2]
Eiji Adachi Barbosa, Alessandro Garcia, and Simone Diniz Junqueira Barbosa. 2014. Categorizing faults in exception handling: A study of open source projects. In Software Engineering (SBES), 2014 Brazilian Symposium on. IEEE, 11--20.
[3]
Eiji Adachi Barbosa, Alessandro Garcia, Martin P. Robillard, and Benjamin Jakobus. 2016. Enforcing Exception Handling Policies with a Domain-Specific Language. IEEE Transactions on Software Engineering 42, 6 (2016), 559--584.
[4]
Peter A. Buhr and W. Y. Russell Mok. 2000. Advanced Exception Handling Mechanisms. IEEE Transactions on Software Engineering 26 (September 2000), 820--836. Issue 9.
[5]
Nelio Cacho, Eiji Adachi Barbosa, Juliana Araujo, Frederico Pranto, Alessandro Garcia, Thiago Cesar, Eliezio Soares, Arthur Cassio, Thomas Filipe, and Israel Garcia. 2014. How does exception handling behavior evolve? an exploratory study in Java and C# applications. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on. IEEE, 31--40.
[6]
Nélio Cacho, Thiago César, Thomas Filipe, Eliezio Soares, Arthur Cassio, Rafael Souza, Israel Garcia, Eiji Adachi Barbosa, and Alessandro Garcia. 2014. Trading Robustness for Maintainability: An Empirical Study of Evolving C# Programs. In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014). 584--595.
[7]
Byeong-Mo Chang and Kwanghoon Choi. 2016. A Review on Exception Analysis. Inf. Softw. Technol. 77, C (Sept. 2016), 1--16.
[8]
Chien-Tsun Chen, Yu Chin Cheng, Chin-Yun Hsieh, and I-Lang Wu. 2009. Exception handling refactorings: Directed by goals and driven by bug fixing. Journal of Systems and Software 82, 2 (2009), 333--345.
[9]
John W Creswell. 2014. Research design: Qualitative, quantitative, and mixed methods approaches. Sage publications. 245--250 pages.
[10]
Guilherme Bicalho de Pádua and Weiyi Shang. 2017. Studying the prevalence of exception handling anti-patterns. In Proceedings of the 25th International Conference on Program Comprehension. IEEE Press, 328--331.
[11]
Georgios Digkas, Mircea Lungu, Alexander Chatzigeorgiou, and Paris Avgeriou. 2017. The evolution of technical debt in the apache ecosystem. In European Conference on Software Architecture. Springer, 51--66.
[12]
Felipe Ebert and Fernando Castor. 2013. A study on developers' perceptions about exception handling bugs. In Software Maintenance (ICSM), 2013 29th IEEE International Conference on. IEEE, 448--451.
[13]
Felipe Ebert, Fernando Castor, and Alexander Serebrenik. 2015. An exploratory study on exception handling bugs in Java programs. Journal of Systems and Software 106 (2015), 82--101.
[14]
Juarez L. M. Filho, Lincoln Rocha, Rossana Andrade, and Ricardo Britto. 2017. Preventing Erosion in Exception Handling Design Using Static-Architecture Conformance Checking. Springer International Publishing, Cham, 67--83.
[15]
Alessandro F Garcia, Cecılia MF Rubira, Alexander Romanovsky, and Jie Xu. 2001. A comparative study of exception handling mechanisms for building dependable object-oriented software. Journal of systems and software 59, 2 (2001), 197--222.
[16]
Maria Kechagia and Diomidis Spinellis. 2014. Undocumented and Unchecked: Exceptions That Spell Trouble. In Proceedings of the 11th Working Conference on Mining Software Repositories (MSR 2014). ACM, New York, NY, USA, 312--315.
[17]
Ana Filipa Nogueira, José CB Ribeiro, and Mário A Zenha-Rela. 2017. Trends on empty exception handlers for Java open source libraries. In Software Analysis, Evolution and Reengineering (SANER), 2017 IEEE 24th International Conference on. IEEE, 412--416.
[18]
Juliana Oliveira, Deise Borges, Thaisa Silva, Nelio Cacho, and Fernando Castor. 2018. Do android developers neglect error handling? a maintenance-Centric study on the relationship between android abstractions and uncaught exceptions. Journal of Systems and Software 136, Supplement C (2018), 1--18.
[19]
Haidar Osman, Andrei Chiş, Claudio Corrodi, Mohammad Ghafari, and Oscar Nierstrasz. 2017. Exception evolution in long-lived Java systems. In Proceedings of the 14th International Conference on Mining Software Repositories. IEEE Press, 302--311.
[20]
Per Runeson, Martin Host, Austen Rainer, and Bjorn Regnell. 2012. Case study research in software engineering: Guidelines and examples. John Wiley & Sons.
[21]
Puntitra Sawadpong and Edward B Allen. 2016. Software Defect Prediction Using Exception Handling Call Graphs: A Case Study. In High Assurance Systems Engineering (HASE), 2016 IEEE 17th International Symposium on. IEEE, 55--62.
[22]
Demóstenes Sena, Roberta Coelho, Uirá Kulesza, and Rodrigo Bonifácio. 2016. Understanding the exception handling strategies of Java libraries: An empirical study. In Mining Software Repositories (MSR), 2016 IEEE/ACM 13th Working Conference on. IEEE, 212--222.
[23]
Hina Shah, Carsten Gorg, and Mary Jean Harrold. 2010. Understanding exception handling: Viewpoints of novices and experts. IEEE Transactions on Software Engineering 36, 2 (2010), 150--161.
[24]
Ali Shahrokni and Robert Feldt. 2013. A Systematic Review of Software Robustness. Information and Software Technology 55, 1 (Jan. 2013), 1--17.
[25]
Saurabh Sinha, Alessandro Orso, and Mary Jean Harrold. 2004. Automated support for development, maintenance, and testing in the presence of implicit control flow. In Proceedings of the 26th International Conference on Software Engineering. IEEE Computer Society, 336--345.
[26]
Claes Wohlin. 2014. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th international conference on evaluation and assessment in software engineering. ACM, 38.
[27]
Ding Yuan, Yu Luo, Xin Zhuang, Guilherme Renna Rodrigues, Xu Zhao, Yongle Zhang, Pranay Jain, and Michael Stumm. 2014. Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems. In OSDI. 249--265.

Cited By

View all
  • (2023)Detecting Exception Handling Bugs in C++ Programs2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00098(1084-1095)Online publication date: May-2023
  • (2020)Studying the evolution of exception handling anti-patterns in a long-lived large-scale projectJournal of the Brazilian Computer Society10.1186/s13173-019-0095-526:1Online publication date: 27-Jan-2020
  • (2020)A Reflection on “An Exploratory Study on Exception Handling Bugs in Java Programs”2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054791(552-556)Online publication date: Feb-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
SBCARS '18: Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse
September 2018
123 pages
ISBN:9781450365543
DOI:10.1145/3267183
  • Program Chair:
  • Ingrid Nunes
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • SBC: Brazilian Computer Society
  • UFSCar: Federal University of São Carlos
  • IFSP: Federal Institute of São Paulo

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 September 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Case Study
  2. Exception Handling
  3. Exception Handling Anti-Patterns

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SBCARS '18

Acceptance Rates

SBCARS '18 Paper Acceptance Rate 11 of 40 submissions, 28%;
Overall Acceptance Rate 23 of 79 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Detecting Exception Handling Bugs in C++ Programs2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00098(1084-1095)Online publication date: May-2023
  • (2020)Studying the evolution of exception handling anti-patterns in a long-lived large-scale projectJournal of the Brazilian Computer Society10.1186/s13173-019-0095-526:1Online publication date: 27-Jan-2020
  • (2020)A Reflection on “An Exploratory Study on Exception Handling Bugs in Java Programs”2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054791(552-556)Online publication date: Feb-2020
  • (2019)On Relating Code Smells to Security Vulnerabilities2019 IEEE 5th Intl Conference on Big Data Security on Cloud (BigDataSecurity), IEEE Intl Conference on High Performance and Smart Computing, (HPSC) and IEEE Intl Conference on Intelligent Data and Security (IDS)10.1109/BigDataSecurity-HPSC-IDS.2019.00013(7-12)Online publication date: May-2019

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media