Enseignements en M1
Mention informatique

 

DOXYGEN


1. Qu'est ce que Doxygen ?

Doxygen est un système de documentation pour C++, C, Java, Objective-C, Python, IDL et dans une certaine mesure qui peut être utilisé pour des langages comme PHP, C#, et D.

Doxygen permet notamment de générer une documentation au format HTML ou LaTeX à partir d'un ensemble de fichiers sources.

La documentation officielle concernant Doxygen se trouve sur le site suivant.


2. Comment utiliser Doxygen ?

On peut utiliser Doxygen de deux manières différentes :

  • soit en ligne de commande (cas traité ici)
  • soit en utilisant l'interface graphique Doxygen wizard (voir le document de Hugo Etiévant


2.1 préparation des sources

En C++, Il faut placer des commentaires devant chaque attribut et chaque méthode, comme suit :

#ifndef PERSONNE_H
#define PERSONNE_H

#include <iostream>
#include <string>

using namespace std;


/**
 * une Personne est definie par
 * - son nom de famille
 * - sa ville de residence
 * - son annee de naissance
 */

class Personne {
 protected:
  /**
   * nom de famille
   */
  string nom;
  /**
   * ville de résidence
   */
  string ville;
  /**
   * année de naissance
   */
  int    annee;

 public:
  /** 
   * constructeur par defaut
   */
  Personne();
  /** 
   * constructeur avec donnees 
   * @param s nom de famille
   * @param v ville de residence
   * @param an annee de naissance
   */
  Personne(char *s, char *v, int an);
  /**
   * destructeur
   */
  virtual ~Personne() {}

  /**
   * retourne le nom de la personne
   * @return nom
   */
  string get_nom() { return nom; }
  /**
   * retourne la ville de residence
   * @return ville de residence
   */
  string get_ville() { return ville; }
  /**
   * retourne l'annee de naissance
   * @return annee de naissance
   */
  int    get_annee() { return annee; }

  /**
   * methode virtuelle pour affichage
   * @param out ostream&
   */
  virtual void afficher(ostream& out);

  /**
   * operateur de redirection
   */
  friend ostream& operator<<(ostream& out, Personne& p);
};

#endif


2.2 génération d'un fichier de configuration

La première étape consiste à générer un fichier de configuration :

doxygen  -g  mon_fichier_de_config

On édite ensuite le fichier de configuration avec un éditeur de texte pour modifier les paramètres principaux :

  • PROJECT_NAME : nom du projet qui regroupe les sources
  • PROJET_NUMBER : version du projet
  • OUTPUT_DIRECTORY : répertoire destination, si cette variable est laissée à vide, la documentation sera générée dans le réperoire courant
  • INPUT : répertoires des sources séparés par des espaces
  • FILE_PATTERNS : liste des fichiers sources à considérer
  • GENERATE_LATEX : indique si on doit générer une documentation au format LaTeX
  • OUTPUT_LANGUAGE : langue utilisée pour la documentation (English, French, German, ...)

Exemple de fichie de configuration modifié :

PROJECT_NAME           = TP1
PROJECT_NUMBER         = 1.0
OUTPUT_DIRECTORY       =
OUTPUT_LANGUAGE        = French
INPUT                  = /home/richer/gl/tp1/
FILE_PATTERNS          = *.h *.cpp


2.3 génération de la documentation

Pour générer la documentation il suffit de taper :

doxygen mon_fichier_de_config

Un répertoire html est alors généré qui contient la documentation des classes. Si on a choisi de générer du LaTeX, un répertoire latex sera également créé.


2.4 exemple

Voir l'exemple du TP1 du cours de Génie Logiciel.


marqueur eStat\'Perso