Code Smell Detection in Eclipse
Refactoring is a software engineering technique that, by applying a series of small behavior-preserving transformations, can improve a software system s design, readability and extensibility. Code smells are signs that indicate that source code might need refactoring. The goal of this thesis project was to develop a prototype of a code smell detection plug-in for the Eclipse IDE framework. In earlier research by Van Emden and Moonen, a tool was developed to detect code smells in Java source code and visualize them in graph views. CodeNose, the plug-in prototype created in this thesis project, presents code smells in the Tasks View in Eclipse, similar to the way compiler errors and warnings are presented. These code smell reports provide feedback about the quality of a software system. CodeNose uses the Eclipse JDT parser to build abstract syntax trees that represent the source code. A tree visitor detects primitive code smells and collects derived smell aspects, which are written to a fact database and passed to a relational algebra calculator, the Grok tool. The results of the calculations on these facts can be used to infer more complex code smells. In a case study, the plug-in was tested by performing the code smell detection process on an existing software system. We present the case study results, focusing at performance of the plug-in and usefulness of the code smells that were detected.