Identifying and analyzing Java exception handling guidelines: a developers point-of-view

dc.contributor.advisorCoelho, Roberta de Souza
dc.contributor.advisor-co1Treude, Christoph
dc.contributor.advisor-co1IDpt_BR
dc.contributor.advisorIDpt_BR
dc.contributor.authorMelo, Hugo Faria
dc.contributor.authorIDpt_BR
dc.contributor.referees1Kulesza, Uirá
dc.contributor.referees1IDpt_BR
dc.contributor.referees2Barbosa, Eiji Adachi Medeiros
dc.contributor.referees2IDpt_BR
dc.contributor.referees3Filho, Fernando José Castor de Lima
dc.contributor.referees3IDpt_BR
dc.contributor.referees4Almeida, Rodrigo Bonifacio de
dc.contributor.referees4IDpt_BR
dc.date.accessioned2020-11-24T12:49:22Z
dc.date.available2020-11-24T12:49:22Z
dc.date.issued2019-11-29
dc.description.abstractThe exception handling mechanism is a feature present in most modern programming languages which helps the development of fault tolerant systems. Despite being an old feature of the Java language, developers still struggle to use exception handling for even the most basic problems. Although the exception handling of a system is essentially a design problem, few works are intended to investigate Java exception handling from the developers’ point of view. In this thesis we explore the decisions made and solutions adopted by Java developers for exception handling in their projects. In total we conducted 6 studies, which consulted a total of 423 developers, including interviews and surveys, and analyzed the source code of 240 Java projects hosted on GitHub. Our results show that decisions regarding Java exception handling are not usually documented, and sometimes not even discussed verbally among the development team; that developers believe their code follows the adopted solutions; that developers learn about exception handling solutions through informal meetings and code inspection; that the adopted solutions in the project are verified in the source code through code review. We analyzed Java source code from 240 projects to verify compliance of 6 of the 31 Java exception handling solutions we identified, and found that the code often fails to deliver what was planned. Our research reveals a weakness in the design, implementation, and verification of Java exception handling that will help researchers and the community to design tools and other solutions that help developers to apply exception handling effectively.pt_BR
dc.description.resumoO mecanismo de tratamento de exceções é um recurso presente na maioria das linguagens de programação modernas para o desenvolvimento de sistemas tolerantes à falhas. Apesar de ser um recurso já antigo da linguagem Java, os desenvolvedores ainda sentem dificuldades em usar o tratamento de exceções até para os problemas mais básicos. Apesar do tratamento de exceções de um sistema ser essencialmente um problema de design, poucos trabalhos se propõem a investigar o tratamento de exceções Java do ponto de vista dos desenvolvedores. Nesta tese nós exploramos as decisões tomadas e soluções adotadas por desenvolvedores Java para o tratamento de exceções em seus projetos. Ao todo realizamos 6 estudos, que consultaram um total de 423 desenvolvedores, entre entrevistas e surveys, e analisou o código-fonte de 240 projetos Java hospedados no GitHub. Nossos resultados mostram que as decisões relacionadas ao tratamento de exceções Java não costumam ser documentadas, e por vezes não são sequer discutidas verbalmente entre a equipe de desenvolvedores; que os desenvolvedores acreditam que seus código-fonte seguem as soluções adotadas; que os desenvolvedores aprendem sobre as soluções para tratamento de exceções através de reuniões informais e inspeção de código; que as soluções adotadas no projeto são verificadas no código-fonte através de revisão de código. Analisamos código-fonte Java de 240 projetos para verificar o cumprimento de 7 das 31 soluções para o tratamento de exceções Java que identificamos, e constatamos que muitas vezes o código não cumpre o pretendido. Nossa pesquisa revela uma fragilidade na implementação e verificação do tratamento de exceções Java que ajudará pesquisadores e comunidade na elaboração de ferramentas e outras soluções que auxiliem desenvolvedores a aplicarem o tratamento de exceções com eficácia.pt_BR
dc.identifier.citationMELO, Hugo Faria. Identifying and analyzing Java exception handling guidelines: a developers point-of-view. 2019. 98f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2019.pt_BR
dc.identifier.urihttps://repositorio.ufrn.br/handle/123456789/30645
dc.languagept_BRpt_BR
dc.publisherUniversidade Federal do Rio Grande do Nortept_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.initialsUFRNpt_BR
dc.publisher.programPROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectTratamento de exceções; Linguagem Java; Estudo qualitativo.pt_BR
dc.subjectJava Exception Handlingpt_BR
dc.subjectException Handling Designpt_BR
dc.subjectQualitative studypt_BR
dc.titleIdentifying and analyzing Java exception handling guidelines: a developers point-of-viewpt_BR
dc.typedoctoralThesispt_BR

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
HugoFariaMelo_TESE.pdf
Tamanho:
3.69 MB
Formato:
Adobe Portable Document Format
Carregando...
Imagem de Miniatura
Baixar