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

Detalhes bibliográficos
Autor(a) principal: Melo, Hugo Faria
Data de Publicação: 2019
Tipo de documento: Tese
Idioma: por
Título da fonte: Repositório Institucional da UFRN
Texto Completo: https://repositorio.ufrn.br/handle/123456789/30645
Resumo: O 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.
id UFRN_c31a1fea7e4d786b0416b88e9b48e390
oai_identifier_str oai:https://repositorio.ufrn.br:123456789/30645
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Melo, Hugo FariaTreude, ChristophKulesza, UiráBarbosa, Eiji Adachi MedeirosFilho, Fernando José Castor de LimaAlmeida, Rodrigo Bonifacio deCoelho, Roberta de Souza2020-11-24T12:49:22Z2020-11-24T12:49:22Z2019-11-29MELO, 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.https://repositorio.ufrn.br/handle/123456789/30645O 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.The 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.Universidade Federal do Rio Grande do NortePROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOUFRNBrasilTratamento de exceções; Linguagem Java; Estudo qualitativo.Java Exception HandlingException Handling DesignQualitative studyIdentifying and analyzing Java exception handling guidelines: a developers point-of-viewinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALHugoFariaMelo_TESE.pdfapplication/pdf3871027https://repositorio.ufrn.br/bitstream/123456789/30645/1/HugoFariaMelo_TESE.pdfe8239b9b6530c1b35288b1b6d61956d7MD51TEXTHugoFariaMelo_TESE.pdf.txtHugoFariaMelo_TESE.pdf.txtExtracted texttext/plain233111https://repositorio.ufrn.br/bitstream/123456789/30645/2/HugoFariaMelo_TESE.pdf.txt6906e6556150e32084dbb81e93046fa2MD52THUMBNAILHugoFariaMelo_TESE.pdf.jpgHugoFariaMelo_TESE.pdf.jpgGenerated Thumbnailimage/jpeg1247https://repositorio.ufrn.br/bitstream/123456789/30645/3/HugoFariaMelo_TESE.pdf.jpgfa1ef3b36b50ea3f8a7d321e4e74d27fMD53123456789/306452020-11-29 04:44:44.3oai:https://repositorio.ufrn.br:123456789/30645Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2020-11-29T07:44:44Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.pt_BR.fl_str_mv Identifying and analyzing Java exception handling guidelines: a developers point-of-view
title Identifying and analyzing Java exception handling guidelines: a developers point-of-view
spellingShingle Identifying and analyzing Java exception handling guidelines: a developers point-of-view
Melo, Hugo Faria
Tratamento de exceções; Linguagem Java; Estudo qualitativo.
Java Exception Handling
Exception Handling Design
Qualitative study
title_short Identifying and analyzing Java exception handling guidelines: a developers point-of-view
title_full Identifying and analyzing Java exception handling guidelines: a developers point-of-view
title_fullStr Identifying and analyzing Java exception handling guidelines: a developers point-of-view
title_full_unstemmed Identifying and analyzing Java exception handling guidelines: a developers point-of-view
title_sort Identifying and analyzing Java exception handling guidelines: a developers point-of-view
author Melo, Hugo Faria
author_facet Melo, Hugo Faria
author_role author
dc.contributor.authorID.pt_BR.fl_str_mv
dc.contributor.advisorID.pt_BR.fl_str_mv
dc.contributor.advisor-co1ID.pt_BR.fl_str_mv
dc.contributor.referees1.none.fl_str_mv Kulesza, Uirá
dc.contributor.referees1ID.pt_BR.fl_str_mv
dc.contributor.referees2.none.fl_str_mv Barbosa, Eiji Adachi Medeiros
dc.contributor.referees2ID.pt_BR.fl_str_mv
dc.contributor.referees3.none.fl_str_mv Filho, Fernando José Castor de Lima
dc.contributor.referees3ID.pt_BR.fl_str_mv
dc.contributor.referees4.none.fl_str_mv Almeida, Rodrigo Bonifacio de
dc.contributor.referees4ID.pt_BR.fl_str_mv
dc.contributor.author.fl_str_mv Melo, Hugo Faria
dc.contributor.advisor-co1.fl_str_mv Treude, Christoph
dc.contributor.advisor1.fl_str_mv Coelho, Roberta de Souza
contributor_str_mv Treude, Christoph
Coelho, Roberta de Souza
dc.subject.por.fl_str_mv Tratamento de exceções; Linguagem Java; Estudo qualitativo.
Java Exception Handling
Exception Handling Design
Qualitative study
topic Tratamento de exceções; Linguagem Java; Estudo qualitativo.
Java Exception Handling
Exception Handling Design
Qualitative study
description O 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.
publishDate 2019
dc.date.issued.fl_str_mv 2019-11-29
dc.date.accessioned.fl_str_mv 2020-11-24T12:49:22Z
dc.date.available.fl_str_mv 2020-11-24T12:49:22Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv MELO, 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.
dc.identifier.uri.fl_str_mv https://repositorio.ufrn.br/handle/123456789/30645
identifier_str_mv MELO, 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.
url https://repositorio.ufrn.br/handle/123456789/30645
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
dc.publisher.program.fl_str_mv PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFRN
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRN
instname:Universidade Federal do Rio Grande do Norte (UFRN)
instacron:UFRN
instname_str Universidade Federal do Rio Grande do Norte (UFRN)
instacron_str UFRN
institution UFRN
reponame_str Repositório Institucional da UFRN
collection Repositório Institucional da UFRN
bitstream.url.fl_str_mv https://repositorio.ufrn.br/bitstream/123456789/30645/1/HugoFariaMelo_TESE.pdf
https://repositorio.ufrn.br/bitstream/123456789/30645/2/HugoFariaMelo_TESE.pdf.txt
https://repositorio.ufrn.br/bitstream/123456789/30645/3/HugoFariaMelo_TESE.pdf.jpg
bitstream.checksum.fl_str_mv e8239b9b6530c1b35288b1b6d61956d7
6906e6556150e32084dbb81e93046fa2
fa1ef3b36b50ea3f8a7d321e4e74d27f
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv
_version_ 1814832620317442048