Hozano, Mário; http://lattes.cnpq.br/0875764018578208; SOUZA, Mário Hozano Lucas de.
Resumo:
Bad smells indicate poor implementation choices that may hinder program comprehension
and maintenance. Their informal definition allows developers to follow different heuristics
to detect smells in their projects. In such context, machine learning algorithms have been
adapted to customize smell detection according to a set of examples of smell evaluations.
However, such customization is not guided (i.e. constrained) to consider alternative heuristics used by developers when detecting smells. As a result, their customization might not be efficient, requiring a considerable effort to reach high effectiveness. This work presents an extensive study concerning how similar the developers detect smells in code, and investigate which factors may influence in such detection. The findings of this study lead to the creation of Histrategy, a guided customization technique to improve the efficiency on smell detection. Histrategy considers a limited set of detection strategies, produced from different detection heuristics, as input of a customization process. The output of the customization process consists of a detection strategy tailored to each developer. The technique was evaluated in an experimental study with 62 developers and eight types of code smells. The results showed that Histrategy is able to outperform six widely adopted machine learning algorithms, used in unguided approaches. Finally, the results confirmed that the guided customization was able to support developers with effective and efficient detection strategies.