Mostrar registro simples

dc.contributor.advisorParreiras, Fernando Silva
dc.contributor.authorLuiz, Frederico Caram
dc.date.accessioned2019-06-04T21:09:13Z
dc.date.available2019-06-04T21:09:13Z
dc.date.issued2018
dc.identifier.urihttps://repositorio.fumec.br/xmlui/handle/123456789/175
dc.description.abstractContext: Code smells are an accepted approach to identify design flaws in the source code. Many studies regarding their automatic identification were developed, ranging from hard threshold metrics based and rule based to machine learning techniques. But there is still a lack of empirical benchmarks to define when they should be used. Objective: This study aims at the development of an mapping study of machine learning techniques and code smells found in literature and of an experiment based on the stateof- art machine learning techniques identified and applied in a standardized dataset that reflects a real project scenario in order to create a benchmark for future work. Method: A mapping study was used to identify the techniques used for each smell and an empirical experiment based on the previously identified techniques. Results: From the studied smells, the technique used for Long Method was the one that performed closer to the original experiments, but yet 34% worst than it, while most were outperformed by more than 50% and some performed even 86% below the original experiments. The imbalanced dataset techniques that were used, also performed worst than it, but still were able to bring improvement, ranging from 1% that was the case of Long Methods and Feature Envy to more than 100% in the case of Shotgun Surgery and Parallel Inheritance. Conclusions: The replicated techniques results diverged from the original experiment. But techniques for imbalanced data were able improve the existing techniques under these circumstances. Ensemble models presented the best performance for relationships between methods and classes, while the Boosting techniques for the ones related to the structure of classes and methods. For future experiments, we suggest future works to further extend the database by adding other smells kind and techniques to it to create a broader benchmarking.pt_BR
dc.description.abstractContexto: Code smells são uma abordagem bem aceita para a identificação de problemas de design do código. Muitos estudos envolvendo sua identificação automática já foram desenvolvidos, abrangendo desde técnicas baseadas em limites rígidos até as baseadas em machine learning. Mas ainda faltam evidências empricas para definir quais são melhores para cada cenário. Objetivo: Este estudo busca desenvolver um estudo de mapeamento de técnicas de machine learning para a identificação de code smells na literatura e um experimento baseado nas técnicas estado da arte identificadas a partir dele e aplicadas em um banco de dados padronizado, refletindo um cenário próximo ao real com o objetivo de criar uma referência para pesquisas futuras. Método: Um estudo de mapeamento para identificação das técnicas utilizadas para code smell e um experimento empirico baseado nas técnincas identificadas préviamente. Resultados: Dos code smell estudados a técnica used para Long Methods foi a que performou mais próxima ao experimento original, mas ainda assim 34% pior, enquanto a maioria das outras performou 50 Conclusões: Os resultados apresentaram variação em relação aos experimentos originais. Mas as técnicas para bases desbalanceadas conseguiram apresentar melhora em relação à elas. Os modelos de Ensemble apresentaram a melhor performance em code smells que envolvem o relacionamento entrem classes e métodos, enquanto as técnicas de Boosting foram melhores os mais estruturais. Para futuros experimentos, sugerimos estender o database para incluir mais tipos de code smells e testar novas técnicas para criar um benchmarking mais amplo.pt_BR
dc.language.isoen_USpt_BR
dc.rightsAcesso abertopt_BR
dc.subjectAprendizado do computadorpt_BR
dc.subjectIdentificaçãopt_BR
dc.subjectComputaçãopt_BR
dc.titleIdentifying Code Smells with Machine Learning Techniquespt_BR
dc.typeDissertationpt_BR
dc.publisher.programMestrado em Sistemas de Informação e Gestão do Conhecimentopt_BR
dc.publisher.initialsFUMECpt_BR
dc.publisher.departamentFaculdade de Ciências Empresariaispt_BR


Arquivos deste item

Thumbnail

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples