Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/35301
Registro completo de metadados
Campo DCValorIdioma
dc.creatorSilva, Breno Farias da-
dc.date.accessioned2024-10-31T21:24:18Z-
dc.date.available2024-10-31T21:24:18Z-
dc.date.issued2024-09-02-
dc.identifier.citationSILVA, Breno Farias da. Abordagem para seleção de exemplos de código de sistemas distribuídos para a criação de exemplos trabalhados de engenharia de software. 2024. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Universidade Tecnológica Federal do Paraná, Campo Mourão, 2024.pt_BR
dc.identifier.urihttp://repositorio.utfpr.edu.br/jspui/handle/1/35301-
dc.description.abstractThis study investigates the evolution of open-source Distributed Systems (DS) projects, including Apache Kafka and ZooKeeper, which aims at selecting code snippets as candidates for creating worked examples that demonstrate important concepts of Software Engineering (SE) and DS, applicable to the teaching of these subjects. To achieve this, the tool called Worked-Example-Miner (WEM) was developed, implementing a heuristic that applies static code quality metrics, such as coupling and complexity, as well as detecting refactoring patterns that indicate improvements in software design. The application of the heuristic to various open-source repositories resulted in the identification of promising candidates for the creation of worked examples. The integration with the Artificial Intelligence (AI) model Google Gemini allowed the identification of candidates addressing specific DS topics, such as distributed consensus and fault tolerance. The results demonstrate that the developed heuristic successfully selects several dozen candidates within the analyzed projects. Considering that the viability of such a heuristic depends on selecting a reduced and relevant number of candidates for expert analysis, this figure represents a reduction in the number of candidates by up to 99.760%, with an average of 95.740% and a small standard deviation of 3.877% relative to the total number of classes in a repository, with thousands of files and tens of thousands of changes, demonstrating that the developed heuristic yields promising results. The evaluation of the candidates by experts in DS and SE confirmed the relevance of the selected code segments for educational purposes.pt_BR
dc.languageporpt_BR
dc.publisherUniversidade Tecnológica Federal do Paranápt_BR
dc.rightsopenAccesspt_BR
dc.rightsAttribution 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/*
dc.subjectEngenharia de softwarept_BR
dc.subjectProgramação heurísticapt_BR
dc.subjectSoftware - Refatoraçãopt_BR
dc.subjectSoftware engineeringpt_BR
dc.subjectHeuristic programmingpt_BR
dc.subjectSoftware refactoringpt_BR
dc.titleAbordagem para seleção de exemplos de código de sistemas distribuídos para a criação de exemplos trabalhados de engenharia de softwarept_BR
dc.title.alternativeAn approach for selecting code examples of distributed systems for creating worked examples of software engineeringpt_BR
dc.typebachelorThesispt_BR
dc.description.resumoContexto: Esta monografia investiga a evolução de projetos de Sistema Distribuído (SD)s de código aberto, incluindo Apache Kafka e ZooKeeper. Objetivo: O objetivo é selecionar trechos de código candidatos para a criação de exemplos trabalhados, que demonstrem conceitos importantes de SD e Engenharia de Software (ES) aplicáveis ao ensino de tais disciplinas. Método: Foi desenvolvida a ferramenta denominada Worked-Example-Miner (WEM), que implementa uma heurística baseada em métricas estáticas de qualidade de código, como acoplamento e complexidade, além da detecção de padrões de refatoração que indiquem melhorias no design do software. A heurística foi aplicada a vários repositórios de código aberto para identificar candidatos promissores. A integração com o modelo de Inteligência Artificial (IA) Google Gemini permitiu a identificação de candidatos que abordam tópicos específicos de SD, como consenso distribuído e tolerância a falhas. Resultados: A aplicação da heurística resultou na identificação de algumas dezenas de candidatos relevantes para a criação de exemplos trabalhados. A redução da quantidade de candidatos foi de até 99,760%, com uma média de 95,740% e um desvio padrão pequeno de 3,877% em relação ao número total de classes em cada repositório, demonstrando a eficácia da heurística. Conclusões: A heurística desenvolvida apresentou resultados promissores ao reduzir significativamente o número de candidatos para análise, mantendo a relevância educacional dos exemplos selecionados. A avaliação dos candidatos por especialistas em SD e ES confirmou a utilidade dos trechos de código para o ensino.pt_BR
dc.degree.localCampo Mourãopt_BR
dc.publisher.localCampo Mouraopt_BR
dc.contributor.advisor1Silva, Marco Aurélio Graciotto-
dc.contributor.advisor-co1Campiolo, Rodrigo-
dc.contributor.referee1Silva, Marco Aurélio Graciotto-
dc.contributor.referee2Campiolo, Rodrigo-
dc.contributor.referee3Wiese, Igor Scaliante-
dc.contributor.referee4Valentin, Lucio Geronimo-
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentDepartamento Acadêmico de Computaçãopt_BR
dc.publisher.programCiência da Computaçãopt_BR
dc.publisher.initialsUTFPRpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpt_BR
Aparece nas coleções:CM - Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
abordagemselecaosistemasdistribuidos.pdf11,43 MBAdobe PDFThumbnail
Visualizar/Abrir


Este item está licenciada sob uma Licença Creative Commons Creative Commons