Return to search

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

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. / 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.

Identiferoai:union.ndltd.org:IBICT/oai:www.repositorio.ufal.br:riufal/1757
Date05 May 2014
CreatorsAmorim, Lucas Benevides Viana de
ContributorsCosta, 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
PublisherUniversidade Federal de Alagoas, Brasil, Programa de Pós-Graduação em Modelagem Computacional de Conhecimento, UFAL
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UFAL, instname:Universidade Federal de Alagoas, instacron:UFAL
Rightsinfo:eu-repo/semantics/openAccess
Relationbitstream:http://www.repositorio.ufal.br:8080/bitstream/riufal/1757/2/license.txt, bitstream:http://www.repositorio.ufal.br:8080/bitstream/riufal/1757/1/Um+m%C3%A9todo+para+descoberta+autom%C3%A1tica+de+regras+para+a+detec%C3%A7%C3%A3o+de+Bad+Smells.pdf

Page generated in 0.002 seconds