A tool for detection and visualization of code smells for object-oriented languages.
Fig. 1 System Diagram of the CodeSmell tool
A diagram of the most important architectural components of the tool is shown above. In this package view, many components are omitted in order to keep the diagram readable and emphasize the important components. Java classes are shown in blue to differentiate them from components written in other languages.
- Golan Hassin
- Visakan Kirubakaran
- Sabin Plaiasu
- Martin Rivard
Make sure that the following prerequisites are successfully installed on your machine:
- Java - Download & Install Java. Download Java based on your operating system (JDK 11, 17 and 19 are fine to use).
- Maven - Download & Install Maven. Choosing the latest version will suffice.
- Python - Download & Install Python. Python 3.7+ is required.
- Joern - Please see the joern repository for more details on installing joern.
- GraphViz - Download & Install GraphViz. Used to generate layout program
Ensure the relevant environment variables are set properly:
JAVA_HOME
MAVEN_HOME
joern
dot
, joern
, maven
, java
and python
must also be part of your system PATH variable to use this program.
Run the following command to clean and package the project:
mvn clean package
Build the project files with Maven:
mvn install
In order to execute the main program via the terminal, run the following:
mvn clean javafx:run
In order to run the program through the executable jar via the terminal, the following command can be used:
java -jar ./target/CodeSmell-1.0-SNAPSHOT-shaded.jar
Run the following command to execute all of the tests:
mvn test
In order to skip invoking Joern (which can take a significant amount of time on older hardware), pass the command line argument to skip joern through maven like so:
mvn -Dskip=true javafx:run
MIT © 2023 Golan Hassin, Visakan Kirubakaran, Sabin Plaiasu, Martin Rivard.