Um método para descoberta automática de regras para a detecção de Bad Smells

Detalhes bibliográficos
Autor(a) principal: Amorim, Lucas Benevides Viana de
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da Universidade Federal de Alagoas (UFAL)
Texto Completo: http://www.repositorio.ufal.br/handle/riufal/1757
Resumo: One of the techniques to maintain software quality is code refactoring. But to take advantage of code refactoring, one must know where in code it must be applied. A catalog of bad smells in code has been proposed in the literature as a way to know when a certain piece of code should be refactored andwhat kind of refactoring should be applied. This catalog has been extended by other researchers. However, detecting such bad smells is far from trivial, mainly because of the lack of a precise and consensual definition of each Bad Smell. In this researchwork,we propose a solution to the problemof automatic detection of Bad Smells by means of the automatic discovery of metrics based rules. In order to evaluate the effectiveness of the technique, we used a dataset containing information on software metrics calculated for 4 open source software systems written in Java (ArgoUML, Eclipse,Mylyn and Rhino) and, by means of a Decision Tree induction algorithm, C5.0, we were capable of generating rules for the detection of the 12 Bad Smells that were analyzed in our study. Our experiments show that the generate rules performed very satisfactorily when tested against a separated test dataset. Furthermore, aiming to optimize the proposed approach, a Genetic Algorithm was implemented to preselect the most informative software metrics for each Bad Smell and we show that it is possible to reduce classification error in addition to, many times, reduce the size of the generated rules. When compared to existing Bad Smells detection tools, we show evidence that the proposed technique has advantages.
id UFAL_85a0a689a49705cc82981f4c6d458003
oai_identifier_str oai:www.repositorio.ufal.br:riufal/1757
network_acronym_str UFAL
network_name_str Repositório Institucional da Universidade Federal de Alagoas (UFAL)
repository_id_str
spelling Um método para descoberta automática de regras para a detecção de Bad SmellsA method for the automatic discovery of rules for the detection of Bad SmellsInteligência artificialEngenharia de softwareAlgorítmos genéticosArtificial intelligenceSoftware engineeringGenetic algorithmsCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOOne of the techniques to maintain software quality is code refactoring. But to take advantage of code refactoring, one must know where in code it must be applied. A catalog of bad smells in code has been proposed in the literature as a way to know when a certain piece of code should be refactored andwhat kind of refactoring should be applied. This catalog has been extended by other researchers. However, detecting such bad smells is far from trivial, mainly because of the lack of a precise and consensual definition of each Bad Smell. In this researchwork,we propose a solution to the problemof automatic detection of Bad Smells by means of the automatic discovery of metrics based rules. In order to evaluate the effectiveness of the technique, we used a dataset containing information on software metrics calculated for 4 open source software systems written in Java (ArgoUML, Eclipse,Mylyn and Rhino) and, by means of a Decision Tree induction algorithm, C5.0, we were capable of generating rules for the detection of the 12 Bad Smells that were analyzed in our study. Our experiments show that the generate rules performed very satisfactorily when tested against a separated test dataset. Furthermore, aiming to optimize the proposed approach, a Genetic Algorithm was implemented to preselect the most informative software metrics for each Bad Smell and we show that it is possible to reduce classification error in addition to, many times, reduce the size of the generated rules. When compared to existing Bad Smells detection tools, we show evidence that the proposed technique has advantages.Uma das técnicas para a manutenção da qualidade de um software é o refatoramento do código, mas para que esta prática traga benefícios, é necessário saber em que partes do código ela deve ser aplicada. Um catálogo com os problemas estruturais mais comuns (Bad Smells) foi proposto na literatura como uma maneira de saber quando um fragmento de código deve ser refatorado, e que tipo de refatoramento deve ser aplicado. Este catálogo vem sendo estendido por outros pesquisadores. No entanto, a detecção desses Bad Smells, está longe de ser trivial, principalmente devido a falta de uma definição precisa e consensual de cada Bad Smell. Neste trabalho de pesquisa, propomos uma solução para o problema da detecção automática de Bad Smells por meio da descoberta automática de regras baseadas emmétricas de software. Para avaliar a efetividade da técnica, utilizamos um conjunto de dados com informações sobre métricas de software calculadas para 4 sistemas de software de código aberto programados emJava (ArgoUML, Eclipse,Mylyn e Rhino) e, por meio de umalgoritmo classificador, indutor de Árvores deDecisão, C5.0, fomos capazes de gerar regras para a detecção dos 12 Bad Smells analisados emnossos estudos. Nossos experimentos demonstramque regras geradas obtiveramumresultado bastante satisfatório quando testadas emumconjunto de dados à parte (conjunto de testes). Além disso, visando otimizar o desempenho da solução proposta, implementamos um Algoritmo Genético para pré-selecionar as métricas de software mais informativas para cada Bad Smell emostramos que é possível diminuir o erro de classificação alémde, muitas vezes, reduzir o tamanho das regras geradas. Em comparação com ferramentas existentes para detecção de Bad Smells, mostramos indícios de que a técnica proposta apresenta vantagens.Universidade Federal de AlagoasBrasilPrograma de Pós-Graduação em Modelagem Computacional de ConhecimentoUFALCosta, Evandro de Barroshttp://lattes.cnpq.br/5760364940162939Santos Neto, Baldoíno Fonseca doshttp://lattes.cnpq.br/0306751604362704Ribeiro, Márcio de Medeiroshttp://lattes.cnpq.br/9300936571715992Brito, Patrick Henrique da Silvahttp://lattes.cnpq.br/4155051332618408Garcia, : Alessandro Fabríciohttp://lattes.cnpq.br/0807511237795775Amorim, Lucas Benevides Viana de2017-06-23T18:40:53Z2017-06-222017-06-23T18:40:53Z2014-05-05info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfAMORIM, Lucas Benevides Viana de. Um método para descoberta automática de regras para a detecção de Bad Smells. 2014. 64 f. Dissertação (Mestrado em Modelagem Computacional do Conhecimento) – Instituto de Computação, Programa de Pós Graduação em Modelagem Computacional do Conhecimento, Universidade Federal de Alagoas, Maceió, 2014.http://www.repositorio.ufal.br/handle/riufal/1757porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL)instname:Universidade Federal de Alagoas (UFAL)instacron:UFAL2019-01-09T21:23:26Zoai:www.repositorio.ufal.br:riufal/1757Repositório InstitucionalPUBhttp://www.repositorio.ufal.br/oai/requestri@sibi.ufal.bropendoar:2019-01-09T21:23:26Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL)false
dc.title.none.fl_str_mv Um método para descoberta automática de regras para a detecção de Bad Smells
A method for the automatic discovery of rules for the detection of Bad Smells
title Um método para descoberta automática de regras para a detecção de Bad Smells
spellingShingle Um método para descoberta automática de regras para a detecção de Bad Smells
Amorim, Lucas Benevides Viana de
Inteligência artificial
Engenharia de software
Algorítmos genéticos
Artificial intelligence
Software engineering
Genetic algorithms
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Um método para descoberta automática de regras para a detecção de Bad Smells
title_full Um método para descoberta automática de regras para a detecção de Bad Smells
title_fullStr Um método para descoberta automática de regras para a detecção de Bad Smells
title_full_unstemmed Um método para descoberta automática de regras para a detecção de Bad Smells
title_sort Um método para descoberta automática de regras para a detecção de Bad Smells
author Amorim, Lucas Benevides Viana de
author_facet Amorim, Lucas Benevides Viana de
author_role author
dc.contributor.none.fl_str_mv Costa, Evandro de Barros
http://lattes.cnpq.br/5760364940162939
Santos Neto, Baldoíno Fonseca dos
http://lattes.cnpq.br/0306751604362704
Ribeiro, Márcio de Medeiros
http://lattes.cnpq.br/9300936571715992
Brito, Patrick Henrique da Silva
http://lattes.cnpq.br/4155051332618408
Garcia, : Alessandro Fabrício
http://lattes.cnpq.br/0807511237795775
dc.contributor.author.fl_str_mv Amorim, Lucas Benevides Viana de
dc.subject.por.fl_str_mv Inteligência artificial
Engenharia de software
Algorítmos genéticos
Artificial intelligence
Software engineering
Genetic algorithms
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Inteligência artificial
Engenharia de software
Algorítmos genéticos
Artificial intelligence
Software engineering
Genetic algorithms
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description One of the techniques to maintain software quality is code refactoring. But to take advantage of code refactoring, one must know where in code it must be applied. A catalog of bad smells in code has been proposed in the literature as a way to know when a certain piece of code should be refactored andwhat kind of refactoring should be applied. This catalog has been extended by other researchers. However, detecting such bad smells is far from trivial, mainly because of the lack of a precise and consensual definition of each Bad Smell. In this researchwork,we propose a solution to the problemof automatic detection of Bad Smells by means of the automatic discovery of metrics based rules. In order to evaluate the effectiveness of the technique, we used a dataset containing information on software metrics calculated for 4 open source software systems written in Java (ArgoUML, Eclipse,Mylyn and Rhino) and, by means of a Decision Tree induction algorithm, C5.0, we were capable of generating rules for the detection of the 12 Bad Smells that were analyzed in our study. Our experiments show that the generate rules performed very satisfactorily when tested against a separated test dataset. Furthermore, aiming to optimize the proposed approach, a Genetic Algorithm was implemented to preselect the most informative software metrics for each Bad Smell and we show that it is possible to reduce classification error in addition to, many times, reduce the size of the generated rules. When compared to existing Bad Smells detection tools, we show evidence that the proposed technique has advantages.
publishDate 2014
dc.date.none.fl_str_mv 2014-05-05
2017-06-23T18:40:53Z
2017-06-22
2017-06-23T18:40:53Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv AMORIM, Lucas Benevides Viana de. Um método para descoberta automática de regras para a detecção de Bad Smells. 2014. 64 f. Dissertação (Mestrado em Modelagem Computacional do Conhecimento) – Instituto de Computação, Programa de Pós Graduação em Modelagem Computacional do Conhecimento, Universidade Federal de Alagoas, Maceió, 2014.
http://www.repositorio.ufal.br/handle/riufal/1757
identifier_str_mv AMORIM, Lucas Benevides Viana de. Um método para descoberta automática de regras para a detecção de Bad Smells. 2014. 64 f. Dissertação (Mestrado em Modelagem Computacional do Conhecimento) – Instituto de Computação, Programa de Pós Graduação em Modelagem Computacional do Conhecimento, Universidade Federal de Alagoas, Maceió, 2014.
url http://www.repositorio.ufal.br/handle/riufal/1757
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Alagoas
Brasil
Programa de Pós-Graduação em Modelagem Computacional de Conhecimento
UFAL
publisher.none.fl_str_mv Universidade Federal de Alagoas
Brasil
Programa de Pós-Graduação em Modelagem Computacional de Conhecimento
UFAL
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL)
instname:Universidade Federal de Alagoas (UFAL)
instacron:UFAL
instname_str Universidade Federal de Alagoas (UFAL)
instacron_str UFAL
institution UFAL
reponame_str Repositório Institucional da Universidade Federal de Alagoas (UFAL)
collection Repositório Institucional da Universidade Federal de Alagoas (UFAL)
repository.name.fl_str_mv Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL)
repository.mail.fl_str_mv ri@sibi.ufal.br
_version_ 1748233732945346560