documentação de código-fonte · estilos de documentação 3 utilização e configuração de um...

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

Upload: others

Post on 08-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Documentação de Código-fonte · Estilos de Documentação 3 Utilização e Configuração de um Projeto Doxygen A Ferramenta Doxygen A Ferramenta Doxywizard 4 Resultado 2/28

Documentação de Código-fontecom a Ferramenta Doxygen

Alberto Xavier Pavim

Laboratório de Metrologia e Automatização – LABMETRO/EMCSistemas Industriais Inteligentes – S2i/DAS

Universidade Federal de Santa Catarina

Florianópolis, 02 de Junho de 2006.

Page 2: Documentação de Código-fonte · 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çãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

2 / 28

Page 3: Documentação de Código-fonte · 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çãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

2 / 28

Page 4: Documentação de Código-fonte · 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çãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

2 / 28

Page 5: Documentação de Código-fonte · 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çãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

2 / 28

Page 6: Documentação de Código-fonte · 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çãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

3 / 28

Page 7: Documentação de Código-fonte · 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

Por que documentar o código-fonte?

Facilitar a reutilização e manutenção do código-fonte

Disponibilizar documentação profissional de bibliotecas parausuários do software

Contribuir com a gestão do conhecimento

4 / 28

Page 8: Documentação de Código-fonte · 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

Por que documentar o código-fonte?

Facilitar a reutilização e manutenção do código-fonte

Disponibilizar documentação profissional de bibliotecas parausuários do software

Contribuir com a gestão do conhecimento

4 / 28

Page 9: Documentação de Código-fonte · 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

Por que documentar o código-fonte?

Facilitar a reutilização e manutenção do código-fonte

Disponibilizar documentação profissional de bibliotecas parausuários do software

Contribuir com a gestão do conhecimento

4 / 28

Page 10: Documentação de Código-fonte · 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

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 SuportadasGNU/Linux (Unix), Mac OS X, Windows.

Saídas SuportadasHTML, Latex, RTF, PostScript, PDF, XML, compressed HTML(CHM), Unix man pages.

5 / 28

Page 11: Documentação de Código-fonte · 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

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 SuportadasGNU/Linux (Unix), Mac OS X, Windows.

Saídas SuportadasHTML, Latex, RTF, PostScript, PDF, XML, compressed HTML(CHM), Unix man pages.

5 / 28

Page 12: Documentação de Código-fonte · 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

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 SuportadasGNU/Linux (Unix), Mac OS X, Windows.

Saídas SuportadasHTML, Latex, RTF, PostScript, PDF, XML, compressed HTML(CHM), Unix man pages.

5 / 28

Page 13: Documentação de Código-fonte · 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

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 SuportadasGNU/Linux (Unix), Mac OS X, Windows.

Saídas SuportadasHTML, Latex, RTF, PostScript, PDF, XML, compressed HTML(CHM), Unix man pages.

5 / 28

Page 14: Documentação de Código-fonte · 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

Arquitetura do Doxygen

6 / 28

Page 15: Documentação de Código-fonte · 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

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ãodocumentados (caso: antigos projetos)

Gera automaticamente diversos gráficos UML de acordo com orelacionamento das entidades envolvidas

É possível escrever documentação comum e ligá-la àdocumentação do doxygen

7 / 28

Page 16: Documentação de Código-fonte · 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

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ãodocumentados (caso: antigos projetos)

Gera automaticamente diversos gráficos UML de acordo com orelacionamento das entidades envolvidas

É possível escrever documentação comum e ligá-la àdocumentação do doxygen

7 / 28

Page 17: Documentação de Código-fonte · 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

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ãodocumentados (caso: antigos projetos)

Gera automaticamente diversos gráficos UML de acordo com orelacionamento das entidades envolvidas

É possível escrever documentação comum e ligá-la àdocumentação do doxygen

7 / 28

Page 18: Documentação de Código-fonte · 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

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ãodocumentados (caso: antigos projetos)

Gera automaticamente diversos gráficos UML de acordo com orelacionamento das entidades envolvidas

É possível escrever documentação comum e ligá-la àdocumentação do doxygen

7 / 28

