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
Download

Documentação de Código-fonte - com a Ferramenta