Doxygen
Doxygen ist ein freies Software-Dokumentationswerkzeug unter der GNU General Public License.

Hintergrund und Motivation 
Durch spezielle Kommentare im Quelltext können Softwareentwickler Erläuterungen zu Programmelementen definieren, aus denen Doxygen eine übersichtliche Dokumentation erstellt. Außerdem ist es möglich, einen zusammenfassenden Überblick über den Aufbau und die Elemente eines bereits existierenden Programms (verwendete Dateien, Funktionen, Variablen sowie deren jeweilige Rolle im Programmablauf) zu erzeugen.

Das Ziel einer solchen Dokumentationsmethode ist die Vermeidung von Redundanz und die Steigerung der Übersichtlichkeit des Codes. Da Programmstrukturen im Quelltext selbst beschrieben werden müssen, ist eine parallele Dokumentation der Strukturen (Funktionen, Klassen, Methoden usw.) in einer separaten Entwicklerdokumentation fehleranfällig, da sich diese im Laufe einer Entwicklung häufig ändern. Zudem wird dem Entwickler der Aufwand einer separaten Dokumentenerstellung erspart und die Vollständigkeit der Dokumentation gesichert und gesteigert.

Mithilfe einer Doxy-Dokumentation ist es ferner möglich, einen unbekannten Code leichter zu verstehen und zu reengineeren.

Als grafische Benutzeroberfläche dient der sogenannte Doxywizard, mit dem die Einstellungen, welche Art und Form der Dokumentationserzeugung steuern, einfach vorgenommen werden können.

Die meisten gängigen Entwicklungsumgebungen (IDE) unterstützen Doxygen durch Syntaxhervorhebung.

Die erste Doxygen-Version verwendete Quelltext von DOC++, das am Zuse-Institut Berlin von Roland Wunderling und Malte Zöckler entwickelt wurde.

Doxygen ist kompatibel zur Code-Versionierung mit Subversion, womit automatisch erzeugte Codes für Autoren, Bearbeiter, Datum und Zeitpunkt des Eincheckens in die Doxygen Dokumentation übernommen werden können.

Unterstützte Programmiersprachen 
Unterstützte Programmiersprachen sind C++, C, Objective-C, Java, Python, Fortran und IDL. Sie werden in ihrem vollen Sprachumfang unterstützt. Mit Einschränkungen ist auch die Kommentierung von PHP, C#, D und VHDL möglich. Ab Version 1.7.5 wird Tcl unterstützt. Durch zusätzliche Filter kann auch Quellcode in Perl oder Object Pascal bearbeitet werden.

Unterstützte Ausgabeformate 
Als Ausgabeformat unterstützt Doxygen HTML, CHM, LaTeX, XML, RTF, PostScript, PDF, Manpages und Markdown. Auch lassen sich entsprechende Steuerdaten für die Erstellung von Hilfedateien für das Hilfesystem von Qt erstellen. Ab Version 1.8.8 wird auch PlantUML unterstützt, um UML-Diagramme zu erstellen.

Beispiel 
Die Dokumentierung einer Funktion kann wie folgt in den Quelltext eingebettet werden (hier in der Programmiersprache C):
 /**
  * \brief Exemplarische Funktion
  *
  *     Diese Funktion gibt den übergebenen Parameter
  *     auf der Konsole aus.
  *
  * \param	parameter  Auszugebender Parameter
  * \return	      Status-Code
  *
  */
 int funktion(int parameter)
 {
     printf("Parameter: %d", parameter);

     return 0;
 }

Ähnliche Werkzeuge 
 Javadoc, Natural Docs, phpDocumentor, ASDoc, ROBODoc, Sandcastle, AutoDuck, pydoc, HeaderDoc, Plain Old Documentation, Sphinx, CWEB.

Weblinks 

 Offizielle Website (englisch)
 Pas2Dox: Ein Pascal-Filter für Doxygen (englisch)

Einzelnachweise 

Freies Programmierwerkzeug
Qt-basierte Software
Linux-Software
MacOS-Software
Windows-Software