SIP – Sistema Integrado de Processos
Menu: TCCs de Ciência da Computação

Título: Troca de Bibliotecas em Sistemas com e sem Arquitetura Limpa Uma Análise de Esforço

Título alternativo: Replacing libraries in ordinary systems versus those following clean architecture an effort analysis

Autoria de: Vinicius Tavares Pimenta

Orientação de: Ricardo Terra Nunes Bueno Villela

Presidente da banca: Ricardo Terra Nunes Bueno Villela

Primeiro membro da banca: Antonio Maria Pereira de Resende

Segundo membro da banca: Paulo Afonso Parreira Junior

Palavras-chaves: Arquitetura de Software, Engenharia de Software, Manutenção de Software, Coesão, Acoplamento

Data da defesa: 24/02/2023

Semestre letivo da defesa: 2022-2

Data da versão final: 10/03/2023

Data da publicação: 10/03/2023

Referência: Pimenta, V. T. Troca de Bibliotecas em Sistemas com e sem Arquitetura Limpa Uma Análise de Esforço. 2023. 36 p. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação Bacharelado)-Universidade Federal de Lavras, Lavras, 2023.

Resumo: A arquitetura limpa consiste em uma abordagem de desenvolvimento de software que busca facilitar a compreensão, manutenção e evolução do código. No entanto, a arquitetura limpa exige um uso demasiado de interfaces e classes adicionais para deixar o código mais desacoplado e coeso, o que aumenta a verbosidade e a complexidade do sistema. Diante disso, este trabalho de conclusão de curso avalia o esforço de trocas de bibliotecas em sistemas com e sem arquitetura limpa. Basicamente, um mesmo sistema desenvolvido em uma arquitetura convencional foi convertido usando todas as diretrizes e práticas da arquitetura limpa pelo primeiro autor deste artigo. As seguintes três bibliotecas foram substituídas typeorm pela prisma, express pela apollo-server e bull pelo bullmq. O esforço das trocas foi medido em relação à alteração de linhas de código e ao tempo que o desenvolvedor levou para efetuar as trocas. Como as principais contribuições deste trabalho (i) prover um dataset com dois sistemas de software equivalentes, um com arquitetura convencional e outro seguindo todos os princípios da arquitetura limpa (ii) fornecer uma análise empírica dos esforços dos ajustes necessários para converter o sistema em arquitetura limpa e (iii) conduzir um estudo empírico sobre o esforço para troca de bibliotecas em sistema com e sem arquitetura limpa. Como os principais resultados, o estudo conclui que as bibliotecas typeorm, apollo-server e bullmq agregam mais complexidade ao sistema em relação à quantidade de linhas de código em comparação com as bibliotecas prisma, express e bull, respectivamente. Ademais, verificou-se que o sistema com arquitetura limpa apresenta um menor esforço em termos de linhas de código para as trocas das bibliotecas prisma e apollo-server em comparação com o sistema convencional, com exceção a biblioteca bullmq em que foi indiferente para ambos sistemas. Por fim, constata-se que, embora o sistema com arquitetura limpa requisitou um tempo maior de implementação das bibliotecas, evidenciou-se um sistema com um acoplamento menor que o sistema convencional, devido ao fato de que as trocas de bibliotecas são mais rápidas, tornando-o mais fácil de manter.

Abstract: Clean architecture is a software development approach that aims to facilitate code comprehension, maintenance, and evolution. However, clean architecture requires a significant use of interfaces and additional classes to make the code more decoupled and cohesive, which increases verbosity and system complexity. This B.Sc. conclusion paper evaluates the effort required to switch libraries in systems with and without clean architecture. Essentially, the same system developed using a conventional architecture was converted using all the guidelines and practices of clean architecture by the first author of this article. The following three libraries were replaced typeorm with prisma, express with apollo-server, and bull with bullmq. The effort of the changes was measured in terms of changed lines of code and the time it took the developer to make the changes. The main contributions of this study are (i) providing a dataset with two equivalent software systems, one with conventional architecture and the other following all the principles of clean architecture (ii) providing an empirical analysis of the effort required to convert the system to clean architecture and (iii) conducting an empirical study on the effort required to switch libraries in systems with and without clean architecture. The main results show that libraries typeorm, apollo-server, and bullmq add more complexity to the system in terms of lines of code compared to libraries prisma, express, and bull, respectively. Additionally, we found that the clean architecture system requires less effort in terms of lines of code to switch the prisma and apollo-server libraries compared to the conventional system, except for the bullmq library, where it was indifferent for both systems. Finally, we argue that although the clean architecture system required a longer implementation time for the libraries, it resulted in a system with lower coupling than the conventional system because the library switch itself was faster, making it easier to maintain.

URI: sip.prg.ufla.br/publico/trabalhos_conclusao_curso/acessar_tcc_por_curso/
ciencia_da_computacao/20222201720354

URI alternaviva: sem URI do Repositório Institucional da UFLA até o momento.

Curso: G010 - CIÊNCIA DA COMPUTAÇÃO (BACHARELADO)

Nome da editora: Universidade Federal de Lavras

Sigla da editora: UFLA

País da editora: Brasil

Gênero textual: Trabalho de Conclusão de Curso

Nome da língua do conteúdo: Português

Código da língua do conteúdo: por

Licença de acesso: Acesso aberto

Nome da licença: Licença do Repositório Institucional da Universidade Federal de Lavras

URI da licença: repositorio.ufla.br

Termos da licença: Acesso aos termos da licença em repositorio.ufla.br

Detentores dos direitos autorais: Vinicius Tavares Pimenta e Universidade Federal de Lavras

Baixar arquivo