Softwarenaut is a software exploration prototype which is targeted at supporting software understanding and reverse engineering. The tool makes heavy use of visualization and interactivity and provides multiple perspectives on a software system.
Exploration with Softwarenaut assumes a hierarchical decomposition of the system. This decomposition can be either the package structure for Java projects, the directory structure for C/C\++ projects or a hierarchical clustered decomposition of a system. Softwarenaut is independent of the language the program is written in as long as you can provide a model of that program in CDIF or XMI interchange format. Hopefully, sometime soon we will be able to work also with MSE.
Given such a hierarchical decomposition, exploration with Softwarenaut starts with a view of the top-level modules in the system and their dependencies. The user can then continuously refine the view by expanding, collapsing and filtering nodes and edges.