The philosophy behind this structure is to compartmentalize distinct analysis tasks. DASH provides a control structure for turning things on and off. Typically, each module runs independently and exchanges only event information, using COMMON or ZEBRA storage. One module should not need to know the value of a variable in another.
DASH is intended to work well interactively as well as in batch. Because of this, it is considered polite to keep your module quiet: do not print junk all over the screen as you do analysis. If you want diagnostic printout, see the print-level capabilities listed later in this document.
DASH becomes most useful when people can share modules. Although the talk entrypoint is a convenient way to set cuts, please make sure that your module does sensible analysis by default. It would also be nice if you provided a response to the command: TALK MYMODULE HELP.
As always, it is impossible to keep documentation up to date with analysis code. The best and most accurate documentation is the code itself. So if you intend to share your modules, please use long descriptive variable names and lots of comments. Include files with descriptive parameter names are also a good way to self-document data structures.