Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#

Detalhes bibliográficos
Autor(a) principal: Sousa Neto, Eliezio Soares de
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFRN
Texto Completo: https://repositorio.ufrn.br/jspui/handle/123456789/18103
Resumo: Mainstream programming languages provide built-in exception handling mechanisms to support robust and maintainable implementation of exception handling in software systems. Most of these modern languages, such as C#, Ruby, Python and many others, are often claimed to have more appropriated exception handling mechanisms. They reduce programming constraints on exception handling to favor agile changes in the source code. These languages provide what we call maintenance-driven exception handling mechanisms. It is expected that the adoption of these mechanisms improve software maintainability without hindering software robustness. However, there is still little empirical knowledge about the impact that adopting these mechanisms have on software robustness. This work addresses this gap by conducting an empirical study aimed at understanding the relationship between changes in C# programs and their robustness. In particular, we evaluated how changes in the normal and exceptional code were related to exception handling faults. We applied a change impact analysis and a control flow analysis in 100 versions of 16 C# programs. The results showed that: (i) most of the problems hindering software robustness in those programs are caused by changes in the normal code, (ii) many potential faults were introduced even when improving exception handling in C# code, and (iii) faults are often facilitated by the maintenance-driven flexibility of the exception handling mechanism. Moreover, we present a series of change scenarios that decrease the program robustness
id UFRN_f1bee49f22386faff3eb9bf4054c751b
oai_identifier_str oai:https://repositorio.ufrn.br:123456789/18103
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Sousa Neto, Eliezio Soares dehttp://lattes.cnpq.br/4774223109614503http://lattes.cnpq.br/4635320220484649Lima Filho, Fernando José Castor dehttp://lattes.cnpq.br/7310046838140771Costa, Umberto Souza dahttp://lattes.cnpq.br/9526809466920084Cacho, Nelio Alessandro Azevedo2014-12-17T15:48:10Z2014-09-162014-12-17T15:48:10Z2014-04-25SOUSA NETO, Eliezio Soares de. Software System. Quality. Exception Handling. Exception Handling Mechanisms. Reliability. Maintainnability. 2014. 103 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2014.https://repositorio.ufrn.br/jspui/handle/123456789/18103Mainstream programming languages provide built-in exception handling mechanisms to support robust and maintainable implementation of exception handling in software systems. Most of these modern languages, such as C#, Ruby, Python and many others, are often claimed to have more appropriated exception handling mechanisms. They reduce programming constraints on exception handling to favor agile changes in the source code. These languages provide what we call maintenance-driven exception handling mechanisms. It is expected that the adoption of these mechanisms improve software maintainability without hindering software robustness. However, there is still little empirical knowledge about the impact that adopting these mechanisms have on software robustness. This work addresses this gap by conducting an empirical study aimed at understanding the relationship between changes in C# programs and their robustness. In particular, we evaluated how changes in the normal and exceptional code were related to exception handling faults. We applied a change impact analysis and a control flow analysis in 100 versions of 16 C# programs. The results showed that: (i) most of the problems hindering software robustness in those programs are caused by changes in the normal code, (ii) many potential faults were introduced even when improving exception handling in C# code, and (iii) faults are often facilitated by the maintenance-driven flexibility of the exception handling mechanism. Moreover, we present a series of change scenarios that decrease the program robustnessAs linguagens de programação convencionais fornecem mecanismos de tratamento de exceções internos a fim de prover implementação de tratamento de exceções em sistemas de software robusto e manutenível. A maioria dessas linguagens modernas, tais como C#, Ruby, Python e muitas outras, frequentemente afirmaram ter mecanismos de tratamento de exceção mais apropriados. Elas reduzem as restrições de programação no tratamento de exceção buscando agilizar mudanças no código fonte. Essas linguagens suportam o que chamamos de mecanismos de tratamento de exceções dirigidos a manutenção. Espera-se que a adoção desses mecanismos aumentem a manutenibilidade dos softwares sem impactar na robustez. Entretanto ainda existe pouco conhecimento empírico acerca do impacto que a adoção desses mecanismos tem na robustez de softwares. Este trabalho busca preencher essa lacuna conduzindo um estudo empírico direcionado ao entendimento da relação entre mudanças em programas C# e sua robustez. Em particular, nós avaliamos como mudanças nos códigos normal e excepcional se relacionam com faltas no tratamento de exceção. Nós aplicamos uma análise de impacto de mudança e uma análise de fluxo de controle em 100 versões de 16 programas escritos em C#. A partir dos dados coletados, este trabalho identificou os elementos do trade-off entre manutenibilidade e robustezCoordenação de Aperfeiçoamento de Pessoal de Nível Superiorapplication/pdfporUniversidade Federal do Rio Grande do NortePrograma de Pós-Graduação em Sistemas e ComputaçãoUFRNBRCiência da ComputaçãoSistemas de Software. Qualidade. Tratamento de exceções. Mecanismos de tratamento de exceções. Robustez. Manutenibilidade.CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOAvaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#Software System. Quality. Exception Handling. Exception Handling Mechanisms. Reliability. Maintainnabilityinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALEliezioSSN_DISSERT.pdfapplication/pdf2190104https://repositorio.ufrn.br/bitstream/123456789/18103/1/EliezioSSN_DISSERT.pdf2908609aa5c1ba4f1490b02210bf4470MD51TEXTEliezioSSN_DISSERT.pdf.txtEliezioSSN_DISSERT.pdf.txtExtracted texttext/plain191852https://repositorio.ufrn.br/bitstream/123456789/18103/6/EliezioSSN_DISSERT.pdf.txt05eef3ed6b80841c489941f41b95ee43MD56THUMBNAILEliezioSSN_DISSERT.pdf.jpgEliezioSSN_DISSERT.pdf.jpgIM Thumbnailimage/jpeg2424https://repositorio.ufrn.br/bitstream/123456789/18103/7/EliezioSSN_DISSERT.pdf.jpg343eae84cdab4b266294a3065f491481MD57123456789/181032017-11-04 13:42:11.047oai:https://repositorio.ufrn.br:123456789/18103Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2017-11-04T16:42:11Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.por.fl_str_mv Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
dc.title.alternative.eng.fl_str_mv Software System. Quality. Exception Handling. Exception Handling Mechanisms. Reliability. Maintainnability
title Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
spellingShingle Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
Sousa Neto, Eliezio Soares de
Sistemas de Software. Qualidade. Tratamento de exceções. Mecanismos de tratamento de exceções. Robustez. Manutenibilidade.
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
title_short Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
title_full Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
title_fullStr Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
title_full_unstemmed Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
title_sort Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
author Sousa Neto, Eliezio Soares de
author_facet Sousa Neto, Eliezio Soares de
author_role author
dc.contributor.authorID.por.fl_str_mv
dc.contributor.authorLattes.por.fl_str_mv http://lattes.cnpq.br/4774223109614503
dc.contributor.advisorID.por.fl_str_mv
dc.contributor.advisorLattes.por.fl_str_mv http://lattes.cnpq.br/4635320220484649
dc.contributor.referees1.pt_BR.fl_str_mv Lima Filho, Fernando José Castor de
dc.contributor.referees1ID.por.fl_str_mv
dc.contributor.referees1Lattes.por.fl_str_mv http://lattes.cnpq.br/7310046838140771
dc.contributor.referees2.pt_BR.fl_str_mv Costa, Umberto Souza da
dc.contributor.referees2ID.por.fl_str_mv
dc.contributor.referees2Lattes.por.fl_str_mv http://lattes.cnpq.br/9526809466920084
dc.contributor.author.fl_str_mv Sousa Neto, Eliezio Soares de
dc.contributor.advisor1.fl_str_mv Cacho, Nelio Alessandro Azevedo
contributor_str_mv Cacho, Nelio Alessandro Azevedo
dc.subject.por.fl_str_mv Sistemas de Software. Qualidade. Tratamento de exceções. Mecanismos de tratamento de exceções. Robustez. Manutenibilidade.
topic Sistemas de Software. Qualidade. Tratamento de exceções. Mecanismos de tratamento de exceções. Robustez. Manutenibilidade.
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
description Mainstream programming languages provide built-in exception handling mechanisms to support robust and maintainable implementation of exception handling in software systems. Most of these modern languages, such as C#, Ruby, Python and many others, are often claimed to have more appropriated exception handling mechanisms. They reduce programming constraints on exception handling to favor agile changes in the source code. These languages provide what we call maintenance-driven exception handling mechanisms. It is expected that the adoption of these mechanisms improve software maintainability without hindering software robustness. However, there is still little empirical knowledge about the impact that adopting these mechanisms have on software robustness. This work addresses this gap by conducting an empirical study aimed at understanding the relationship between changes in C# programs and their robustness. In particular, we evaluated how changes in the normal and exceptional code were related to exception handling faults. We applied a change impact analysis and a control flow analysis in 100 versions of 16 C# programs. The results showed that: (i) most of the problems hindering software robustness in those programs are caused by changes in the normal code, (ii) many potential faults were introduced even when improving exception handling in C# code, and (iii) faults are often facilitated by the maintenance-driven flexibility of the exception handling mechanism. Moreover, we present a series of change scenarios that decrease the program robustness
publishDate 2014
dc.date.accessioned.fl_str_mv 2014-12-17T15:48:10Z
dc.date.available.fl_str_mv 2014-09-16
2014-12-17T15:48:10Z
dc.date.issued.fl_str_mv 2014-04-25
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv SOUSA NETO, Eliezio Soares de. Software System. Quality. Exception Handling. Exception Handling Mechanisms. Reliability. Maintainnability. 2014. 103 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2014.
dc.identifier.uri.fl_str_mv https://repositorio.ufrn.br/jspui/handle/123456789/18103
identifier_str_mv SOUSA NETO, Eliezio Soares de. Software System. Quality. Exception Handling. Exception Handling Mechanisms. Reliability. Maintainnability. 2014. 103 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2014.
url https://repositorio.ufrn.br/jspui/handle/123456789/18103
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.format.none.fl_str_mv application/pdf
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 BR
dc.publisher.department.fl_str_mv Ciência da Computação
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/18103/1/EliezioSSN_DISSERT.pdf
https://repositorio.ufrn.br/bitstream/123456789/18103/6/EliezioSSN_DISSERT.pdf.txt
https://repositorio.ufrn.br/bitstream/123456789/18103/7/EliezioSSN_DISSERT.pdf.jpg
bitstream.checksum.fl_str_mv 2908609aa5c1ba4f1490b02210bf4470
05eef3ed6b80841c489941f41b95ee43
343eae84cdab4b266294a3065f491481
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_ 1814832652124946432