February 12, 2017
©2017 Information discipines, Inc., Chicago.
For a given program module we always need to know:
What other modules this one uses or depends on
#include) that it embeds.
This is sometimes called a module's "fan out".
We may also be curious about:
What other modules use or depend on this one
This is called module "fan in". High fan-in is considered a desirable measure of modularity.
From a documentation maintenance point of view the two are not at all symmetric.
Normally, a programmer needs to know what a module uses, so that those other components get incorporated into "make" or "project" control files or packaged for delivery. However, I can think of only one occasion where a programmer needs to know who else uses a module: when the programmer is considering making an incompatible change to the module, a change that would make existing correct user code stop working.
My usual practice, then, is not to try to document "where used" for a module and to strongly discourage making incompatible changes to widely used components. However, I don't object to "where used", "called by", or "derived by" lists if they're generated automatically, but they still may not be up-to-date.
Last modified, February 14, 2017
Return to IDI home page