Page 19: Documentação de Código-fonte · 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

Documentando o Código-fonte com Doxygen

Estilos de Documentação

Sumário da Subseção

1 IntroduçãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

8 / 28

Page 20: Documentação de Código-fonte · 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

Documentando o Código-fonte com Doxygen

Estilos de Documentação

Aprendendo com um Exemplo Inicial

/ / / Descricao simples da classe (uma l i n h a )/∗∗∗ Descricao detalhada da classe .∗ Esta pode t e r va r i as l i n h a s .∗ /

class Example{

/ / ! Documentacao antes do membroi n t numInt ;

double numDouble ; /∗ ! < Documentacao depois do membro ∗ /

/∗∗ Descricao simples da funcao ateh o ponto f i n a l .

Descricao detalhada da funcao , podendo t e rva r i as l i n h a s dentro deste bloco

\ param a_ fF loa t Descricao do parametro f l o a t

\ r e t u r n Descricao do v a l o r de re to rno∗ /char ∗ P r i n t ( f l o a t a_ fF loa t ) ;

} ;

9 / 28

Page 21: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 22: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 23: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 24: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 25: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 26: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 27: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 28: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 29: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 30: Documentação de Código-fonte · 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

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 compatibilidadecom estilo de documentação usada em C#

Em Python utiliza-se ## ao invés de somente #10 / 28

Page 31: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 32: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 33: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 34: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 35: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 36: Documentação de Código-fonte · 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

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 dedocstrings

11 / 28

Page 37: Documentação de Código-fonte · 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

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

Page 38: Documentação de Código-fonte · 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

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

Page 39: Documentação de Código-fonte · 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

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

Page 40: Documentação de Código-fonte · 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

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

Page 41: Documentação de Código-fonte · 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

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

Page 42: Documentação de Código-fonte · 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

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

Page 43: Documentação de Código-fonte · 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

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

Page 44: Documentação de Código-fonte · 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

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

Page 45: Documentação de Código-fonte · 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

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

Page 46: Documentação de Código-fonte · 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

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

Page 47: Documentação de Código-fonte · 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

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

Page 48: Documentação de Código-fonte · 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

Documentando o Código-fonte com Doxygen

Estilos de Documentação

Um Exemplo mais Elaborado

/∗∗∗ \ f i l e Arquivo . cpp∗ \ b r i e f Pequena descr icao do arqu ivo∗∗ Descricao mais detalhada do arqu ivo .∗ Em gera l tem mais de uma l i n h a .∗∗ \ sa Arquivo . h∗∗ /

/∗∗ @fn i n t funcao_global ( char ∗ p o i n t e r )@brief Curta exp l icacao da funcao

Expl icacao detalhada da funcao .

@param p o i n t e r Expl icacao do parametro

@return Expl icacao do va lo r de re to rno

@warning Funcao ainda em desenvolvimento !∗∗ /i n t funcao_global ( char ∗ p o i n t e r ){

. . .}

13 / 28

Page 49: Documentação de Código-fonte · 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

Documentando o Código-fonte com Doxygen

Estilos de Documentação

Um Exemplo em Python

#### \ f i l e Arquivo . py## \ b r i e f Pequena descr icao do arqu ivo## \ sa OutroArquivo . py##

# Declaracao da classeclass ExemploPython :

" " " Breve comentar io da classe termina no ponto .

Demais comentar ios podem v i r em mais de umal inha , como este aqui .

" " "#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

def funcao_membro ( a_sPointer ) :" " " Curta exp l icacao da funcao termina neste ponto .

Expl icacao mais detalhada da funcao pode sealongar em mais l i n h a s .

\ param a_sPointer Expl icacao do argumento .\ r e t u r n Expl icacao do va lo r de re to rno .\ warning Funcao inacabada !

" " "

14 / 28

Page 50: Documentação de Código-fonte · 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

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 nadocumentação

Grupos Agrupamento de entidades para melhorarorganização da documentação

Equações Inclusão de equações junto à documentaçãoDiagramas 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

Page 51: Documentação de Código-fonte · 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

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 nadocumentação

Grupos Agrupamento de entidades para melhorarorganização da documentação

