RMT 2.0: a tool for the application and identification of design patterns based in microservices

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Nogueira, Pedro Magnus Pedroso
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: eng
Instituição de defesa: Universidade Tecnológica Federal do Paraná
Ponta Grossa
Brasil
Programa de Pós-Graduação em Ciência da Computação
UTFPR
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.utfpr.edu.br/jspui/handle/1/35956
Resumo: Refactoring enhances the integrity of the source code without altering its functionality, eliminating code smells while improving its flexibility and readability. Among the various refactoring techniques, using design patterns facilitates the development of higherquality code with enhanced attributes such as reusability and flexibility. The Refactoring and Measurement Tool (RMT) was initially developed by the Software Engineering and Computational Intelligence Laboratory (LESIC) and is capable of parsing Java projects to detect and implement design patterns. This functionality is achieved by integrating three established methodologies from the literature. The primary challenge of the first version of RMT is its limited capacity to incorporate additional methodologies into its architectural framework. This work has done a comprehensive refactoring of both the codebase and the architecture. The enhancements to the initial version of RMT were executed in phases that included analysis, restructuring, testing, refactoring, and evaluation. The RMT architecture was reengineered using asynchronous, cloudnative microservices to boost performance, availability, and scalability while segregating responsibilities. Consequently, RMT 2.0 was developed, featuring horizontal scaling to meet the performance demands associated with cloud integration. The developed testing facilitates developer modifications to extend the tool’s feature set. The source code has been optimized to enhance the tool’s performance, thereby improving the development experience for contributors. The tool’s local execution process has been modified to streamline the execution mechanism by allowing container-based deployment. Empirical analysis of the results indicates a 63.64% reduction in execution time during project refactoring compared to the original tool.