Uma ferramenta para a detecção de inconformidades com a regra de dependências da Clean Architecture em Python

dc.contributor.advisorFagundes Silveira, Fábio
dc.contributor.advisorLatteshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4775048A1&tokenCaptchar=03AGdBq248OyFdtrNTh8qGqhdYcSxJo2B-2ZBTaY_huBBThuvfbi6BWCuIEdcxTaLy4Zoitjy1UBKvV-E_0NHESgB6805aNJsSl5fdb7D-K5_r-_6tRFDGO0AWLIR_78CE89bXfoOqDEuoGPFneyQsADMgbLvBmQtn8DrRpuMeV2zlbx5m2-AwQb0CocZ0DClGlZFRi56hYFT0QIu-_qLKr5EL-cuvlFTL-GaymtLDRffIKxeUdlFwT45rQUuGqBQBSknfRfVYSZbexjc9w3YT7pzIkIUy52uIYWZgRQmjKglzBWzkaVnS1KWCFNT6LOxvAG4EzTfNNvrpJXR5I9KjZW2vLTWvDjVnNLKXwX5UKgSmJSlBSDGjTrhmZpCCcCyJ2CpcTWsZh_VlmQnW8wcfofhw8BkBlpVpMx0bWo29LFwXS-fvAdoSs6GDpku8RYGpIlzLZhnHOewa7gRqotGzkAQqUyWMxfGhNApt_BR
dc.contributor.authorde Oliveira Junior, Clevio Orlando
dc.contributor.authorLatteshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K9138262H5&tokenCaptchar=03AGdBq25dflsuXg6qIzXyipQ89mq6Sw-XAlF-CvkKqjlRcMdPCZPQktFdd99lPDvJoCZpNI0mGL9Q88egCC8JIiMdef2uw1u2C_wzw6MKFYN_c_V5iQYOG8LsRirVQsDQblOscWBKrB_4tYLM7tlooOOlIyDizR4oGlQ-LGA1f8OpaTK2KJ4qJDBVcEY1ts9Ojx8hUCH9_SHU0u7YKPRiaySqh-zm2AyLt2ZGSyzR4cn5Y4ncLRtqsrJ9LQUdkANlGIl4Uw7pd3XhA6FXpD8wskR7LBt8EhkYA5mhDRlkFA6GEO4JOxtos1Se8GokgZBs1UiWxxwAvQrIJUYdM4zxNn7p2JOk1vsZuAE6HNlFivwkbT4d6CznDqNO11dcbMxPkARRVTfzOKIVcMKxuT8bCJBxgEBKKsarOh5kuo7VO3CYsTO6K_bf8sbBBvpvgPL-mjlzP8UuamVd41r95Vz3ue3FJti2BRykMApt_BR
dc.coverage.spatialSão José dos Campos, São Paulo, Brasilpt_BR
dc.date.accessioned2022-02-22T18:42:36Z
dc.date.available2022-02-22T18:42:36Z
dc.date.issued2022-02-11
dc.description.abstractDevido à necessidade encontrada na Engenharia de Software de criar aplicações com maior coesão e menor acoplamento, Robert C. Martin propôs a Clean Architecture. A Clean Architecture e sua obra literária ensinam diversos conceitos para arquitetos de software e desenvolvedores, conceitos estes que buscam o objetivo único de criar aplicações mais estáveis, duráveis e flexíveis, que conseguem distinguir um detalhe de algo crucial para seu funcionamento. Este trabalho canaliza esforços para modelar e adaptar projetos existentes aos preceitos da Clean Architecture através de detecção de bad smells, termo utilizado para descrever trechos de código que sinalizam problemas, e técnicas de refatoração pertinentes à violação dos preceitos da Clean Architecture. É evidente que muito já foi realizado para catalogar e tratar bad smells clássicos, os code smells. No entanto, o mesmo não pode ser dito para architecture smells, termo também derivado de bad smells, mas com um foco em arquiteturas de software. A fim de encontrar e catalogar maneiras eficazes de realizar refatoração, foram realizadas pesquisas sobre as diferentes formas que os bad smells podem se manifestar, pois, tendo esse conhecimento, se torna factível a detecção destes bad smells e pode ser realizado um experimento em diferentes aplicações a fim de propor novas formas de refatorar o design de uma aplicação. Neste trabalho, os esforços foram direcionados à linguagem Python, e com inspiração em trabalhos realizados para a Clean Architecture e outros estilos arquiteturais como o MVC, em outras linguagens de programação, como Java, PHP e C#, foram agrupadas e comparadas diversas ferramentas de análise estática de código a fim de desenvolver uma maneira de utilizá-las em conjunto para estabelecer regras que identifiquem de forma programática a violação da regra de dependências para a Clean Architecture.pt_BR
dc.description.abstractClean Architecture was first introduced by Robert C. Martin to address the need for more loosely coupled components and better cohesion. The Clean Architecture focuses on preparing software engineers to write more stable, durable and flexible applications capable of distinguishing between mere details (e.g. what framework it uses) and business logic vital to its functioning. This work directs efforts towards redesigning and readapting existing programs to the Clean Architecture through detecting so-called bad smells - a term used to describe when a piece of code might lead to problems in the future - that break Clean Architecture constraints and finding refactoring techniques to solve these smells efficiently. The literature shows that much has been done to catalogue and solve bad smells related to code, often called code smells. However, the same does not apply to architecture smells - its software architecture counterpart. First, research has been done to find different ways architecture smells manifest so that later, it becomes easier to experiment and compare different refactoring techniques that impact existing projects' design. Even though the chosen programming in this work has been Python, thorough research has been done on previous papers showing similar work written in Java, PHP, or C# and other architectural styles such as the MVC. That allows grouping and comparing static code analysis tools and find a way to reuse them to enforce Clean Architecture's Dependency Rule programmatically.pt_BR
dc.description.sponsorshipNão recebi financiamentopt_BR
dc.identifier.urihttps://hdl.handle.net/11600/63079
dc.languageporpt_BR
dc.publisherUniversidade Federal de São Paulopt_BR
dc.rightsAcesso abertopt_BR
dc.subjectEngenharia de Softwarept_BR
dc.subjectClean Architecturept_BR
dc.subjectBad Smellspt_BR
dc.subjectRefatoraçãopt_BR
dc.titleUma ferramenta para a detecção de inconformidades com a regra de dependências da Clean Architecture em Pythonpt_BR
dc.title.alternativeA Tool to Enforce the Clean Architecture’s Dependency Rule in Pythonpt_BR
dc.typeTrabalho de conclusão de curso de graduaçãopt_BR
unifesp.campusInstituto de Ciência e Tecnologia (ICT)pt_BR
unifesp.graduacaoCiência da Computaçãopt_BR
Arquivos
Pacote Original
Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Monografia Final.pdf
Tamanho:
1.5 MB
Formato:
Adobe Portable Document Format
Descrição:
Licença do Pacote
Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
5.73 KB
Formato:
Item-specific license agreed upon to submission
Descrição: