PandA-2024.02
Development Tools

This document provides information on:

GraphViz

The GraphViz package consists of a variety of software for drawing attributed graphs. The package was designed to rely on the "program-as-filter" model of software, in which distinct graph operations or transformations are embodied as programs. Graph drawing and manipulation are achieved by using the output of one filter as the input of another, with each filter recognizing a common graph format [GAN00]. Despite the simplicity and utility of this approach, some applications need or desire to use the software as a library with bindings in a non-scripting language, rather than as primitives composed by a scripting language. The GraphViz software provides a variety of ways to achieve this, running a spectrum from very simple but somewhat inflexible to fairly complex but offering a good deal of application control [ERG03].

GraphViz tools and DOT language

One of the tools provided by GraphViz tool set is dot. The dot tool draws directed graphs as hierarchies. It runs as a command line program. Its features include well-tuned layout algorithms for placing nodes and edge splines, edge labels, "record" shapes with "ports" for drawing data structures; cluster layouts; and an underlying file language for stream-oriented graph tools.

dot reads attributed graph text files and writes drawings, either as graph files or in a graphics format such as GIF, PNG, SVG or PostScript (which can be converted to PDF). dot accepts input in the DOT language. An example of graph description based on DOT language is the following:

digraph G {
    main -> parse -> execute;
    main -> init;
    main -> cleanup;
    execute -> make_string;
    execute ->printf;
    init -> make_string;
    main -> printf;
    execute -> compare;
}

A node is created when its name first appears in the file. An edge is created when nodes are joined by the edge operator ->. In the following line is described an edge between node main and node init.

    main -> init;

It is quite simple to create the postscript file from the above text file. In fact, it is only required to run the following command provided the name of file is small_graph.dot:

dot -Tps small_graph.dot -o small_graph.ps

The graph produced is:

dot_inline_dotgraph_1.png

The command line option -Tps selects PostScript (EPSF) output. small_graph.ps may be printed, displayed by a PostScript viewer, or embedded in another document.

Another useful tool based on dot is dotty which is a graph editor for the X Window System.

Documentation

Documentation about GraphViz and the DOT language can be found at http://www.research.att.com/sw/tools/graphviz/refs.html .

Download

It is possible to download the last version of the GraphViz tool both for Windows and Linux from the official website: http://www.graphviz.org/pub/graphviz/CURRENT/.

Bibliography

Doxygen

Doxygen is a documentation system for C++, C, Java, Objective-C, IDL (Corba and Microsoft flavors) and to some extent PHP, C# and D. It can help you in three ways:

Doxygen is developed under Linux, but is set-up to be highly portable. As a result, it runs on most other Unix flavors as well. Furthermore, executables for Windows 9x/NT and Mac OS X are available.

Download

Each Linux distribution provides Doxygen as developing tool, therefore before download it please check the web site check your distribution. The official WEB site is http://www.doxygen.org/.

Documentation

Official documentation can be found at http://www.doxygen.org/manual.html .

Documenting code in PandA

To know how to write a good documentation into PandA project, please see Write documentation for PandA project.


Generated on Mon Feb 12 2024 13:03:38 for PandA-2024.02 by doxygen 1.8.13