Git Product home page Git Product logo

doxygraph's Introduction

About
=====

http://code.google.com/p/doxygraph

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:

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

doxyviz
	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
http://www.doxygen.org/. 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/graph.dot

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 graph.dot 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.

License
=======

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 http://mozilla.org/MPL/2.0/.

doxygraph's People

Contributors

oktal3700 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.