vvvvvvvvvvvvvvvvvvvvvv Apesar de ser uma das tarefas de um processo de codificação, a produção de documentação técnica nunca é tão bem vista e encarada quanto a produção de código-fonte. Para aliviar este sintoma existem ferramentas automáticas de geração de documentação técnica, tendo como base (input) o próprio código-fonte.
O Doxygen é uma destas ferramentas, distribuída com licença GPL, que é adequada para utilização com código-fonte em linguagens de programação tais como C/C , Java, ou até mesmo C# e PHP. Além de ser aberta e livre, é uma solução que se distingue de outras soluções idênticas pelo seu suporte a um enorme leque de formatos de documentos: HTML, LateX, PDF, RTF, Postscript, etc. É tão flexível que o próprio Manual de Utilização (User’s Guide) foi gerado através do Doxygen.
O Doxygen é desenvolvido debaixo do Linux e Mac OS X, mas é portado para a grande maioria dos sistemas operativos.
O Doxygen é um sistema de geração automática de documentação técnica a partir do código-fonte. As linguagens reconhecidas pelo sistema são: C/C++, Objective-C, Java, IDL e PHP, C# e D.
O Doxygen é útil para:
Esta extracção automática de informação a partir do código-fonte é bastante útil para se manter a documentação técnica consistente e sempre actual. Mesmo sem comentários, e como reconhece a linguagem de programação, consegue gerar informação sobre as entidades e as suas interligações, que é muito importante na análise de grandes projectos ou de aplicações “legadas” (legacy).
Antes de mais1), é importante saber se realmente é necessário documentar o código-fonte. Caso a resposta seja afirmativa, é preciso perceber as vantagens e desvantagens da aplicação de ferramentas automáticas de geração de documentação técnica. Só então fica claro o porquê de se usar o Doxygen numa equipa de produção/manutenção de software.
Existem diversas razões para se documentar o código-fonte:
É possível não documentar o código-fonte, especialmente quando a equipa é composta por poucos elementos ou quando se trabalha sozinho. No entanto, após o projecto crescer substancialmente, quer em tamanho quer no número de recursos alocados, cedo se começa a identificar a necessidade de existir alguma documentação, seja informal ou mesmo até formal, sobre o código-fonte. Naturalmente, quanto mais cedo se começar a documentar, mais fácil será manter a documentação correcta. E com o suporte de uma ferramenta automática, sempre pronta a ser usada, fica mais simples começar a documentar o código-fonte.
Estas são as vantagens mais comuns na aplicação de uma ferramenta automática de geração de documentação técnica ao código-fonte de um projecto de software:
| Funcionalidades | Avaliação |
|---|---|
| Project Editor | No |
| Editor do código-fonte | No |
| Symbol Browser | Yes |
| Class Browser | Yes |
| Hierarchy Browser | Yes |
| Include Browser | Yes |
| Cross Referencer | Yes |
| Version Control System GUI | No |
| Retriever Tool | No |
| Grep Tool | No |
| Language Parsers | C, C , Java, Objective-C, PHP, C#, D |
| Portability | Linux, Windows |
| Documentation | Excellent |
| Deployment | Easy |
| License | GPL |
| Referência | Endereço URL |
|---|---|
| Doxygen @ SourceForge | http://www.stack.nl/~dimitri/doxygen |
| Doxygen Documentation | http://www.stack.nl/~dimitri/doxygen/manual.html |
| Doxygen FAQ | http://www.stack.nl/~dimitri/doxygen/faq.html |
| Artigos e outros Documentos | |
| 10 Minutes to document your code | http://www.codeproject.com/tips/doxysetup.asp |
| Using Doxygen | http://www.lugatgt.org/articles/doxygen/ |
| Doxygen: A breath of fresh air for documentation | http://www.builderau.com.au/architect/sdi/0,39024602,20270932,00.htm |
| Projects that use doxygen | http://www.stack.nl/~dimitri/doxygen/projects.html |
Indicar casos de sucesso, a nível nacional, no uso desta solução.