all bits considered data to information to knowledge


Documenting Open Source Software with Doxygen

By now, open source software has found its ways into enterprise development, and it is no longer a subject for discussion - whether it could be used or not. It can. It is being used by major corporations, and entirely new business models were created around supporting open source, often also free, software.

The prime examples, such as Apache, JBoss, PostgreSQL, MySQL, Drupal, Subversion, Pentaho - to name but a few - are counting their deployments into hundreds of thousands. And then there are less known projects, hosted at sites dedicated to open source such as Apache Foundation,   SourceForge and Codeplex Foundation, which provide components that could be used in your own development (checking licensing terms is highly recommended!)

The good news is that these projects could be used to solve your particular problems; the bad news is that because of limited developers resources these projects might have inadequate documentation, in some cases - non-existent. Here's where the "open" nature of the software is at its best. You can do it yourself.

My current favourite tool to document source code is Doxygen. The tool was developed by Dmitry van Heesch, and released under GNU General public license. It compiles superb documentation  for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D. Here are but two examples of of the documentation I've generated from the open source code:

iTextSharp library (a port of the hugely popular iText open source Java library for PDF generation written entirely in C# for the .NET platform) and  SharpSSH (a secure Shell library for .Net, created by Tamir Gal and released under BSD style license).

Doxygen generated documentation for iTextSharp 5.0.2

Doxygen generated documentation for SharpSSH