There are a number of open source software documentation projects out there, including Doxygen and Docbook. But if you happen to be an aficionado of the computer typesetting software LaTeX and/or TeX (I am this type of person), then you may have heard of WEB, including CWEB, Noweb, FWEB, etc. WEB was devised by Don Knuth to help him write TeX and he now uses CWEB for his other programming. Like Doxygen and DocBook, WEB is a documentation system in which both the code and the documentation reside in the same file. This is a tremendous boon to the process of coding. Text formatting and diagramming can be accomodated and are obtained by processing the same "filename.cweb" input file differently. My own (admittedly limited) experience has been with CWEB in which an input file "filename.cweb" is processed by "ctangle" and "cweave". ctangle produces a compilable filename.c file from the filename.cweb input file, and cweave produces a LaTeX input file filename.tex. An executable is produced in the usual way, "gcc filename.c" and (beautiful) printed documentation is produced using "latex filename.tex".
After this long-winded introduction, I have happened across a very good web site, LiterateProgramming.com which has been put together by an individual over the past several years. He has collected links, documentation, software, and has produced Microsoft Windows verions of much of that software from code that was originally written for a Unix system.
Highly recommended. You heard it here first.