A low-level graphical representation of the structure of a program,
with emphasis on control flow and the primitive actions performed by the program
rather than on the data structures employed by the program. It consists of a set
of boxes of various shapes, interconnected by a set of directed arcs. The arcs
indicate flow of control while the various box shapes indicate different kinds
of action or decision. Within the boxes any notation can be employed to describe
the action or decision; typical notations are pseudocode and natural language.
Flowcharts have been used extensively for many years but are now rather
unpopular. For one reason they tend to obscure the structure of programs that
follow the tenets of structured coding (see structured programming) and, more
important, they ignore the topic of data structuring.