How to visualize the design of a program in order to communicate it to others
- by Joris Meys
I am (re-)designing some packages for R, and I am currently working out the necessary functions, objects, both internal and for the interface with the user. I have documented the individual functions and objects.
So I have the description of all the little parts. Now I need to give an overview of how the parts fit together. The scheme of the motor so to say.
I've started with making some flowchart-like graphs in Visio, but that quickly became a clumsy and useless collection of boxes, arrrows and-what-not. So hence the question:
Is there specific software you can use for vizualizing the design of your program
If so, care to share some tips on how to do this most efficiently
If not, how do other designers create the scheme of their programs and communicate that to others?
Edit: I am NOT asking how to explain complex processes to somebody, nor asking how to illustrate programming logic. I am asking how to communicate the design of a program/package, i.e.:
the objects (with key features and representation if possible)
the related functions (with arguments and function if possible)
the interrelation between the functions at the interface and the internal functions (I'm talking about an extension package for a scripting language, keep that in mind)
So something like this :
But better. This is (part of) the interrelations between functions in the old package that I'm now redesigning for obvious reasons :-)
PS : I made that graph myself, using code extraction tools on the source and feeding the interrelation matrix to yEd Graph Editor.