Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

This is doxygraph, a free system for reverse engineering UML class diagrams
from source code, and presenting those diagrams as interactive web apps. It
relies on Doxygen for parsing source code, so it supports all the languages
that Doxygen supports: C, C++, C#, Objective C, Java, Python, PHP, Tcl, D, IDL,
VHDL, and Fortran.

Doxygraph is composed of two parts:

	A Perl script that will generate a diagram in Graphviz dot format, using
	as input the XML based format generated by Doxygen.

	A JavaScript app that will interactively present a diagram generated
	by the doxygraph Perl script. The manipulation and rendering of graphs
	relies on bindviz, which is an automated JavaScript port of Graphviz
	ported using emscripten.

Quick Start

If you have a project for which you want to generate a class diagram, and you
are already using Doxygen to generate API documentation for this project, then
as a preliminary step, you simply need to edit your Doxyfile and ensure that it
sets the option GENERATE_XML = YES.

If you are not already using Doxygen to generate API documentation for your
project, then the preliminary step is to install Doxygen and configure it to
process your project's header files. This is a simple process, documented at During this process, make sure to set the option
GENERATE_XML = YES. In addition, if you set the option EXTRACT_ALL = YES then
you won't need to worry about adding special Doxygen comments to all of your
classes; this option will cause Doxygen to parse the classes even if the
comments are not present.

When you have a project with a Doxyfile properly set up for generating Doxygen
XML files from your project's header files, then the first step in the doxygraph
pipeline is to run Doxygen, which will generate a set of XML files.

If you don't have a specific project for which you want to generate a diagram,
but just want to try out doxygraph and see how it works, there are some example
Doxygen XML files provided in the examples directory.

When you have your Doxygen XML files, the next step is to run the following
command from within the doxygraph root directory, which will convert the XML
files into a Graphviz dot file:
perl doxygraph/doxygraph /path/to/your/index.xml doxyviz/htdocs/

If Perl emits any errors of the form "Can't locate ____ in @INC", that is
usually an indication that you are missing one or more of the dependencies of
the script, which can easily be installed using Perl's cpan utility.

When you have generated your file, then you are ready to go. You
can open doxyviz/htdocs/index.html in your web browser to view your interactive
UML class diagram locally, or copy the contents of the htdocs directory into a
subdirectory of your web server's htdocs directory in order to deploy your
interactive diagram to the web.

More Details

More detailed documentation for the component parts of doxygraph is provided in
the relevant subdirectories.


Copyright 2013 Doxygraph project

These Source Code Forms are subject to the terms of the Mozilla Public License
version 2.0. If a copy of the MPL was not distributed with this file, You can
obtain one at