Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão
Autor(a) principal: | |
---|---|
Data de Publicação: | 2017 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFLA |
Texto Completo: | http://repositorio.ufla.br/jspui/handle/1/12830 |
Resumo: | Since the early stages of software development, one of the main concerns is that it has quality. To achieve this goal, software must constantly evolve to meet the needs of users and the environment in which it is embedded - law of continuous change. Therefore, maintenance is conducted to correct, add or adapt features in the software. However, if such maintenance is conducted in disagreement with the design standards employed and best programming practices, the software will become progressively more coupled and less cohesive, becoming less modularized, and degrading its internal quality. In order to act in the countercurrent of this degradation, this work presents an approach to restructuring software (ARS) through the movement of classes between packages, to generate software with better internal quality, more cohesive and less coupled, making them more modular and maintainable. To achieve this goal, the ARS presents a set of well-defined steps to carry out the restructuring process. In this process software measures are used to determine the state of the software and heuristics to make decisions throughout the restructuring. This approach is also supported by the Simulated Annealing heuristic, to avoid human subjectivity and increase the chances of successful application of ARS. The result of the evaluation of ARS reveals its ability to improve the structural quality of the software. This improvement was proven, since this approach is able to improve the values of the seven measures of software used in a statistically significant way and to reduce the amount of dependencies between its packages, generating more modular and maintainable software. In another evaluation, ARS was compared to other approaches, indicating that ARS is more efficient than them. This result was obtained through a multivariate test of means, which proved that the structures suggested by ARS presented greater gain to the values of the software measures used and, consequently, a better internal structure than the other approaches. Therefore, the application of ARS is able to improve the structural quality of the software, acting in the countercurrent of the degradation of its quality caused by the badly planned maintenance. In this way, ARS makes possible for future maintenance to be carried out with less difficulty, reducing the resources and efforts used to drive it. |
id |
UFLA_2469b034ea976819955a09dc0d848a9f |
---|---|
oai_identifier_str |
oai:localhost:1/12830 |
network_acronym_str |
UFLA |
network_name_str |
Repositório Institucional da UFLA |
repository_id_str |
|
spelling |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesãoAn approach to restructure object oriented software using software metrics of coupling and cohesionSoftware – QualidadeReestruturação de softwareMedidas de softwareSoftware – QualitySoftware restructuringSoftware measuresMetodologia e Técnicas da ComputaçãoSince the early stages of software development, one of the main concerns is that it has quality. To achieve this goal, software must constantly evolve to meet the needs of users and the environment in which it is embedded - law of continuous change. Therefore, maintenance is conducted to correct, add or adapt features in the software. However, if such maintenance is conducted in disagreement with the design standards employed and best programming practices, the software will become progressively more coupled and less cohesive, becoming less modularized, and degrading its internal quality. In order to act in the countercurrent of this degradation, this work presents an approach to restructuring software (ARS) through the movement of classes between packages, to generate software with better internal quality, more cohesive and less coupled, making them more modular and maintainable. To achieve this goal, the ARS presents a set of well-defined steps to carry out the restructuring process. In this process software measures are used to determine the state of the software and heuristics to make decisions throughout the restructuring. This approach is also supported by the Simulated Annealing heuristic, to avoid human subjectivity and increase the chances of successful application of ARS. The result of the evaluation of ARS reveals its ability to improve the structural quality of the software. This improvement was proven, since this approach is able to improve the values of the seven measures of software used in a statistically significant way and to reduce the amount of dependencies between its packages, generating more modular and maintainable software. In another evaluation, ARS was compared to other approaches, indicating that ARS is more efficient than them. This result was obtained through a multivariate test of means, which proved that the structures suggested by ARS presented greater gain to the values of the software measures used and, consequently, a better internal structure than the other approaches. Therefore, the application of ARS is able to improve the structural quality of the software, acting in the countercurrent of the degradation of its quality caused by the badly planned maintenance. In this way, ARS makes possible for future maintenance to be carried out with less difficulty, reducing the resources and efforts used to drive it.Desde as fases iniciais do desenvolvimento do sistema de software, uma das principais preocupações é com a qualidade desses sistemas. Para alcançar esse objetivo, esses sistemas devem evoluir constantemente para atender às necessidades dos usuários e do ambiente em que está inserido - lei da mudança contínua. Por isso, são conduzidas manutenções para corrigir, adicionar ou adaptar funções no sistema. Entretanto, se essas manutenções forem conduzidas em discordância com os padrões de projeto empregados e às melhores práticas de programação, o sistema se tornará progressivamente mais acoplado e menos coeso, sendo menos modularizado e degradando a sua qualidade interna. Para agir na contracorrente dessa degradação, neste trabalho, é apresentada uma Abordagem para Reestruturar Sistemas de Software (ARS), por meio da movimentação de classes entre pacotes, para gerar sistemas com melhor qualidade interna, mais coesos e menos acoplados, tornando-os mais modulares e manuteníveis. Para alcançar esse objetivo, ARS apresenta um conjunto de passos bem definidos para realizar a reestruturação, utilizando medidas de software para determinar o estado do sistema e heurísticas desenvolvidas para tomar decisões ao longo da reestruturação. ARS também é apoiada pela heurística Simulated Annealing, para evitar a subjetividade humana e aumentar as chances de sucesso da sua aplicação. O resultado da avaliação de ARS revela sua capacidade de aprimorar a qualidade estrutural de sistemas de software, pois essa abordagem é capaz de melhorar os valores das sete medidas de software utilizadas de forma estatisticamente significativa e reduzir a quantidade de dependências entre seus pacotes, gerando sistemas mais modulares e manuteníveis. Em outra avaliação, ARS foi comparada com outras abordagens existentes, indicando que ARS é mais eficiente do que elas. Esse resultado foi obtido por meio de um teste multivariado de médias, que comprovou que as estruturas sugeridas por ARS apresentaram maior ganho aos valores das medidas de software utilizadas e, consequentemente, melhor estrutura interna que as demais abordagens. Portanto, a aplicação de ARS é capaz de aprimorar a qualidade estrutural do sistema, agindo na contracorrente da degradação da qualidade ocasionada pelas manutenções mal planejadas. Desse modo, ARS possibilita que futuras manutenções sejam realizadas com menos dificuldade, reduzindo os recursos e esforços empregados na sua condução.Universidade Federal de LavrasPrograma de Pós-Graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoCosta, Heitor Augustus XavierResende, Antônio Maria Pereira deParreira Junior, Paulo AfonsoViana, Matheus CarvalhoDias, Diego Roberto ColomboSantos, Danilo Batista dos2017-05-05T18:23:07Z2017-05-05T18:23:07Z2017-05-052017-01-27info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfSANTOS, D. B. dos. Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão. 2017. 132 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2017.http://repositorio.ufla.br/jspui/handle/1/12830porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLA2023-04-13T18:05:52Zoai:localhost:1/12830Repositório InstitucionalPUBhttp://repositorio.ufla.br/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2023-04-13T18:05:52Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)false |
dc.title.none.fl_str_mv |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão An approach to restructure object oriented software using software metrics of coupling and cohesion |
title |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
spellingShingle |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão Santos, Danilo Batista dos Software – Qualidade Reestruturação de software Medidas de software Software – Quality Software restructuring Software measures Metodologia e Técnicas da Computação |
title_short |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
title_full |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
title_fullStr |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
title_full_unstemmed |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
title_sort |
Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão |
author |
Santos, Danilo Batista dos |
author_facet |
Santos, Danilo Batista dos |
author_role |
author |
dc.contributor.none.fl_str_mv |
Costa, Heitor Augustus Xavier Resende, Antônio Maria Pereira de Parreira Junior, Paulo Afonso Viana, Matheus Carvalho Dias, Diego Roberto Colombo |
dc.contributor.author.fl_str_mv |
Santos, Danilo Batista dos |
dc.subject.por.fl_str_mv |
Software – Qualidade Reestruturação de software Medidas de software Software – Quality Software restructuring Software measures Metodologia e Técnicas da Computação |
topic |
Software – Qualidade Reestruturação de software Medidas de software Software – Quality Software restructuring Software measures Metodologia e Técnicas da Computação |
description |
Since the early stages of software development, one of the main concerns is that it has quality. To achieve this goal, software must constantly evolve to meet the needs of users and the environment in which it is embedded - law of continuous change. Therefore, maintenance is conducted to correct, add or adapt features in the software. However, if such maintenance is conducted in disagreement with the design standards employed and best programming practices, the software will become progressively more coupled and less cohesive, becoming less modularized, and degrading its internal quality. In order to act in the countercurrent of this degradation, this work presents an approach to restructuring software (ARS) through the movement of classes between packages, to generate software with better internal quality, more cohesive and less coupled, making them more modular and maintainable. To achieve this goal, the ARS presents a set of well-defined steps to carry out the restructuring process. In this process software measures are used to determine the state of the software and heuristics to make decisions throughout the restructuring. This approach is also supported by the Simulated Annealing heuristic, to avoid human subjectivity and increase the chances of successful application of ARS. The result of the evaluation of ARS reveals its ability to improve the structural quality of the software. This improvement was proven, since this approach is able to improve the values of the seven measures of software used in a statistically significant way and to reduce the amount of dependencies between its packages, generating more modular and maintainable software. In another evaluation, ARS was compared to other approaches, indicating that ARS is more efficient than them. This result was obtained through a multivariate test of means, which proved that the structures suggested by ARS presented greater gain to the values of the software measures used and, consequently, a better internal structure than the other approaches. Therefore, the application of ARS is able to improve the structural quality of the software, acting in the countercurrent of the degradation of its quality caused by the badly planned maintenance. In this way, ARS makes possible for future maintenance to be carried out with less difficulty, reducing the resources and efforts used to drive it. |
publishDate |
2017 |
dc.date.none.fl_str_mv |
2017-05-05T18:23:07Z 2017-05-05T18:23:07Z 2017-05-05 2017-01-27 |
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.uri.fl_str_mv |
SANTOS, D. B. dos. Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão. 2017. 132 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2017. http://repositorio.ufla.br/jspui/handle/1/12830 |
identifier_str_mv |
SANTOS, D. B. dos. Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão. 2017. 132 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2017. |
url |
http://repositorio.ufla.br/jspui/handle/1/12830 |
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 de Lavras Programa de Pós-Graduação em Ciência da Computação UFLA brasil Departamento de Ciência da Computação |
publisher.none.fl_str_mv |
Universidade Federal de Lavras Programa de Pós-Graduação em Ciência da Computação UFLA brasil Departamento de Ciência da Computação |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFLA instname:Universidade Federal de Lavras (UFLA) instacron:UFLA |
instname_str |
Universidade Federal de Lavras (UFLA) |
instacron_str |
UFLA |
institution |
UFLA |
reponame_str |
Repositório Institucional da UFLA |
collection |
Repositório Institucional da UFLA |
repository.name.fl_str_mv |
Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA) |
repository.mail.fl_str_mv |
nivaldo@ufla.br || repositorio.biblioteca@ufla.br |
_version_ |
1807835194345914368 |