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

  • Vinicius T. Pimenta UFLA
  • Elder Cirilo UFSJ
  • Ricardo Terra UFLA

Resumo


A arquitetura limpa é uma abordagem de desenvolvimento de software que visa facilitar a compreensão, manutenção e evolução do código, através da separação de responsabilidades em camadas claramente definidas. No entanto, essa arquitetura aumenta a verbosidade e a complexidade do sistema devido ao uso de muitas interfaces e classes adicionais, exigindo uma maior curva de aprendizado. Este trabalho avalia o esforço de troca de bibliotecas em sistemas com e sem arquitetura limpa. Um sistema desenvolvido com uma arquitetura convencional foi convertido para seguir todas as diretrizes da arquitetura limpa. Em seguida, três bibliotecas foram substituídas: typeorm por prisma, express por apollo-server e bull por bullmq. O esforço foi medido em termos de linhas de código alteradas e tempo necessário para as trocas. A conclusão foi que a arquitetura limpa apresentou menor esforço para trocar as bibliotecas, mas maior tempo de implementação, resultando em um sistema mais fácil de manter.

Referências

Leonardo Henrique De Braz. Domain Driven Design: Vantagens e desvantagens em seu uso. B.sc. conclusion paper, Universidade Federal de Lavras, Trabalho de conclusão de curso de Ciência da Computação. Universidade Federal de Lavras, 2021.

Felipe Buzzi. Prisma: uma das melhores coisas que já aconteceu no ecossistema? Disponível em: [link], 2022. Acesso em: 13 fev. 2023.

Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476–493, 1994.

Samuel da Silva Feitosa and Rafaela Lunardi Comarella. Aprendendo conceitos de orientação a objetos usando as ferramentas Scratch e Snap! Anais do Computer on the Beach, 11(1):490–496, 2020.

Godwin Ekuma. Asynchronous task processing in node.js with bull. Disponível em: [link], 2020. Acesso em: 13 fev. 2023.

Norman E. Fenton. Software Metrics: A Rigorous and Practical Approach. CRC Press, 1999.

Elton Fonseca. O que é orm? Disponível em: [link], 2020. Acesso em: 13 fev. 2023.

Guilherme Forte. Over-fetching and under-fetching: Rest apis’ exhaustion signs. Disponível em: [link], 2022. Acesso em: 13 fev. 2023.

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

S. Henry and D. Kafura. Software metrics: a research evaluation. IEEE Transactions on Software Engineering, SE-7(6):576–590, 1981.

Robert C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 2002.

Robert C Martin, James Grenning, Simon Brown, Kevlin Henney, and Jason Gorman. Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall, 2018.

Danilo Masotti. Clean architecture: descubra o que é e onde aplicar arquitetura limpa. Disponível em: [link], 2021. Acesso em: 13 jan. 2022.

Cairo Noleto. Bancos de dados. Disponível em: [link], 2021. Acesso em: 13 fev. 2023.

Jacqueline Oliveira. Log4j: entenda mais sobre a vulnerabilidade do bug. Disponível em: [link], 2021. Acesso em: 13 fev. 2023.

Marudhu Pandiyan. Bullmq — message queue in node.js. Disponível em: [link], 2023. Acesso em: 13 fev. 2023.

Priyadarshi Tripathy and Kshirasagar Naik. Software evolution and maintenance: a practitioner’s approach. John Wiley & Sons, 2014.

Bruna Vidanya. Graphql vs. rest: Qual o melhor para o desenvolvimento de api? Disponível em: [link], 2021. Acesso em: 13 fev. 2023.

Larry | Peng Yang. System design - message queues. Disponível em: [link], 2020. Acesso em: 13 fev. 2023.
Publicado
30/09/2024
PIMENTA, Vinicius T.; CIRILO, Elder; TERRA, Ricardo. Troca de Bibliotecas em Sistemas com e sem Arquitetura Limpa: Uma Análise de Esforço. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (VEM), 12. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 23-34. DOI: https://doi.org/10.5753/vem.2024.3829.