SemmleCode exposes the relationships between elements of your codebase, so you can search for bugs, style violations, and determine what elements are impacted by a proposed change. Query results can be viewed as charts, as graphs, as a tree view, or in the Eclipse problems view. There are pre-defined queries for most common tasks, and these can be launched via the Eclipse run menu.
SemmleCode is unique in that all the checks and rules can be formulated in a simple yet powerful object-oriented query language called .QL. That makes it a truly agile tool for code queries and source code analysis: you think of a new check or metric, and it takes just a couple of lines of .QL to try it out.
As a tiny example query, suppose you wish to find all methods in source code that have more than 8 parameters. Often such methods ought to be refactored, wrapping all those parameters in an appropriate object. In .QL, you write
from Method m
where m.fromSource() and m.getNumberOfParams() > 8
select m, "wrap parameters in object?"
The results of this query can be reported in the Eclipse problems view, and simultaneously as warning markers in the code itself.
A new, Professional Edition of SemmleCode is now available from http://semmle.com. It provides tons of different visualizations, and many more carefully tuned analyses. Enjoy!