WekaNose is a tool that allows to perform an experiment, that aims to study code smell detection through machine learning techniques. The experiment's purpose is to select rules, or obtain trained algorithms, that can classify an instance (method or class) as affected or not by a code smell. These rules have the main advantage that they are extracted through an example-based approach, rather then a heuristic-based one.

This experiment is divided in two main part:

  1. the first one concern the creation of the dataset
  2. the second one where the machine learning algorithms are trained
    and tested using the dataset created in the first part.


How to run

For run WekaNose you just need to type in the command line:

java -jar WekaNose.jar

N.B. Do NOT open the jar double-clicking on it, because the workspace's path (./WekaNose/result) will be compromised


  • Java 8 or higher
  • Right now this is not enough because some of the algorithms, for example LibSVM, create automatically a parameter -model <WEKA path>, where WEKA path is C:\User\ProgramFiles\Weka in Windows, /home/user/Weka otherwise. Basically if you want to be sure that all the machine learning algorithms will run without problem you need to install WEKA:


For every further information, please check out:

Video Demo-Tutorial

Video tutorial of WekaNose is available on YouTube: