PandA-2024.02
|
This document provides information on:
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].
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:
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 about GraphViz and the DOT language can be found at http://www.research.att.com/sw/tools/graphviz/refs.html .
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/.
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
to extract the code structure from undocumented source files. This is very useful to quickly find your way in large source distributions. You can also visualize the relations between the various elements by means of include dependency graphs, inheritance diagrams, and collaboration diagrams, which are all generated automatically.doxygen
for creating normal documentation.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.
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/.
Official documentation can be found at http://www.doxygen.org/manual.html .
To know how to write a good documentation into PandA project, please see Write documentation for PandA project.