Equações Inclusão de equações junto à documentaçãoDiagramas 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

Page 52: Documentação de Código-fonte · 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

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 nadocumentação

Grupos Agrupamento de entidades para melhorarorganização da documentação

Equações Inclusão de equações junto à documentaçãoDiagramas 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

Page 53: Documentação de Código-fonte · 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

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 nadocumentação

Grupos Agrupamento de entidades para melhorarorganização da documentação

Equações Inclusão de equações junto à documentaçãoDiagramas 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

Page 54: Documentação de Código-fonte · 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

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 nadocumentação

Grupos Agrupamento de entidades para melhorarorganização da documentação

Equações Inclusão de equações junto à documentaçãoDiagramas 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

Page 55: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxygen

Sumário da Subseção

1 IntroduçãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

16 / 28

Page 56: Documentação de Código-fonte · 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

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 arquivode configuracao existente:$ doxygen [configName]

4) Use o doxygen para gerar um arquivo de estilos template para osformatos RTF, HTML e Latex.RTF: $ doxygen -w rtf styleSheetFileHTML: $ 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 rtfRTF: $ doxygen -e rtf extensionsFile

Quando -s eh especificado, os comentarios sao omitidos no arquivode configuracaoQuando configName eh omitido, ’Doxyfile’ sera utilizado por padrao

17 / 28

Page 57: Documentação de Código-fonte · 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

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 arquivode configuracao existente:$ doxygen [configName]

4) Use o doxygen para gerar um arquivo de estilos template para osformatos RTF, HTML e Latex.RTF: $ doxygen -w rtf styleSheetFileHTML: $ 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 rtfRTF: $ doxygen -e rtf extensionsFile

Quando -s eh especificado, os comentarios sao omitidos no arquivode configuracaoQuando configName eh omitido, ’Doxyfile’ sera utilizado por padrao

17 / 28

Page 58: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxygen

Exemplo de Arquivo de Configuração

# Arquivo de conf iguracao Doxygen

PROJECT_NAME = " LmaTimer : t imer−cpp "PROJECT_NUMBER = 0.9OUTPUT_DIRECTORY = / home / axpavim / exemplos−t re inamento / t imer−cpp / doc /OUTPUT_LANGUAGE = Engl ishFULL_PATH_NAMES = YESSTRIP_FROM_PATH = / home / axpavim / exemplos−t re inamento / t imer−cpp /INPUT = / home / axpavim / exemplos−t re inamento / t imer−cppFILE_PATTERNS = ∗ . c \

∗ . cc \∗ . cpp \∗ . java \∗ .h \∗ . hpp \∗ . cs \∗ . py

GENERATE_HTML = YESHTML_OUTPUT = htmlHTML_FILE_EXTENSION = . htmlCLASS_DIAGRAMS = YESCLASS_GRAPH = YESCOLLABORATION_GRAPH = YESGROUP_GRAPHS = YES...

18 / 28

Page 59: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Sumário da Subseção

1 IntroduçãoImportância da Documentação do Código-fonte

2 Documentando o Código-fonte com DoxygenEstilos de Documentação

3 Utilização e Configuração de um Projeto DoxygenA Ferramenta DoxygenA Ferramenta Doxywizard

4 Resultado

19 / 28

Page 60: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Interface Gráfica para utilização do Doxygen

20 / 28

Page 61: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Configuração Básica (Wizard)

21 / 28

Page 62: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Configuração Básica (Wizard)

22 / 28

Page 63: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Configuração Básica (Wizard)

23 / 28

Page 64: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Configuração Básica (Wizard)

24 / 28

Page 65: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Configuração Avançada (Wizard)

25 / 28

Page 66: Documentação de Código-fonte · 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

Utilização e Configuração de um Projeto Doxygen

A Ferramenta Doxywizard

Interface Gráfica para utilização do Doxygen

26 / 28

Page 67: Documentação de Código-fonte · 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

Resultado

Resultado final

27 / 28

Page 68: Documentação de Código-fonte · 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

Agradecimentos

Obrigado pela Atenção!

Alberto Xavier [email protected]@labmetro.ufsc.br

28 / 28