Accueil🇫🇷Chercher

Doxygen

Doxygen est un générateur de documentation sous licence libre capable de produire une documentation logicielle à partir du code source d'un programme. Pour cela, il tient compte de la syntaxe 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.

Présentation

Doxygen est la contraction de « dox » (« docs », abréviation anglaise de « documents ») et de « gen » (« generator »), « générateur de documentation ».

Doxygen peut analyser des fichiers sources Ă©crits dans les langages C, Objective C, C#, PHP, C++, Java, Python, IDL, Fortran, VHDL, Tcl et dans une certaine mesure D.

La documentation peut être produite dans les formats suivants : HTML (compressé ou non), LaTeX, RTF, PostScript, PDF avec hyperliens, et prochainement XML (en cours de développement).

Intérêt

En intégrant la documentation au code source, Doxygen favorise la cohérence entre documentation et code. Il incite aussi les développeurs à documenter leur code.

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 générer 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 :

  • prototype et documentation des fonctions, qu'elles soient locales, privĂ©es ou publiques, etc. ;
  • liste des fichiers inclus ;
  • liste des modules (groupements dĂ©finis dans la documentation) ;
  • documentation des structures de donnĂ©es ;
  • prototype et documentation des classes et leur hiĂ©rarchie ;
  • diffĂ©rents types de graphes : diagrammes de classe, de collaboration, d'appels, d'inclusion, etc. (pour gĂ©nĂ©rer certains de ces diagrammes, l'outil gratuit Dot est nĂ©cessaire) ;
  • un index de tous les identifiants ;
  • des fichiers sources annotĂ©s (par exemple avec les numĂ©ros de lignes) et navigables (par exemple avec HTML, avec lequel des identifiants renvoient vers la documentation associĂ©e).

Exemple

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 commencent 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.

Les tags les plus utilisés

  • @struct pour documenter une structure C.
  • @union pour documenter une union C.
  • @enum pour documenter un type Ă©numĂ©rĂ©.
  • @fn pour documenter une fonction.
  • @var pour documenter une variable / un typedef / un Ă©numĂ©rĂ©.
  • @def pour documenter un #define.
  • @typedef pour documenter la dĂ©finition d'un type.
  • @file pour documenter un fichier.
  • @namespace pour documenter un namespace.
  • @package pour documenter un package Java.
  • @interface pour documenter une interface IDL.
  • @brief pour donner une description courte.
  • @class pour documenter une classe.
  • @param pour documenter un paramètre de fonction/mĂ©thode.
  • @warning pour attirer l'attention.
  • @author pour donner le nom de l'auteur.
  • @return pour documenter les valeurs de retour d'une mĂ©thode/fonction.
  • @see pour renvoyer le lecteur vers quelque chose (une fonction, une classe, un fichier…).
  • @throws pour documenter les exceptions possiblement levĂ©es.
  • @version pour donner le numĂ©ro de version.
  • @since pour faire une note de version (ex : disponible depuis…).
  • @exception pour documenter une exception.
  • @deprecated pour spĂ©cifier qu'une fonction/mĂ©thode/variable… n'est plus utilisĂ©e.
  • @li pour faire une puce.
  • @todo pour indiquer une opĂ©ration restant « Ă  faire ».
  • @fixme pour indiquer un code dĂ©fectueux, « Ă  rĂ©parer ».

Plate-forme

Doxygen est écrit sous Linux et Mac OS, avec un souci affiché de portabilité. Il fonctionne sur la plupart des systèmes Unix et il est disponible en version exécutable sur Microsoft Windows.

DoxyWizard

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.

Licence

Doxygen est publié sous licence GPL.

Notes et références

  1. « Doxygen release 1.9.7 », (consulté le )

Voir aussi

  • Javadoc, outil de gĂ©nĂ©ration de documentation pour le langage Java, dĂ©veloppĂ© par Sun
  • OCamlDoc, outil de gĂ©nĂ©ration de documentation pour le langage OCaml, dĂ©veloppĂ© par l'INRIA;
  • PhpDocumentor, outil de gĂ©nĂ©ration de documentation pour le langage PHP
  • SandCastle, outil de gĂ©nĂ©ration de documentation pour les langages .Net, Ă©ditĂ© par Microsoft
  • Sphinx, outil de gĂ©nĂ©ration de documentation pour le langage Python, dĂ©veloppĂ© par la Python Software Foundation;
  • Visdoc, outil de gĂ©nĂ©ration de documentation HTML pour le langage ActionScript 2 (AS2) & 3 (AS3) et Java (MAC uniquement)
  • XMLDoc, outil open source de gĂ©nĂ©ration de documentation pour les langages .Net (en cours de dĂ©veloppement)

Lien externe

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.