- Générateur de documentation
-
Un générateur de documentation est un outil de programmation qui crée de la documentation destinée aux programmeurs (il s'agit alors d'une documentation d'API) ou aux utilisateurs finaux (il s'agit alors d'un guide d'utilisateur) ou encore les deux. Pour gérer ces documentations, le générateur se base généralement sur des codes sources commentés d'une certaine façon et dans certains cas également sur des fichiers binaires.
La documentation générée peut être hautement technique, et est principalement utilisée pour définir et expliquer les interfaces de programmation (APIs), les structures de données et les algorithmes. Par exemple, on peut utiliser cette documentation pour expliquer que la variable m_name se réfère au premier et au dernier nom d'une personne. Il est important pour les documents sur le code d'être précis, mais pas non plus verbeux à un point tel qu'il serait difficile de les maintenir.
Les générateurs de documentation tels doxygen ou javadoc génèrent automatiquement la documentation à partir du code source. Ils extraient le commentaire du code source et créent des manuels de référence sous des formats comme le texte, des fichiers HTML, PDF, DocBook, ou RTF. Les documents sur le code sont souvent organisés dans le style d'un guide de référence, ce qui permet à un programmeur de localiser rapidement une fonction ou une classe quelconque.
L'avantage d'un générateur de documentation à partir du code source est la proximité du code source avec sa documentation codée sous forme de commentaires. Le programmeur peut alors l'écrire en se référant à son code, et peut utiliser les mêmes outils que ceux qu'il a utilisés pour développer le code source, pour faire la documentation. Cela rend beaucoup plus facile la mise à jour de la documentation.
Bien sûr, l'inconvénient est que seuls les programmeurs peuvent éditer cette sorte de documentation, et c'est d'eux que dépend la mise à jour des sorties (par exemple, en exécutant un crontab pour mettre à jour les documents la nuit). Certains pourraient caractériser cela comme un avantage plutôt que comme un inconvénient.
Sommaire
Exemples
Voici un exemple de documentation de code source Java, qui peut être extrait par javadoc:
/** * Valide un mouvement de jeu d'Echecs. * * @param colonneDepart Colonne de la pièce à déplacer * @param ligneDepart Ligne de la pièce à déplacer * @param colonneArrivee Colonne de la case de destination * @param ligneArrivee Ligne de la case de destination * @return vrai(true) si le mouvement d'échec est valide ou faux(false) si invalide */ boolean estUnDéplacementValide(int colonneDepart, int ligneDepart, int colonneArrivee, int ligneArrivee) { ... }
Un autre exemple de commentaire, pour le générateur mkd:
/*D ExitError ----------------------------------------------------------------------------- ACTION: Affiche l'erreur dans une fenêtre en version console et quitte la fonction en renvoyant la valeur -1 à la fonction appelante. Affiche l'erreur dans une fenêtre d'erreur en version fenêtrée. SYNTAXE: #include <CmapGpsu.h> int ExitError( int iErr ); PORTABILITE: x86 Win32_Console MS-Windows ; UNICODE DESCRIPTION: int iErr : Numéro d'erreur à transcrire en clair au terminal ou à la fenêtre d'affichage d'erreur en version fenêtrée. VALEUR RETOURNEE: Quitte le programme CmapGpsu et renvoie la valeur -1 au programme appelant. */ /*H // ExitErr.c: extern int ExitError( int iErr ); */
L'option d'extraction D extraira la documentation de la fonction. Le document final contiendra la documentation de l'ensemble des fonctions dans l'ordre alphabétique. Le contenu extrait peut être écrit dans tous langages tels XML, HTML, etc.
L'option H extraira la déclaration de la fonction qui sera intégrée dans le fichier d'entête des fonctions du programme, ici, dans cmapgpsu.h
Logiciels
- Doxygen (multilangage, surtout ceux de la famille C)
- javadoc (Java)
- MakeDoc (REBOL 2000)
- MakeDoc (multilangage, 1994) a repris son nom originel de 1990 mkd[1] en raison de son homonymie avec de nouveaux logiciels comme MakeDoc, MakeDocu etc.
- POD (Perl)
- RDoc (Ruby)
- ROBODoc (multilangage, y compris les plus courants, mais il peut être aussi étendu[2])
- TwinText (multilangage, y compris les plus courants, mais il peut être aussi étendu[3])
Voir aussi
Références
Wikimedia Foundation. 2010.