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

Bibliographic Details
Main Author: Nogueira, Pedro Magnus Pedroso
Publication Date: 2024
Format: Master thesis
Language: eng
Source: Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
Download full: http://repositorio.utfpr.edu.br/jspui/handle/1/35956
Summary: 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.
id UTFPR-12_d1b0c9d40a2e0fbf8febcee2c2ce2cc8
oai_identifier_str oai:repositorio.utfpr.edu.br:1/35956
network_acronym_str UTFPR-12
network_name_str Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
repository_id_str
spelling RMT 2.0: a tool for the application and identification of design patterns based in microservicesRMT 2.0: uma ferramenta para aplicar e identificar padrões de projetos fundamentada em microsserviçosSoftware - RefatoraçãoPadrões de softwareAutomaçãoSoftware refactoringSoftware patternsAutomationCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOEngenharia/Tecnologia/GestãoRefactoring 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.Refatoração é um meio de melhorar o código-fonte sem alterar a sua funcionalidade, removendo code smells e tornando-o mais flexível e legível. Dentre as técnicas de refatoração, existe a refatoração por padrões de projetos que permite criar um código com maior qualidade em relação a atributos como reusabilidade, flexibilidade, entre outros. A ferramenta Refactoring and Measurement Tool (RMT) foi criada em sua primeira versão pelo Laboratório de Engenharia de Software e Inteligência Computacional (LESIC) e é capaz de ler um projeto escrito em linguagem java e detectar e aplicar padrões de projeto em linguagem Java. Para isso, ela contém a implementação de três métodos da literatura capazes de detectar e aplicar padrões de projeto. A dificuldade da primeira versão da RMT está relacionada em se incorporar em sua arquitetura uma quantidade maior de métodos. Este trabalho realizou a refatoração de código e de sua arquitetura. O processo de melhoramento da primeira versão da RMT abrangeu as fases de: análise, restruturação, testes, refatoração e avaliação. A arquitetura da RMT foi modificada usando microserviços assíncronos e nativos na nuvem para melhorar a performance, disponibilidade e escalabilidade, desacoplando as responsabilidades. Como resultado criou-se a versão da RMT 2.0 que contém um escalonamento horizontal para melhorar a performance sobre demanda, combinando com aplicações em nuvem. Os testes criados facilitam aos desenvolvedores realizarem modificações para estender a ferramenta. O código-fonte foi simplificado para trazer melhor performance a ferramenta e melhorar a experiência do desenvolvedor que deseja contribuir com a ferramenta. O processo de execução local da ferramenta foi alterado, trazendo melhora na facilidade do mecanismo de execução, podendo ser executada com containers. A análise dos resultados evidencia uma redução de 63.64% de tempo de execução na refatoração dos projetos testados em relação a ferramenta original.Universidade Tecnológica Federal do ParanáPonta GrossaBrasilPrograma de Pós-Graduação em Ciência da ComputaçãoUTFPRMatos, Simone Nasserhttps://orcid.org/0000-0002-5362-2343http://lattes.cnpq.br/2608583610949216Borges, Helyane Bronoskihttps://orcid.org/0000-0002-9153-3819http://lattes.cnpq.br/8340106221427112Matos, Simone Nasserhttps://orcid.org/0000-0002-5362-2343http://lattes.cnpq.br/2608583610949216Peres, Leticia Marahttps://orcid.org/0000-0002-8922-6975http://lattes.cnpq.br/4936370324386031Souza, Simone do Rocio Senger dehttps://orcid.org/0000-0001-9007-9821http://lattes.cnpq.br/7137178343756327Nogueira, Pedro Magnus Pedroso2025-02-13T16:31:29Z2025-02-13T16:31:29Z2024-08-14info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfNOGUEIRA, Pedro Magnus Pedroso. RMT 2.0: a tool for the application and identification of design patterns based in microservices. 2024. Dissertação (Mestrado em Ciência da Computação) - Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2024.http://repositorio.utfpr.edu.br/jspui/handle/1/35956enghttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))instname:Universidade Tecnológica Federal do Paraná (UTFPR)instacron:UTFPR2025-02-14T06:09:06Zoai:repositorio.utfpr.edu.br:1/35956Repositório InstitucionalPUBhttp://repositorio.utfpr.edu.br:8080/oai/requestriut@utfpr.edu.br || sibi@utfpr.edu.bropendoar:2025-02-14T06:09:06Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)false
dc.title.none.fl_str_mv RMT 2.0: a tool for the application and identification of design patterns based in microservices
RMT 2.0: uma ferramenta para aplicar e identificar padrões de projetos fundamentada em microsserviços
title RMT 2.0: a tool for the application and identification of design patterns based in microservices
spellingShingle RMT 2.0: a tool for the application and identification of design patterns based in microservices
Nogueira, Pedro Magnus Pedroso
Software - Refatoração
Padrões de software
Automação
Software refactoring
Software patterns
Automation
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Engenharia/Tecnologia/Gestão
title_short RMT 2.0: a tool for the application and identification of design patterns based in microservices
title_full RMT 2.0: a tool for the application and identification of design patterns based in microservices
title_fullStr RMT 2.0: a tool for the application and identification of design patterns based in microservices
title_full_unstemmed RMT 2.0: a tool for the application and identification of design patterns based in microservices
title_sort RMT 2.0: a tool for the application and identification of design patterns based in microservices
author Nogueira, Pedro Magnus Pedroso
author_facet Nogueira, Pedro Magnus Pedroso
author_role author
dc.contributor.none.fl_str_mv Matos, Simone Nasser
https://orcid.org/0000-0002-5362-2343
http://lattes.cnpq.br/2608583610949216
Borges, Helyane Bronoski
https://orcid.org/0000-0002-9153-3819
http://lattes.cnpq.br/8340106221427112
Matos, Simone Nasser
https://orcid.org/0000-0002-5362-2343
http://lattes.cnpq.br/2608583610949216
Peres, Leticia Mara
https://orcid.org/0000-0002-8922-6975
http://lattes.cnpq.br/4936370324386031
Souza, Simone do Rocio Senger de
https://orcid.org/0000-0001-9007-9821
http://lattes.cnpq.br/7137178343756327
dc.contributor.author.fl_str_mv Nogueira, Pedro Magnus Pedroso
dc.subject.por.fl_str_mv Software - Refatoração
Padrões de software
Automação
Software refactoring
Software patterns
Automation
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Engenharia/Tecnologia/Gestão
topic Software - Refatoração
Padrões de software
Automação
Software refactoring
Software patterns
Automation
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Engenharia/Tecnologia/Gestão
description 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.
publishDate 2024
dc.date.none.fl_str_mv 2024-08-14
2025-02-13T16:31:29Z
2025-02-13T16:31:29Z
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 NOGUEIRA, Pedro Magnus Pedroso. RMT 2.0: a tool for the application and identification of design patterns based in microservices. 2024. Dissertação (Mestrado em Ciência da Computação) - Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2024.
http://repositorio.utfpr.edu.br/jspui/handle/1/35956
identifier_str_mv NOGUEIRA, Pedro Magnus Pedroso. RMT 2.0: a tool for the application and identification of design patterns based in microservices. 2024. Dissertação (Mestrado em Ciência da Computação) - Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2024.
url http://repositorio.utfpr.edu.br/jspui/handle/1/35956
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by/4.0/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by/4.0/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Tecnológica Federal do Paraná
Ponta Grossa
Brasil
Programa de Pós-Graduação em Ciência da Computação
UTFPR
publisher.none.fl_str_mv Universidade Tecnológica Federal do Paraná
Ponta Grossa
Brasil
Programa de Pós-Graduação em Ciência da Computação
UTFPR
dc.source.none.fl_str_mv reponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
instname:Universidade Tecnológica Federal do Paraná (UTFPR)
instacron:UTFPR
instname_str Universidade Tecnológica Federal do Paraná (UTFPR)
instacron_str UTFPR
institution UTFPR
reponame_str Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
collection Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))
repository.name.fl_str_mv Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)
repository.mail.fl_str_mv riut@utfpr.edu.br || sibi@utfpr.edu.br
_version_ 1850497863069466624