Structure101 is a tool to understand, measure, and control software structure. It allows you to see exactly how your high-level components depend on each other and why. You can use it to find out immediately when your architecture is accidentally changed by code-level changes at the coal-face. It can help you control structural complexity, since it can measure the complexity of methods, classes, and packages and warn you when given limits are exceeded. It can also discover the locations of productivity-killing package dependency cycles.
CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects, mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout performs an analysis of C source code that is more detailed and accurate than current compilers and linkers, as it takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces.
Autodia is a command line Perl application that generates UML class diagrams from source code, SQL, and database connections. It supports multiple programming languages including SQL, and can output images (using GraphViz/VCG/SpringGraph), Dia XML and Umbrello XML, or custom formats using templates.
The Google Singleton Detector, or GSD, is a tool which analyzes Java bytecode and detects the use of Singletons. It's not quite as simple as that, however. First, GSD doesn't only detect singletons; it detects four different types of global state, including singletons, hingletons, mingletons, and fingletons. Second, it outputs a graph with all these different types of static state highlighted, and shows all the classes that are directly dependent on them. The point of this tool is to allow you to see all of the uses of global state inside a project, as well as how they are all interrelated.