Abordagem para seleção de exemplos de código de sistemas distribuídos para a criação de exemplos trabalhados de engenharia de software

Registro completo de metadados
MetadadosDescriçãoIdioma
Autor(es): dc.contributorSilva, Marco Aurélio Graciotto-
Autor(es): dc.contributorCampiolo, Rodrigo-
Autor(es): dc.contributorSilva, Marco Aurélio Graciotto-
Autor(es): dc.contributorCampiolo, Rodrigo-
Autor(es): dc.contributorWiese, Igor Scaliante-
Autor(es): dc.contributorValentin, Lucio Geronimo-
Autor(es): dc.creatorSilva, Breno Farias da-
Data de aceite: dc.date.accessioned2025-08-29T12:59:49Z-
Data de disponibilização: dc.date.available2025-08-29T12:59:49Z-
Data de envio: dc.date.issued2024-10-30-
Data de envio: dc.date.issued2024-10-30-
Data de envio: dc.date.issued2024-09-02-
Fonte completa do material: dc.identifierhttp://repositorio.utfpr.edu.br/jspui/handle/1/35301-
Fonte: dc.identifier.urihttp://educapes.capes.gov.br/handle/capes/1105621-
Descrição: dc.descriptionThis 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.-
Descrição: dc.descriptionContexto: 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.-
Formato: dc.formatapplication/pdf-
Idioma: dc.languagept_BR-
Publicador: dc.publisherUniversidade Tecnológica Federal do Paraná-
Publicador: dc.publisherCampo Mourao-
Publicador: dc.publisherBrasil-
Publicador: dc.publisherDepartamento Acadêmico de Computação-
Publicador: dc.publisherCiência da Computação-
Publicador: dc.publisherUTFPR-
Direitos: dc.rightsopenAccess-
Direitos: dc.rightsAttribution 4.0 International-
Direitos: dc.rightshttp://creativecommons.org/licenses/by/4.0/-
Palavras-chave: dc.subjectEngenharia de software-
Palavras-chave: dc.subjectProgramação heurística-
Palavras-chave: dc.subjectSoftware - Refatoração-
Palavras-chave: dc.subjectSoftware engineering-
Palavras-chave: dc.subjectHeuristic programming-
Palavras-chave: dc.subjectSoftware refactoring-
Palavras-chave: dc.subjectCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO-
Título: dc.titleAbordagem para seleção de exemplos de código de sistemas distribuídos para a criação de exemplos trabalhados de engenharia de software-
Título: dc.titleAn approach for selecting code examples of distributed systems for creating worked examples of software engineering-
Tipo de arquivo: dc.typelivro digital-
Aparece nas coleções:Repositorio Institucional da UTFPR - RIUT

Não existem arquivos associados a este item.