Program Understanding Tools

Presentation Engine for Software Comprehension and Explanation :

More tools

ArgoUml - a Java open source UML Tool that can reverse engineer java source files and folders and generate UML diagrams.

Bunch - a software clustering/modularization tool by Mancoridis, from Drexel University, Philadelphia.

Code Navigator



CIAO - a graphical navigator for software and document repositories. AT\&T Labs-Research.

StarBrowser - Smalltalk Lightweight Classification Model and the Star Browser

CodeRover - see DISCOVER
CodeSurfer - a maintenance, understanding, and inspection tool.

CodeWizard - a source code analysis tool that implements coding guidelines for C and C++.

Columbus/CAN - reverse engineering framework and C++ front end of FrontEndART (free for academic purposes).

CPPX - a free, open source, general purpose parser and fact extractor for C++. It relies on the preprocessing, parsing, and semantic analysis of GNU g++, and produces a graph according to the Datrix fact model, in either GXL, TA, or VCG format.


dead link!

CXREF - a C language cross referencing and documenting tool. It produces documentation (in LaTeX, HTML, RTF or SGML) including cross-references from C program source code. From Andrew M. Bishop.

Datrix - software source code assessments with the goal of evaluating the maintainability and the evolability of software products.

dead link!

daVinci - a X-Window visualization tool for drawing directed graphs.

Design Recovery Tool

DISCOVER - a commercial a software development and maintenance environment Carnegie Mellon University, 1996 then bought by MKS (formerly Upspring Software) and integrated into CodeRover. Supports Impact Analysis, Integrity Checker... Commercial, Integration into VisualStudio, JBuilder, Emacs.

GEN++ - an application-generator to support development of analysis tools for the C++ language. From UC Davis and Bell Labs.
GOOSE - a tool set for analysing the design of object-oriented software systems (FAMOOS project).

GraphViz - a graph visualization


Headway - Structure101 lets you quickly understand, measure and control the structure (architecture, design, composition, dependencies, ...) of your code-base (Commercial).

IDA - (interactive disassembler) reverse engineering at low level.

Imagix - a 3D query and visualization tool.

inSight tool suite - Nortel.

Insure+ - a source level run-time debugger for C and C++.

Introspector - A long term project to extract MetaData from FreeSoftwareTools like the Gcc,Perl,Bash. From James Michael DuPont

Juliet - an IDE extension for NetBeans, Forte, JBuilder, JDeveloper.

Klocwork Suite - a commercial suite of RE products targeted at C, C++, and Java.

Lattix LDM - Dependency Structure Matrix (DSM) approach to visualize and manage Java, .NET and C/C++.

Logiscope - a source code analyser and test coverage tool for C/C++/Fortran. Telelogic.

PBS Portable Bookshelf

PL/I Analyzer (REFINE) - an interactive workbench used to analyze and reengineer legacy PL/I systems. Phoenix Software Technologists.

Refactorit - an IDE extension with metrics and refactorings engine and integration for Forte.



SNiFF+ - supports reverse engineering, configuration management, workspaces and build management and provides a set of browsers and parsers. Commercial.

Sotograph - analysis of large-scale object-oriented software systems, reverse engineering, architectural verification, code smells, trend analysis. Commercial.

Source Browser. C Code Browser, non-commercial, Adam Moravanszky.

SOURCE CODE BROWSER - commercial product by Alajava.

Source Explorer - commercial tool for source code browsing and re-engineering.

Source Insight - a commercial project oriented program editor with built-in analysis for C/C++, and Java programs.

Source Navigator (Internet Extensions)

SPOOL - Spreading Desirable Properties into the Design of Object-Oriented, Large-Scale Software Systems.

StP - an UML Editor by Software through Pictures.

Surveyor - A tool for source code analysis, visualization, and documentation in most popular languages, OS's, and IDE's.

sv3D - A 3D tool for software visualization.

Tarantula - Finding software faults by visualizing test results - very specific views on metrics.

IBM Structural Analysis for Java - is a commercial application for analyzing and visualizing large-scale software

TkSee - Knowledge-Based Reverse Engineering of Legacy Telecommunications Software.

Together ControlCenter - commercial round-trip engineering tool for Java.

Understand C / FORTRAN - an interactive development environment (IDE) tool providing reverse engineering, automatic documentation, metrics and cross referencing of C / FORTRAN source code.

VIBRO (VIsualisation BROker Framework) - Visualisation Research Group, participated in SORTIE project. GXL. University of Durham, UK.

Visualize it - a graphical source code visualization tool for Java.

VizzAnalyzer - a powerful framework for reverse engineering in 3D in Java.

XGVis - A system for multidimensional scaling and graph layout in any dimension