The following tools were used to write this design:
DocBook
Dia to render the class diagrams
uml-seq (by Michael Stürmer) to render the UML sequence diagrams
omledit (by Michael Stürmer and Michael Reinsch) to provide consistency between class design, class diagrams and documentation.