Uma abordagem para reestruturação de sistemas de software orientados a objetos utilizando medidas de acoplamento e coesão

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Santos, Danilo Batista dos
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: 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
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: 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.