Wer unter Windows, Linux oder MacOS in C / C++ / Java o.ä. programmiert und ne coole Lösung sucht, schnell Dokus zu generieren, ohne viel zu tippeln: Doxygen!

Wie funzt dat?

  • Doxygen ist ein Parser und sucht u.a. nach JavaDoc-Tags
  • aus den Tags wird eine komplette Doku als HTML, PDF, RTF usw. gebaut
  • spezielle Tags erlauben sogar Unterseiten, Verlinkungen usw.
  • es werden auch Graphische Abhängigkeiten (Diagramme) erzeug

Wat kost?

Nischt – ist OpenSource 😉 …nur a bissle Tipparbeit.

Wo herkriegen?

www.doxygen.org – hier gibbets auch deutsche Anleitungen etc.

Ein hübsches Beispiel gibbets hier.

Schnelleinstieg

Im folgenden Beispiel ist mal eine Klassendoku für C++ zu sehen – die gleichen Tags (Kommentare) können 1:1 für Java verwendet werden:

/**
* @brief    Klasse zum Messen von Fuellstaenden.
*
* @warning  Es erfolgt direkter Zugriff auf die SPS!
*
* Diese Klasse besitzt Schnittstellen zur SPS S5 und
* kann mittels Methode getFillValue() den aktuellen
* Fuellstand auslesen und mittels reset() SPS neustarten.
*/
class FillState
{
public:
double   getFillValue();   ///< SPS auslesen
void     reset();          ///< startet SPS neu
};

/// startet die SPS neu
void FillState::reset() {
SPS::restart(0,0,"db1");
}

Die Syntax / Doxygen Tags

Tags fuer Beschreibungsbloecke/-Zeilen:

/**             Beschreibungsblock, idealer Weise in Zeile ueber
*              der Deklaration des zu dokumentierenden Elementes
*/

/// ...		Kurzbeschreibung in Zeile ueber Deklaration
.               von Funktion/Methode/Variable/Klasse

///< ...   	Kurzbeschreibung hinter der Deklaration

Tags innerhalb von Beschreibungsblock:

@author		Name des/der Autor(en)
@brief		Zeile fuer Kurzbeschreibung
@bugs		Liste der Bugs (sollte selten auftauchen)
@class  	leitet Beschreibung fuer Klasse  ein
@code		leitet Absatz mit Sourcecode ein
@date		Absatz fuer Datum
@endcode	schliesst Absatz mir Sourcecode ab
@exception 	Beschreibung der Exception
@file		Beschreibungsblock fuer aktuelle Datei
@fn 		Beschreibung fuer Funktion/Methode
@returns	Beschreibung des Rueckgabewertes
@retval 	Beschreibung des Rueckgabewertes
@version	Absatz fuer Versions-Informationen
@warning       	Absatz fuer Warnungen

Tags fuer die Textgestaltung: (ebenfalls in Beschreibungsbloecken)

@arg		Listeneintrag/Gliederung (Aufzaehlungszeichen)
@c		folgendes Wort erscheint in Schriftart fester
.               Breite, z.B. in "Courier"
@page 	        leitet Beschreibungsblock fuer Seite mit
.               Titel ein und als Ziel fuer Links
@par            Leitet Absatz mit Namenein, somit kann
.               als Ziel fuer Links verwendet werden
@par	        dito, aber mit Ueberschrift, welche hervorgehoben
.               dargestellt wird (bold)
@mainpage	leitet Beschreibungsblock fuer Hauptseite der
.               Doku ein - befindet sich in *.dox-Dateien
@ref 	        erzeugt Link auf Ziel  (muss ein Doxygen-Ziel
.               sein, z.B. Name eines Absatzes/einer Sektion)
@section [s] 	Absatz mit Thema namens [s] und Ueberschrift
@subsection [s] Unterthema namens [s] und Ueberschrift,
.               [s] kann als Ziel fuer Links genutzt werden

Ein Artikel zu Dokus und Quelltextdokus folgt noch.

Schnelleinstig: Sourcedokus mit Doxygen