For my work I need to write a lot of small programs that read some date from some files and generate other files that are read by other programs and so on. Very quickly the structure becomes so complex, that it is hard to recall what files the given program generates and by what program the given data were generated. To solve this problem I use graphviz package to visualize the structure of my file system (in fact I have a directed graph that show what files my programs read and what files they write).
I would like to ask you if there is program that can help to do it. Or may be it can be done by means of the operation system? In addition to this info (what is written by what and what is read by what), it would be nice to have information about the syntax of the data files (some how attached to the files) as well as a short description of what my programs do.