Download Production (automatique) de documentations
Transcript
Production (automatique) de documentations F. Langrognet F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 1 / 69 PLAN 1 2 3 4 Introduction Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 2 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 3 / 69 Introduction Objectif Générer automatiquement (ou presque...) des documentations techniques (pour les développeurs) pour les utilisateurs ? Historique 1995-1997 : 1ers outils de génération : javadoc, ROBODoc (1995) Doxygen (1997) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 4 / 69 Quelles documentations ? (1) Documentation logicielle (pour les développeurs) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 5 / 69 Exemples javadoc Java SDK F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 6 / 69 Exemples javadoc NetBeans F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 7 / 69 Exemples Doxygen KDE F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 8 / 69 Quelles documentations ? (2) Documentation pour l’utilisateur final Quelques motivations : Documentation intégrée dans le processus de développement Le système de gestion de version peut/doit servir aussi pour les documentations ! Profiter des fonctionnalités de l’outil de production de documentation ◮ ◮ ◮ Formats de sortie Mise en page Description des algorithmes, des formules F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 9 / 69 Caractéristiques - Fonctionnalités Caractéristiques Formats d’entrée Code source (texte) Binaire Fonctionnalités Description des classes, des fonctions Formats de sortie Diagrammes (classes, appels, . . . ) HTML Possibilité d’étendre à d’autres langages PDF Latex ps Personnalisation des sorties Mise en page, contenu : ◮ XML ◮ man pages ◮ Possibilité d’insérer des balises HTML Possibilité d’insérer du code Latex (formules mathématiques, ...) Facilité pour la mise en page RTF DocBook F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 10 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 11 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 12 / 69 Sur quels types de fichiers ? Fichiers binaires Documentation générée à partir des binaires seulement Exemple : classDoc pour java Fichiers sources Documentation générée à partir du code source en utilisant La grammaire, les mots clés du langage On peut donc générer des documentations sans travail spécifique Des commentaires, des balises spécifiques Pour enrichir la documentation F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 13 / 69 Documentation produite sans commentaire spécifique ni balise Date.h F. Langrognet Documentation générée (html) Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 14 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 15 / 69 Pour quelles sorties ? Quelles informations ? Description des fonctions (paramètres, type de retour, . . . ) Description des classes Description des fichiers Graphes d’appels Diagrammes (de classses, de collaboration, . . .) Liens vers les fichiers sources ... Format des fichiers de sortie Différents formats (en fonction des possibilités de l’outil) : html, pdf, latex, ps, XML, . . . Personnalisation possible des sorties F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 16 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 17 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 18 / 69 Doxygen - Fiche d’identité Auteur : Dimitri Van Heesch licence : GNU GPL 1re version : 1997 OS : BSD, Linux, Mac OS, Unix, Windows Entrée : code source Sorties : HTML, LATEX, Man Pages, RTF, XML, Qt Help Project, PDF, PS, . . . Nombreuses possibilités de personnalisation Documentation KDE F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 19 / 69 Pour quels langages ? Langages + Possibilités d’extension pour d’autres langages non natifs F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 20 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 21 / 69 Flux de données Schéma général F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 22 / 69 Fichiers sources Seuls les fichiers sources sont indispensables F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 23 / 69 Fichier de config Pour définir/conserver les préférences, les options, ... DoxyWizard permet de gérer ce fichier de configuration F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 24 / 69 Personnalisation des sorties Fichiers utilisés pour la personnalisation des sorties F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 25 / 69 Documentations tierces Pour insérer des documentations d’autres composants F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 26 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 27 / 69 Comment utilise t-on Doxygen ? 1. En ligne de commande Uniquement avec les fichiers sources user$ doxygen *.h En utilisant la configuration et des options de sortie par défaut En utilisant un fichier de configuration Créer un fichier de configuration user$ doxygen -g my_config.txt Utiliser un fichier de configuration user$ doxygen my_config.txt F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 28 / 69 Comment utilise t-on Doxygen ? 2. Avec un outil graphique (1) DoxyWizard F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 29 / 69 Comment utilise t-on Doxygen ? 2. Avec un outil graphique (2) DoxyWizard Pour configurer et lancer doxygen Configuration Formats de sorties F. Langrognet Types de sorties Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 30 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 31 / 69 Rappel ... Documentation produite sans commentaire spécifique ni balise user$ doxygen Date.h Date.h F. Langrognet Documentation générée (html) Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 32 / 69 Informations Doxygen Et Commentaires interprétables Informations pour Doxygen dans des commentaires interprétables par Doxygen En C/C++ : Style C avec avec deux * /** * Documentation pour doxygen */ Style C++ avec avec trois / /// /// Documentation pour doxygen /// Style C avec avec un ! /* ! * Documentation pour doxygen */ Style C++ avec avec un ! // ! // !Documentation pour doxygen // ! F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 33 / 69 Balises Balises A placer à l’intérieur des commentaires interprétables par Doxygen. \file Description d’un fichier source ou d’en-tête \brief Description courte (peut être complétée par un lien vers la description détaillée) \author Auteur(s) \version Version \date Date F. Langrognet \param Description de paramètre(s) d’une fonction (/méthode) \return Description de la valeur retournée \bug Description d’un bug \deprecated Description d’une partie de code obsolète \class Description d’une classe Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 34 / 69 Doxygen - Exemples Informations sur les fichiers d’en-tête F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 35 / 69 Informations d’en-tête (1) Sans balise doxygen F. Langrognet Avec balises d’en-tête doxygen Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 36 / 69 Informations d’en-tête (2) Balises d’en-tête F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 37 / 69 Doxygen - Exemples Description courte / détaillée F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 38 / 69 Description courte / détaillée (1) Description courte / détaillée On peut avoir : une description courte (\brief) une description détaillée (sans balise) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 39 / 69 Description courte / détaillée (2) Description courte / détaillée On peut aussi générer automatiquement la description courte à partir de la description détaillée (option JAVADOC_AUTOBRIEF à YES). La description courte s’arrête au 1er point trouvé dans la description détaillée. F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 40 / 69 Doxygen - Exemples Description d’une méthode / fonction F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 41 / 69 Description d’une méthode / fonction (1) Description d’une méthode Utilsation de \param et \return. F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 42 / 69 Description d’une méthode / fonction (2) Balises pour une méthode / fonction F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 43 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 44 / 69 Diagrammes (1) Fonctionnement par défaut Hiérarchie de classes F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 45 / 69 Diagrammes (2) Personnalisation Avec le logiciel graphviz (et l’option HAVE_DOT=YES) Hiérarchie de classes Diagramme de collaboration F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 46 / 69 Diagrammes (3) Autres exemples Diagramme de classe F. Langrognet Diagramme de collaboration Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 47 / 69 Graphes d’appels Graphes d’appels (et l’option CALL_GRAPH=YES) Graphes d’appelants (et l’option CALLER_GRAPH=YES) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 48 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 49 / 69 Personnalisation des sorties 3 niveaux de personnalisation Avec les fichiers de configuration (modifications mineures) Avec le fichier de Layout Avec XML (pour une personnalisation totale) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 50 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (1) Fichier de configuation F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 51 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (2) Exemples Couleurs ◮ ◮ ◮ HTML_COLORSTYLE_HUE HTML_COLORSTYLE_SAT HTML_COLORSTYLE_GAMMA Note : peut être msie à jour via DoxyWizard Navigation ◮ ◮ DISABLE_INDEX (=NO par défaut) GENERATE_TREEVIEW (=NO par défaut) F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 52 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (3) Couleurs Par défaut F. Langrognet Personnalisation Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 53 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (4) Navigation Par défaut F. Langrognet Personnalisation Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 54 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (5) Feuille de style, en-tête pied de page F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 55 / 69 Personnalisation des sorties 1. Avec les fichiers de configuration (6) Créer les 3 fichiers et les modifier user$ doxygen -w html header.html footer.html customdoxygen.css En-tête Feuille de style Pied de page Les référencer dans le fichier de configuration HTML_HEADER = header.html HTML_FOOTER = footer.html HTML_STYLESHEET = customdoxygen.css F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 56 / 69 Personnalisation des sorties 2. Modification de la structure avec le fichier layout (1) Fichier de configuation F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 57 / 69 Personnalisation des sorties 2. Modification de la structure avec le fichier layout (2) Layout Créer un fichier layout et le modifier user$ doxygen -l Référencer ce fichier layout dans le fichier de configuration (LAYOUT_FILE = DoxygenLayout.xml) : DoxygenLayout.xml Execution de doxygen user$ doxygen configWithLayout.txt F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 58 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 59 / 69 Enrichir la documentation Quelques outils Utilisation de balises Doxygen spécifiques à la mise en page (listes, ....) Insertion de balises HTML Utilisation de Latex (pour les formules par exemple) Motivations pour utiliser Doxygen pour gérer les documentations scientifiques et/ou pour utilisateurs Guide utilisateur Doxygen produit par ... Doxygen F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 60 / 69 Enrichir la documentation (2) Exemple avec une formule F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 61 / 69 PLAN 1 Introduction 2 Comment ça marche ? Sur quels types de fichiers ? Pour quelles sorties ? 3 Un exemple détaillé : Doxygen Fiche d’identité Flux de données Comment utiliser Doxygen ? Balises Diagrammes et graphes Personnalisation des sorties Enrichir la documentation 4 Pour aller plus loin ... F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 62 / 69 Quel outil de génération de documentation choisir ? en.wikipedia.org/wiki/Comparison_of_documentation_generators Quel langage ? F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 63 / 69 Quel outil de génération de documentation choisir ? Quel langage ? ... suite F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 64 / 69 Quel outil de génération de documentation choisir ? Quel type de fichier en entrée ? ? F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 65 / 69 Quel outil de génération de documentation choisir ? Quel OS ? F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 66 / 69 Quel outil de génération de documentation choisir ? Format de sortie F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 67 / 69 Références Quelques références Comparaison des outils de génération de documentation : en.wikipedia.org/wiki/Comparison_of_documentation_generators Doxygen : ◮ Doxygen (officiel) : ◮ Manuel d’utilisation Doxygen : ◮ Wikipedia : ◮ Initiation à Doxygen pour le C++ : www.doxygen.org <-> www.stack.nl/ dimitri/doxygen/ www.stack.nl/ dimitri/doxygen/manual.html fr.wikipedia.org/wiki/Doxygen franckh.developpez.com/tutoriels/outils/doxygen/ javadoc ◮ officiel : ◮ Wikipedia : http ://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javadoc.html fr.wikipedia.org/wiki/Javadoc F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 68 / 69 Production (automatique) de documentations FIN Merci de votre attention Florent Langrognet F. Langrognet Production () (automatique) de documentations - ENVOL 2012 Janvier 2013 69 / 69