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