Você está na página 1de 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.


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 = " LmaTimer : t i m e r−cpp "


PROJECT_NUMBER = 0.9
OUTPUT_DIRECTORY = / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp / doc /
OUTPUT_LANGUAGE = English
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp /
INPUT = / home / axpavim / exemplos−t r e i n a m e n t o / t i m e r−cpp
FILE_PATTERNS = ∗. c \
∗. cc \
∗. cpp \
∗. j a v a \
∗. h \
∗. hpp \
∗. cs \
∗. py
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = . html
CLASS_DIAGRAMS = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = 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


axpavim@das.ufsc.br
axp@labmetro.ufsc.br

28 / 28

Você também pode gostar