Documentação de Código-fonte com a Ferramenta Doxygen Alberto Xavier Pavim Laboratório de Metrologia e Automatização – LABMETRO/EMC Sistemas Industriais Inteligentes – S2i/DAS Universidade Federal de Santa Catarina Florianópolis, 02 de Junho de 2006. Doxygen Sumário 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 2 / 28 Doxygen Sumário 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 2 / 28 Doxygen Sumário 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 2 / 28 Doxygen Sumário 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 2 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Sumário da Subseção 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 3 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Por que documentar o código-fonte? Facilitar a reutilização e manutenção do código-fonte Disponibilizar documentação profissional de bibliotecas para usuários do software Contribuir com a gestão do conhecimento 4 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Por que documentar o código-fonte? Facilitar a reutilização e manutenção do código-fonte Disponibilizar documentação profissional de bibliotecas para usuários do software Contribuir com a gestão do conhecimento 4 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Por que documentar o código-fonte? Facilitar a reutilização e manutenção do código-fonte Disponibilizar documentação profissional de bibliotecas para usuários do software Contribuir com a gestão do conhecimento 4 / 28 Doxygen Introdução Importância da Documentação do Código-fonte O que é o Doxygen? É um sistema flexível de documentação de código-fonte, multi-linguagem, multi-plataforma e com múltiplas saídas. Linguagens Suportadas C++, C, Java, Objective-C, Python, IDL, PHP, C# e D. Plataformas Suportadas GNU/Linux (Unix), Mac OS X, Windows. Saídas Suportadas HTML, Latex, RTF, PostScript, PDF, XML, compressed HTML (CHM), Unix man pages. 5 / 28 Doxygen Introdução Importância da Documentação do Código-fonte O que é o Doxygen? É um sistema flexível de documentação de código-fonte, multi-linguagem, multi-plataforma e com múltiplas saídas. Linguagens Suportadas C++, C, Java, Objective-C, Python, IDL, PHP, C# e D. Plataformas Suportadas GNU/Linux (Unix), Mac OS X, Windows. Saídas Suportadas HTML, Latex, RTF, PostScript, PDF, XML, compressed HTML (CHM), Unix man pages. 5 / 28 Doxygen Introdução Importância da Documentação do Código-fonte O que é o Doxygen? É um sistema flexível de documentação de código-fonte, multi-linguagem, multi-plataforma e com múltiplas saídas. Linguagens Suportadas C++, C, Java, Objective-C, Python, IDL, PHP, C# e D. Plataformas Suportadas GNU/Linux (Unix), Mac OS X, Windows. Saídas Suportadas HTML, Latex, RTF, PostScript, PDF, XML, compressed HTML (CHM), Unix man pages. 5 / 28 Doxygen Introdução Importância da Documentação do Código-fonte O que é o Doxygen? É um sistema flexível de documentação de código-fonte, multi-linguagem, multi-plataforma e com múltiplas saídas. Linguagens Suportadas C++, C, Java, Objective-C, Python, IDL, PHP, C# e D. Plataformas Suportadas GNU/Linux (Unix), Mac OS X, Windows. Saídas Suportadas HTML, Latex, RTF, PostScript, PDF, XML, compressed HTML (CHM), Unix man pages. 5 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Arquitetura do Doxygen 6 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Fontes de Informação para gerar Documentação Doxygen busca por tags de documentação no código-fonte (caso: novos projetos) É capaz de extrair informação de códigos-fonte não documentados (caso: antigos projetos) Gera automaticamente diversos gráficos UML de acordo com o relacionamento das entidades envolvidas É possível escrever documentação comum e ligá-la à documentação do doxygen 7 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Fontes de Informação para gerar Documentação Doxygen busca por tags de documentação no código-fonte (caso: novos projetos) É capaz de extrair informação de códigos-fonte não documentados (caso: antigos projetos) Gera automaticamente diversos gráficos UML de acordo com o relacionamento das entidades envolvidas É possível escrever documentação comum e ligá-la à documentação do doxygen 7 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Fontes de Informação para gerar Documentação Doxygen busca por tags de documentação no código-fonte (caso: novos projetos) É capaz de extrair informação de códigos-fonte não documentados (caso: antigos projetos) Gera automaticamente diversos gráficos UML de acordo com o relacionamento das entidades envolvidas É possível escrever documentação comum e ligá-la à documentação do doxygen 7 / 28 Doxygen Introdução Importância da Documentação do Código-fonte Fontes de Informação para gerar Documentação Doxygen busca por tags de documentação no código-fonte (caso: novos projetos) É capaz de extrair informação de códigos-fonte não documentados (caso: antigos projetos) Gera automaticamente diversos gráficos UML de acordo com o relacionamento das entidades envolvidas É possível escrever documentação comum e ligá-la à documentação do doxygen 7 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Sumário da Subseção 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 8 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Aprendendo com um Exemplo Inicial / / / Descricao s i m p l e s da c l a s s e (uma l i n h a ) /∗∗ ∗ Descricao d e ta l h a da da c l a s s e . ∗ Esta pode t e r v a r i a s l i n h a s . ∗/ class Example { / / ! Documentacao antes do membro i n t numInt ; double numDouble ; /∗ ! < Documentacao depois do membro ∗/ /∗∗ Descricao s i m p l e s da funcao ateh o ponto f i n a l . Descricao d e ta l h a da da funcao , podendo t e r v a r i a s l i n h a s d e n t r o deste b l o c o \ param a _ f F l o a t Descricao do parametro f l o a t \ r e t u r n Descricao do v a l o r de r e t o r n o ∗/ char ∗ P r i n t ( f l o a t a _ f F l o a t ) ; }; 9 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos mais Comuns: junto às Entidades //! Documentação simples de uma linha (antes) /*! ... */ Documentação de múltiplas linhas (antes) //!< Documentação simples de uma linha (depois) /*!< ... */ Documentação de múltiplas linhas (depois) /// Mesmo comportamento de //! /** ... */ Mesmo comportamento de /*! ... */ ///< Mesmo comporatmento de //!< /**< ... */ Mesmo comportamento de /*!< ... */ Prefere-se o uso de /// e /** ... */ para manter compatibilidade com estilo de documentação usada em C# Em Python utiliza-se ## ao invés de somente # 10 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Auxiliar \brief, @brief Uma linha simples de documentação \param, @param Parâmetro de uma função \return, @return Valor de retorno de uma função \sa, @sa Documentação auxiliar aconselhada (see also) \warning, @warning Documentação de avisos ao usuário Em Python estes comandos podem ser passados dentro de docstrings 11 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Estilos Especiais: distante das Entidades \class, @class Classes \struct, @struct Estruturas \union, @union Uniões \enum, @enum Enumerações \fn, @fn Funções \var, @var Variáveis \def, @def #define \file, @file Arquivos \namespace, @namespace Namespaces \package, @package Pacotes \interface, @interface Interfaces 12 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Um Exemplo mais Elaborado /∗∗ ∗ \ f i l e A r q u i v o . cpp ∗ \ b r i e f Pequena d e s c r i c a o do a r q u i v o ∗ ∗ Descricao mais d e ta l h a da do a r q u i v o . ∗ Em g e r a l tem mais de uma l i n h a . ∗ ∗ \ sa A r q u i v o . h ∗∗/ /∗∗ @fn i n t f u n c a o _ g l o b a l ( char ∗ p o i n t e r ) @brief Curta e x p l i c a c a o da funcao E x p l i c a c a o d e ta l h a da da funcao . @param p o i n t e r E x p l i c a c a o do parametro @return E x p l i c a c a o do v a l o r de r e t o r n o @warning Funcao ainda em desenvolvimento ! ∗∗/ i n t f u n c a o _ g l o b a l ( char ∗ p o i n t e r ) { ... } 13 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Um Exemplo em Python ## ## \ f i l e A r q u i v o . py ## \ b r i e f Pequena d e s c r i c a o do a r q u i v o ## \ sa O ut r oA r q ui v o . py ## # Declaracao da c l a s s e class ExemploPython : " " " Breve comentario da c l a s s e t e r m i n a no ponto . Demais comentarios podem v i r em mais de uma l i n h a , como e s t e a q u i . """ #−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− def funcao_membro ( a _ s P o i n t e r ) : " " " Curta e x p l i c a c a o da funcao t e r m i n a neste ponto . E x p l i c a c a o mais d e ta l h a da da funcao pode se a l o n g a r em mais l i n h a s . \ param a _ s P o i n t e r E x p l i c a c a o do argumento . \ r e t u r n E x p l i c a c a o do v a l o r de r e t o r n o . \ warning Funcao inacabada ! """ 14 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Avançada Listas Introdução de listas pontuadas ou enumeradas na documentação Grupos Agrupamento de entidades para melhorar organização da documentação Equações Inclusão de equações junto à documentação Diagramas Geração de grafos e diagramas UML de acordo com o relacionamento das entidades no código Ler a documentação detalhada do Doxygen: http://www.stack.nl/~dimitri/doxygen/manual.html 15 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Avançada Listas Introdução de listas pontuadas ou enumeradas na documentação Grupos Agrupamento de entidades para melhorar organização da documentação Equações Inclusão de equações junto à documentação Diagramas Geração de grafos e diagramas UML de acordo com o relacionamento das entidades no código Ler a documentação detalhada do Doxygen: http://www.stack.nl/~dimitri/doxygen/manual.html 15 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Avançada Listas Introdução de listas pontuadas ou enumeradas na documentação Grupos Agrupamento de entidades para melhorar organização da documentação Equações Inclusão de equações junto à documentação Diagramas Geração de grafos e diagramas UML de acordo com o relacionamento das entidades no código Ler a documentação detalhada do Doxygen: http://www.stack.nl/~dimitri/doxygen/manual.html 15 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Avançada Listas Introdução de listas pontuadas ou enumeradas na documentação Grupos Agrupamento de entidades para melhorar organização da documentação Equações Inclusão de equações junto à documentação Diagramas Geração de grafos e diagramas UML de acordo com o relacionamento das entidades no código Ler a documentação detalhada do Doxygen: http://www.stack.nl/~dimitri/doxygen/manual.html 15 / 28 Doxygen Documentando o Código-fonte com Doxygen Estilos de Documentação Blocos de Documentação Avançada Listas Introdução de listas pontuadas ou enumeradas na documentação Grupos Agrupamento de entidades para melhorar organização da documentação Equações Inclusão de equações junto à documentação Diagramas Geração de grafos e diagramas UML de acordo com o relacionamento das entidades no código Ler a documentação detalhada do Doxygen: http://www.stack.nl/~dimitri/doxygen/manual.html 15 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen Sumário da Subseção 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 16 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen Doxygen na Linha de Comando $ doxygen --help 1) Use o doxygen para gerar um arquivo template de configuracao: $ doxygen [-s] -g [configName] 2) Use o doxygen para atualizar um arquivo de configuracao antigo: $ doxygen [-s] -u [configName] 3) Use o doxygen para gerar a documentacao atraves de um arquivo de configuracao existente: $ doxygen [configName] 4) Use o doxygen para gerar um arquivo de estilos template para os formatos RTF, HTML e Latex. RTF: $ doxygen -w rtf styleSheetFile HTML: $ doxygen -w html headerFile footerFile styleSheetFile [configFile] LaTeX: $ doxygen -w latex headerFile styleSheetFile [configFile] 5) Use o doxygen para gerar um arquivo de extensões rtf RTF: $ doxygen -e rtf extensionsFile Quando -s eh especificado, os comentarios sao omitidos no arquivo de configuracao Quando configName eh omitido, ’Doxyfile’ sera utilizado por padrao 17 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen Doxygen na Linha de Comando $ doxygen --help 1) Use o doxygen para gerar um arquivo template de configuracao: $ doxygen [-s] -g [configName] 2) Use o doxygen para atualizar um arquivo de configuracao antigo: $ doxygen [-s] -u [configName] 3) Use o doxygen para gerar a documentacao atraves de um arquivo de configuracao existente: $ doxygen [configName] 4) Use o doxygen para gerar um arquivo de estilos template para os formatos RTF, HTML e Latex. RTF: $ doxygen -w rtf styleSheetFile HTML: $ doxygen -w html headerFile footerFile styleSheetFile [configFile] LaTeX: $ doxygen -w latex headerFile styleSheetFile [configFile] 5) Use o doxygen para gerar um arquivo de extensões rtf RTF: $ doxygen -e rtf extensionsFile Quando -s eh especificado, os comentarios sao omitidos no arquivo de configuracao Quando configName eh omitido, ’Doxyfile’ sera utilizado por padrao 17 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen Exemplo de Arquivo de Configuração # A r q u i v o de c o n f i g u r a c a o Doxygen PROJECT_NAME PROJECT_NUMBER OUTPUT_DIRECTORY OUTPUT_LANGUAGE FULL_PATH_NAMES STRIP_FROM_PATH INPUT FILE_PATTERNS = = = = = = = = GENERATE_HTML HTML_OUTPUT HTML_FILE_EXTENSION CLASS_DIAGRAMS CLASS_GRAPH COLLABORATION_GRAPH GROUP_GRAPHS . . . = = = = = = = " LmaTimer : t i m e r−cpp " 0.9 / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp / doc / English YES / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp / / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp ∗. c \ ∗. cc \ ∗. cpp \ ∗. j a v a \ ∗. h \ ∗. hpp \ ∗. cs \ ∗. py YES html . html YES YES YES YES 18 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Sumário da Subseção 1 Introdução Importância da Documentação do Código-fonte 2 Documentando o Código-fonte com Doxygen Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 19 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Interface Gráfica para utilização do Doxygen 20 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Configuração Básica (Wizard) 21 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Configuração Básica (Wizard) 22 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Configuração Básica (Wizard) 23 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Configuração Básica (Wizard) 24 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Configuração Avançada (Wizard) 25 / 28 Doxygen Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxywizard Interface Gráfica para utilização do Doxygen 26 / 28 Doxygen Resultado Resultado final 27 / 28 Doxygen Agradecimentos Obrigado pela Atenção! Alberto Xavier Pavim [email protected] [email protected] 28 / 28