The jCosmo code smell browser [1] detects code smells in Java source code that can be used to review the quality of the analyzed code and indicate regions that could benefit from refactoring.
The extracted source models are visualized using the Rigi program
visualization tool [3]. The program structure is used to create a
graph which can be manipulated to provide the different views needed
for various reverse engineering tasks such as program understanding,
architecture extraction, and redocumentation. This graph is augmented
with smells using ``flag'' nodes: whenever a piece of code
possesses a particular smell, the corresponding node gets an additional
node attached to it to document the smell. Several visualizations
have been developed that show these smells at various levels of
abstraction. The smell display is intended to help assess the
system's quality and support refactoring by providing a quick and
intuitive overview of which parts of the system need refactoring. The
code smells that are currently implemented are concerned with
switch
statements, instanceof
statements, and type
casts. New smells can be added by plugging additional modules into
the extractor and by extending the visualization scripts.
Please see our detailed instructions for downloading and installing the jCosmo code smell browser.