{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,10,18]],"date-time":"2024-10-18T04:32:40Z","timestamp":1729225960920,"version":"3.27.0"},"reference-count":19,"publisher":"Sociedade Brasileira de Computa\u00e7\u00e3o - SBC","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"abstract":"A arquitetura limpa \u00e9 uma abordagem de desenvolvimento de software que visa facilitar a compreens\u00e3o, manuten\u00e7\u00e3o e evolu\u00e7\u00e3o do c\u00f3digo, atrav\u00e9s da separa\u00e7\u00e3o 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\u00e7o 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\u00eas bibliotecas foram substitu\u00eddas: typeorm por prisma, express por apollo-server e bull por bullmq. O esfor\u00e7o foi medido em termos de linhas de c\u00f3digo alteradas e tempo necess\u00e1rio para as trocas. A conclus\u00e3o foi que a arquitetura limpa apresentou menor esfor\u00e7o para trocar as bibliotecas, mas maior tempo de implementa\u00e7\u00e3o, resultando em um sistema mais f\u00e1cil de manter.<\/jats:p>","DOI":"10.5753\/vem.2024.3829","type":"proceedings-article","created":{"date-parts":[[2024,10,17]],"date-time":"2024-10-17T17:36:19Z","timestamp":1729186579000},"page":"23-34","source":"Crossref","is-referenced-by-count":0,"title":["Troca de Bibliotecas em Sistemas com e sem Arquitetura Limpa: Uma An\u00e1lise de Esfor\u00e7o"],"prefix":"10.5753","author":[{"given":"Vinicius T.","family":"Pimenta","sequence":"first","affiliation":[]},{"given":"Elder","family":"Cirilo","sequence":"additional","affiliation":[]},{"given":"Ricardo","family":"Terra","sequence":"additional","affiliation":[]}],"member":"3742","published-online":{"date-parts":[[2024,9,30]]},"reference":[{"key":"1","unstructured":"Leonardo Henrique De Braz. Domain Driven Design: Vantagens e desvantagens em seu uso. B.sc. conclusion paper, Universidade Federal de Lavras, Trabalho de conclus\u00e3o de curso de Ci\u00eancia da Computa\u00e7\u00e3o. Universidade Federal de Lavras, 2021."},{"key":"2","unstructured":"Felipe Buzzi. Prisma: uma das melhores coisas que j\u00e1 aconteceu no ecossistema? Dispon\u00edvel em: [link]<\/a>, 2022. Acesso em: 13 fev. 2023."},{"key":"3","doi-asserted-by":"crossref","unstructured":"Shyam R. Chidamber and Chris F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476\u2013493, 1994.","DOI":"10.1109\/32.295895"},{"key":"4","doi-asserted-by":"crossref","unstructured":"Samuel da Silva Feitosa and Rafaela Lunardi Comarella. Aprendendo conceitos de orienta\u00e7\u00e3o a objetos usando as ferramentas Scratch e Snap! Anais do Computer on the Beach, 11(1):490\u2013496, 2020.","DOI":"10.14210\/cotb.v11n1.p490-496"},{"key":"5","unstructured":"Godwin Ekuma. Asynchronous task processing in node.js with bull. Dispon\u00edvel em: [link]<\/a>, 2020. Acesso em: 13 fev. 2023."},{"key":"6","unstructured":"Norman E. Fenton. Software Metrics: A Rigorous and Practical Approach. CRC Press, 1999."},{"key":"7","unstructured":"Elton Fonseca. O que \u00e9 orm? Dispon\u00edvel em: [link]<\/a>, 2020. Acesso em: 13 fev. 2023."},{"key":"8","unstructured":"Guilherme Forte. Over-fetching and under-fetching: Rest apis\u2019 exhaustion signs. Dispon\u00edvel em: [link]<\/a>, 2022. Acesso em: 13 fev. 2023."},{"key":"9","unstructured":"Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995."},{"key":"10","doi-asserted-by":"crossref","unstructured":"S. Henry and D. Kafura. Software metrics: a research evaluation. IEEE Transactions on Software Engineering, SE-7(6):576\u2013590, 1981.","DOI":"10.1109\/TSE.1981.231113"},{"key":"11","unstructured":"Robert C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall, 2002."},{"key":"12","unstructured":"Robert C Martin, James Grenning, Simon Brown, Kevlin Henney, and Jason Gorman. Clean architecture: a craftsman\u2019s guide to software structure and design. Prentice Hall, 2018."},{"key":"13","unstructured":"Danilo Masotti. Clean architecture: descubra o que \u00e9 e onde aplicar arquitetura limpa. Dispon\u00edvel em: [link]<\/a>, 2021. Acesso em: 13 jan. 2022."},{"key":"14","unstructured":"Cairo Noleto. Bancos de dados. Dispon\u00edvel em: [link]<\/a>, 2021. Acesso em: 13 fev. 2023."},{"key":"15","unstructured":"Jacqueline Oliveira. Log4j: entenda mais sobre a vulnerabilidade do bug. Dispon\u00edvel em: [link]<\/a>, 2021. Acesso em: 13 fev. 2023."},{"key":"16","unstructured":"Marudhu Pandiyan. Bullmq \u2014 message queue in node.js. Dispon\u00edvel em: [link]<\/a>, 2023. Acesso em: 13 fev. 2023."},{"key":"17","doi-asserted-by":"crossref","unstructured":"Priyadarshi Tripathy and Kshirasagar Naik. Software evolution and maintenance: a practitioner\u2019s approach. John Wiley & Sons, 2014.","DOI":"10.1002\/9781118964637"},{"key":"18","unstructured":"Bruna Vidanya. Graphql vs. rest: Qual o melhor para o desenvolvimento de api? Dispon\u00edvel em: [link]<\/a>, 2021. Acesso em: 13 fev. 2023."},{"key":"19","unstructured":"Larry | Peng Yang. System design - message queues. Dispon\u00edvel em: [link]<\/a>, 2020. Acesso em: 13 fev. 2023."}],"event":{"name":"Workshop de Visualiza\u00e7\u00e3o, Evolu\u00e7\u00e3o e Manuten\u00e7\u00e3o de Software","location":"Brasil","acronym":"VEM 2024","number":"12"},"container-title":["Anais do XII Workshop de Visualiza\u00e7\u00e3o, Evolu\u00e7\u00e3o e Manuten\u00e7\u00e3o de Software (VEM 2024)"],"original-title":[],"link":[{"URL":"https:\/\/sol.sbc.org.br\/index.php\/vem\/article\/download\/30279\/30085","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/sol.sbc.org.br\/index.php\/vem\/article\/download\/30279\/30085","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,10,17]],"date-time":"2024-10-17T17:39:18Z","timestamp":1729186758000},"score":1,"resource":{"primary":{"URL":"https:\/\/sol.sbc.org.br\/index.php\/vem\/article\/view\/30279"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,9,30]]},"references-count":19,"URL":"https:\/\/doi.org\/10.5753\/vem.2024.3829","relation":{},"subject":[],"published":{"date-parts":[[2024,9,30]]}}}