Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#
Autor(a) principal: | |
---|---|
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 |