Once I heard: "Everybody hates thinking about exceptions because they’re not supposed to happen". However, we must say that, based on our own experience as Software Developers, exceptions do happen... and they happen more often than we would expect. Since 2005 I have been conducting research works on the "exception handling" code in Java development. Maybe because I have noticed that it is a problematic issue in Java language, and which has often been neglected and underestimated. In this talk, I will share some of the findings and insights of the research works I have been conducting over the last 15 years on exception handling. These research works include: (i) a survey applied to 98 developers from 87 distinct GitHub Java projects, whose goal is to investigate exception handling issues (i.e. Which exception handling guidelines are being used by Java projects? How are such guidelines disseminated among project members?); (ii) an empirical study of over 6,000 Java exception stack traces we extracted from over 600 open-source Android projects, and also (iii) a set of tools that have been proposed to mitigate the problems caused by the exception handling code. I hope that at the end of this talk you will be convinced that we all should care about exception handling, and you will have some insights to inspire your research and your daily work as a software developer.
Bio: Roberta de Souza Coelho é Professora do Departamento de Informática e Matemática Aplicada da UFRN. Possui graduação em Ciência da Computação pela Universidade Federal de Campina Grande (2000.1), mestrado em Ciências da Computação pela Universidade Federal de Pernambuco (2002.1), e doutorado em Informática pela PUC-Rio (2008.1). Durante o doutorado participou do Programa de Doutorado no País com Estágio no Exterior (PDEE) realizando estágios de pesquisa nas Universidades de Waterloo-CA e Lancaster-UK. Realizou pós-doutorado na TU-Delft/Holanda (2013-2014). Já atuou como Engenheira de Software no CESAR (1999-2004) e como Engenheira de Testes (2004-2008) em projetos desenvolvidos pelas colaborações UFCG-Hewlett-Packard, UFPE-Motorola e PUCRio-Petrobrás. Desde 2004 tem realizado pesquisas na área Engenharia de Software, mais especificamente os temas de Tratamento de Exceções, Teste de Software, Análise Estática de Código, possuindo mais de 60 artigos científicos nestes temas.
The complexity of modern software systems raises various maintenance and evolution challenges. As researchers, we strive to address these challenges, but often face obstacles related to ensuring that we are addressing real developer needs, dealing with the quality and availability of the data we can use, and handling the limitations of what our techniques can automatically infer. In this talk, I'll share my findings and experiences (both the good and the bad!) from working on various types of maintenance and evolution problems related to software variability, library selection, API misuse detection, and software merging, while interacting with practitioners through industry collaborations, surveys, and interviews.
Bio: Sarah Nadi is an Assistant Professor in the Department of Computing Science at the University of Alberta, and a Tier II Canada Research Chair in Software Reuse. She obtained her Master's (2010) and PhD (2014) degrees from the University of Waterloo in Canada. Before joining the University of Alberta in 2016, she spent approximately two years as a post-doctoral researcher at the Technische Universität Darmstadt in Germany. Sarah's research focuses on providing intelligent support for software maintenance and reuse across three main themes: dealing with the complexity of highly configurable software systems, automatically integrating changes from different developers, and recommending relevant information to guide developers through selecting and using software libraries. Sarah leads the Software Maintenance and Reuse (SMR) lab at the University of Alberta. For more information about the work we do at SMR, please visit https://sarahnadi.org/smr/.