Doxygen | |
---|---|
Développeur | Dimitri van Heesch et contributeurs |
Dernière version | 1.5.4 (le 27 octobre 2007) |
Environnement | Mac OS, UNIX, Windows, BSD GNU/Linux |
Type | Générateur de documentation |
Licence | GPL |
Site Web | www.doxygen.org |
Doxygen est un logiciel informatique libre permettant de créer de la documentation à partir du code source d'un programme. Pour cela, il tient compte de la grammaire du langage dans lequel est écrit le code source, ainsi que des commentaires s'ils sont écrits dans un format particulier.
Le code de Doxygen a été écrit en grande partie par Dimitri van Heesch.
Doxygen est la contraction de dox (docs, abréviation anglaise de documents) et de gen (generator), générateur de documentation.
Doxygen est capable d'analyser des fichiers sources écrits dans les langages C, C++, Java, Objective C, Python, IDL et dans une certaine mesure PHP, C# et D.
La documentation peut être générée dans l'un ou plusieurs des formats suivants : HTML (compressé ou non), LaTeX, RTF, PostScript, PDF avec hyperliens, et prochainement XML (en cours de développement).
En permettant l'intégration de la documentation directement dans le code sources, Doxygen permet de favoriser la cohérence entre la documentation et le code et de systématiser le comportement des développeurs afin qu'ils documentent le code qu'ils produisent.
Il est également possible d'extraire de la documentation à partir d’un code source non documenté au préalable, ce qui peut faciliter la compréhension d'un programme dont le code est compliqué.
De nombreux projets, tels que KDE, utilisent Doxygen pour créer la documentation de leur API. KDevelop intègre le support de Doxygen. De nombreux éditeurs de texte proposent des modes ou des scripts pour faciliter l'écriture des commentaires Doxygen et la génération de la documentation.
Les informations suivantes peuvent être extraites des sources :
Le code ci-dessous illustre la manière dont Doxygen permet de documenter le code.
/**
* La classe Time
représente un instant.
* @author Paul Hochon
*/
class Time {
/**
* Constructeur.
* Fixe l'instant à une valeur précise.
* @param timemillis Millisecondes écoulées depuis le 1er janvier 1970
*/
Time(int timemillis) {
...
}
/**
* Récupère l'instant actuel.
* @return Un instant correspondant à l'instant présent
*/
static Time now() {
...
}}
Les commentaires du langage cible (ici Java) sont spécialisés pour indiquer à Doxygen qu'il doit les prendre en compte. Ainsi, les commentaires sont ouverts avec /** plutôt que /*. Des balises spécifiques à l'intérieur de ces commentaires sont également interprétées par Doxygen (par exemple : @param).
Dans cet exemple, la rédaction des commentaires utilise le format Javadoc, avec lequel Doxygen est compatible. Doxygen propose son propre format, qui est fonctionnellement équivalent.
Doxygen est écrit sous Linux et Mac OS, avec un soucis affiché de portabilité. Il fonctionne sur la plupart des systèmes Unix et il est disponible en version exécutable sur Microsoft Windows.
DoxyWizard est une interface graphique permettant de configurer les options de génération de Doxygen et de lancer l'extraction de la documentation. Comme Doxygen, il est disponible sur différentes plates-formes.
Doxygen est publié sous licence GPL.