Reengenharia de um sistema ERP visando sua testabilidade
Autor(a) principal: | |
---|---|
Data de Publicação: | 2018 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRGS |
Texto Completo: | http://hdl.handle.net/10183/184951 |
Resumo: | Uma forma de reduzir os custos de manutenção de um sistema de software é a aplicação de técnicas de verificação e validação para garantir a sua qualidade. Dentre essas técnicas, testes unitários são especialmente recomendados devido a sua execução rápida. A aplicação de testes unitários exige que o sistema respeite alguns requisitos, em particular os de possuir baixo acoplamento e baixa complexidade ciclomática, para permitir que seus métodos sejam executados em isolamento durante o teste. O objetivo deste trabalho foi a aplicação da técnica de reengenharia em um sistema de software comercial com seis anos de mercado para adequá-lo a esses requisitos e permitir a adoção de testes unitários em seu processo de desenvolvimento. Foi realizada uma análise da comunicação interna da empresa, na qual foram detectados muitos defeitos no sistema encontrados por usuários, bem como atrasos na entrega de novas funcionalidades. Foi adotada a estratégia de reengenharia parcial para retrabalhar o módulo de emissão de notas fiscais do sistema, que consiste de um único método com mais de 400 linhas de código, uma complexidade ciclomática de 114 e 61 dependências, o que inviabiliza a adoção de testes unitários. Após a aplicação da técnica, o módulo de emissão de notas fiscais foi desmembrado em 33 métodos em 10 classes distintas, respeitando os princípios SOLID. Em média, o número de linhas de código desses novos métodos é de 5,03, com complexidade ciclomática 2,27 e 4,97 dependências por método. Com isso foi possível atingir 100% de cobertura sob o critério de cobertura de caminhos primos com apenas 68 casos de teste. Futuramente, é recomendado reavaliar o processo de desenvolvimento, coletando novamente dados sobre a incidência de defeitos e sobre a eficiência do processo de desenvolvimento para verificar o impacto da adoção dos testes unitários na produtividade da equipe. |
id |
UFRGS-2_5cd713d8e9730371b226e70776e68df5 |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/184951 |
network_acronym_str |
UFRGS-2 |
network_name_str |
Repositório Institucional da UFRGS |
repository_id_str |
|
spelling |
Moraes, Alex PedrosoCota, Erika Fernandes2018-11-23T02:44:21Z2018http://hdl.handle.net/10183/184951001077825Uma forma de reduzir os custos de manutenção de um sistema de software é a aplicação de técnicas de verificação e validação para garantir a sua qualidade. Dentre essas técnicas, testes unitários são especialmente recomendados devido a sua execução rápida. A aplicação de testes unitários exige que o sistema respeite alguns requisitos, em particular os de possuir baixo acoplamento e baixa complexidade ciclomática, para permitir que seus métodos sejam executados em isolamento durante o teste. O objetivo deste trabalho foi a aplicação da técnica de reengenharia em um sistema de software comercial com seis anos de mercado para adequá-lo a esses requisitos e permitir a adoção de testes unitários em seu processo de desenvolvimento. Foi realizada uma análise da comunicação interna da empresa, na qual foram detectados muitos defeitos no sistema encontrados por usuários, bem como atrasos na entrega de novas funcionalidades. Foi adotada a estratégia de reengenharia parcial para retrabalhar o módulo de emissão de notas fiscais do sistema, que consiste de um único método com mais de 400 linhas de código, uma complexidade ciclomática de 114 e 61 dependências, o que inviabiliza a adoção de testes unitários. Após a aplicação da técnica, o módulo de emissão de notas fiscais foi desmembrado em 33 métodos em 10 classes distintas, respeitando os princípios SOLID. Em média, o número de linhas de código desses novos métodos é de 5,03, com complexidade ciclomática 2,27 e 4,97 dependências por método. Com isso foi possível atingir 100% de cobertura sob o critério de cobertura de caminhos primos com apenas 68 casos de teste. Futuramente, é recomendado reavaliar o processo de desenvolvimento, coletando novamente dados sobre a incidência de defeitos e sobre a eficiência do processo de desenvolvimento para verificar o impacto da adoção dos testes unitários na produtividade da equipe.A way to reduce maintenance costs in a software system is the application of verification and validation techniques to ensure its quality. Of all those techniques, unit testing is especially recommended because of its fast execution. The use of unit tests demands the system to respect some requirements, mainly to have low coupling and low cyclomatic complexity, allowing its methods to be executed in isolation during testing. The primary goal of this study was the application of the reengineering in a commercial software system that is in the market for six years to comply with those requirements and allow the use of unit tests in its development process. The internal communication of the company was analyzed, and many user-reported failures and new features shipment delays were detected. The reengineering strategy was used to rework one specific module of the system ("emissão de notas fiscais"), which is a single method with more than 400 lines of code, cyclomatic complexity of 114 and 61 dependencies. After the application of the technique, the module was separated in 33 methods in 10 different classes, respecting SOLID principles. The number of lines of code of these new methods was, on average, 5.03, with a cyclomatic complexity of 2.27 and 4.97 dependencies per method. Coverage of 100% was achieved under the prime paths criteria through only 68 test cases. In the future, it is recommended the re-evaluation of the development process and a new data collection about the incidence of failures and the efficiency of the development process to check the impact of the use of unit testing on the productivity of the team.application/pdfporMicroeletrônicaUnit testingReengineeringTestabilityReengenharia de um sistema ERP visando sua testabilidadeReengineering of an ERP system aiming for its testability info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2018Engenharia de Computaçãograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001077825.pdf.txt001077825.pdf.txtExtracted Texttext/plain78462http://www.lume.ufrgs.br/bitstream/10183/184951/2/001077825.pdf.txtbed99c7c165b041e9329db1f859bf2a8MD52ORIGINAL001077825.pdfTexto completoapplication/pdf1226007http://www.lume.ufrgs.br/bitstream/10183/184951/1/001077825.pdfd568fab11145e678845e0fefdd774be5MD5110183/1849512018-11-24 03:14:22.134221oai:www.lume.ufrgs.br:10183/184951Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2018-11-24T05:14:22Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
Reengenharia de um sistema ERP visando sua testabilidade |
dc.title.alternative.en.fl_str_mv |
Reengineering of an ERP system aiming for its testability |
title |
Reengenharia de um sistema ERP visando sua testabilidade |
spellingShingle |
Reengenharia de um sistema ERP visando sua testabilidade Moraes, Alex Pedroso Microeletrônica Unit testing Reengineering Testability |
title_short |
Reengenharia de um sistema ERP visando sua testabilidade |
title_full |
Reengenharia de um sistema ERP visando sua testabilidade |
title_fullStr |
Reengenharia de um sistema ERP visando sua testabilidade |
title_full_unstemmed |
Reengenharia de um sistema ERP visando sua testabilidade |
title_sort |
Reengenharia de um sistema ERP visando sua testabilidade |
author |
Moraes, Alex Pedroso |
author_facet |
Moraes, Alex Pedroso |
author_role |
author |
dc.contributor.author.fl_str_mv |
Moraes, Alex Pedroso |
dc.contributor.advisor1.fl_str_mv |
Cota, Erika Fernandes |
contributor_str_mv |
Cota, Erika Fernandes |
dc.subject.por.fl_str_mv |
Microeletrônica |
topic |
Microeletrônica Unit testing Reengineering Testability |
dc.subject.eng.fl_str_mv |
Unit testing Reengineering Testability |
description |
Uma forma de reduzir os custos de manutenção de um sistema de software é a aplicação de técnicas de verificação e validação para garantir a sua qualidade. Dentre essas técnicas, testes unitários são especialmente recomendados devido a sua execução rápida. A aplicação de testes unitários exige que o sistema respeite alguns requisitos, em particular os de possuir baixo acoplamento e baixa complexidade ciclomática, para permitir que seus métodos sejam executados em isolamento durante o teste. O objetivo deste trabalho foi a aplicação da técnica de reengenharia em um sistema de software comercial com seis anos de mercado para adequá-lo a esses requisitos e permitir a adoção de testes unitários em seu processo de desenvolvimento. Foi realizada uma análise da comunicação interna da empresa, na qual foram detectados muitos defeitos no sistema encontrados por usuários, bem como atrasos na entrega de novas funcionalidades. Foi adotada a estratégia de reengenharia parcial para retrabalhar o módulo de emissão de notas fiscais do sistema, que consiste de um único método com mais de 400 linhas de código, uma complexidade ciclomática de 114 e 61 dependências, o que inviabiliza a adoção de testes unitários. Após a aplicação da técnica, o módulo de emissão de notas fiscais foi desmembrado em 33 métodos em 10 classes distintas, respeitando os princípios SOLID. Em média, o número de linhas de código desses novos métodos é de 5,03, com complexidade ciclomática 2,27 e 4,97 dependências por método. Com isso foi possível atingir 100% de cobertura sob o critério de cobertura de caminhos primos com apenas 68 casos de teste. Futuramente, é recomendado reavaliar o processo de desenvolvimento, coletando novamente dados sobre a incidência de defeitos e sobre a eficiência do processo de desenvolvimento para verificar o impacto da adoção dos testes unitários na produtividade da equipe. |
publishDate |
2018 |
dc.date.accessioned.fl_str_mv |
2018-11-23T02:44:21Z |
dc.date.issued.fl_str_mv |
2018 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10183/184951 |
dc.identifier.nrb.pt_BR.fl_str_mv |
001077825 |
url |
http://hdl.handle.net/10183/184951 |
identifier_str_mv |
001077825 |
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.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
instacron_str |
UFRGS |
institution |
UFRGS |
reponame_str |
Repositório Institucional da UFRGS |
collection |
Repositório Institucional da UFRGS |
bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/184951/2/001077825.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/184951/1/001077825.pdf |
bitstream.checksum.fl_str_mv |
bed99c7c165b041e9329db1f859bf2a8 d568fab11145e678845e0fefdd774be5 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
repository.mail.fl_str_mv |
|
_version_ |
1815447231726092288 |