Sei sulla pagina 1di 28

Flowcharting With the ANSI Standard:

A Tutorial

NED CHAPIN

InfoSc~ Inc., Menlo Park, Cah/ornia

The ISO and ANSI X3.5 standard flowchart symbols and their usage in
reformation processing are explained and examples given. The two main
categories of flowchart--the system chart or run diagram, and the flow
diagram or block diagram--are stressed. For each, the outline symbols and
their manner of use are presented, as well as gmdehnes and conventions, such
as cross-referencing. In the case of flow diagrams, notation is presented for
use within the outhne symbols.
Key words and phrases: standards, flowchart, flow diagram, system chart, run
diagram, block dmgram, program flowchart, documentation, outlines, boxes,
notation, symbols, program description, system description, algorithm
statement, communication
CR categories: 1 3, 2.2, 2.43, 4.0

HISTORICALDEVELOPMENT graphic aids systematically for this purpose and


publish their use [11]. Even though the details
Flowcharting is a means of graphically stating of the flowcharting as the standard specifies it
ways of solving information handling problems. today differ consider-ably from what they
Flowcharting, as people use the term in advocated, the spirit, the philosophy, and the
working with computers, must be distinguished rationale remain much as they presented them.
from other graphic aids. For stating clerical
procedures, such as those used in systems and For their own internal purposes and for
procedures work, people use a graphic means dealing with customers, each of the major
which has also been the subject of a standard computer manufacturers has over the course of
[4]. But it is quite different from the standard the years developed, adopted, published,
under discussion here. Logic designers also use modified, and advocated flow-charting
graphic aids for stating the character of the conventions (see, for example, [13, 15]). These
machines they design for handling information. have differed from vendor to vendor, in part
These too have been the subject of a standard deliberately as an at-tempt to distinguish one
[3, 19]. The emphasis in this tutorial paper is on vendor from the competing vendors, and in part
stating information handling problems where out of a sincere attempt to reflect what each has
the information handling is done at least in felt to be unique differences in their philosophy
major part with the aid of the automatic and approach to information processing
computer [7]. problems.
Users of computers have individually and
The intellectual father of flowcharting is collectively made decisions on flow-charting
John von Neumann. He and his asso-ciates at conventions. Most small and medium and many
Princeton University's Institute for Advanced large computer users have adopted the
Study were the first to use conventions presented to them by the vendor of
Copyright © 1970, by Ned Chapin the computer they

Computing Surveys, Vol 2, No. 2, June 1970


120 • Ned Chapm

CONTENTS have elected. But a few larger users have


chosen to go their own way, and have
developed their own internal standards. The
United States Air Force, for example, has
developed its own standards for this purpose
and in practice has had a mul-tiplicity of them
(see, for example, [21]).
Historical Development 119-121 Users of computers acting collectively
ANSI Standard 121-127 through the user groups have sometimes
Outhnes
Basle Outlmes
addressed themselves to the problem of
Additional Outlines standards for flowcharting. Since these user
Specialized Outlines groups normally have been composed of users
Standard Conventions
of only one vendor's computer, the effect
Use of the Standard 128-1~1
Situatmns
usually has been to recommend modifications
System Chart Conventions or suggestions to the com-puter vendor for
Flow Diagram Conventions changes in the vendor's standard. But a few
Problems in the Use of the Standard 142-143 users' groups, for example SHARE, have
Conclusion 143 independently pre-sented their own standards
Appendix Drawing Outhnes 143-146 and have ad-vocated them for general adoption
Terms [10].
Outlines
References 146
Individuals with competence and stand-ing in
the computer field have for their own use
sometimes deviated from the practice of the
various computer vendors and from the other
sources. They have pre-sented their own
recommendations for flowcharting. These
recommendations have been effective through
their authors' publi-cations (see, for example,
[7, 12, 16, 18]). Some of these
recommendations, however, have ceased to be
significant with the ad-vent of formal
standardization.
Using the computer itself to produce
flowcharts has had relatively little influence on
the development of standards, although
programs for doing it have been in use since
1957.~ To assist the process, a Systems
Flowchart Language (SFL) was even developed
[17]. Of more practical significance in
popularizing the de facto vendor standards has
been the vendors' practice of providing free
plastic templates to aid in drawing flowcharts
(see, for ex-ample, [14]).
During the 1960s a committee attempted to
develop a standard for flowcharting. Working
through the Business Equipment Manufacturers
Association and the Ameri-
1The author has pending pubhcation a paper on
the computer production of flowcharts. It includes
a summary of the historical development of these
techniques.

Computing Surveys, Vol. 2, No. 2, June 1970


Flowchartmg W~th the A N S I Standard: A Tutorial • 121

can Standards Association,2 with the com- This means that the user of the standard is free
mittee members drawn from computer vendors to draw outlines of any size to fit his own
and a few major computer users, the committee convenience. He may vary the size from time to
after the usual compromises drew up a time during the course of his flowchart, but he
proposed standard and circu-lated it for is to observe the ratio and general configuration
reaction. With revisions, it was approved in specified. For those who do not have ready
1963 and published as an American Standard. access to the standard, the Appendix to this
The Association for Computing Machinery and paper summarizes the ratios and config-
other groups published this standard in their urations.
periodi-cals, giving it considerable publicity
(see, for example, [1]). This standardization The standard implicity advances the use of a
effort in the United States paralleled a similar single width or weight of line for drawing the
effort conducted for the Interna-tional outlines. It also implicitly ad-vances a single
Standards Organization (ISO). orientation or positioning of the outhnes with
respect to each other. In particular, portions of
Subsequently, in 1965 and again in 1966, the outlines shown horizontally oriented in the
1968, and 1970, the American Stand-ard was stand-ard are to be drawn that way.
revised. The 1965 revision was major, but the
1966 and 1968 revisions were only minor. The
1970 revision ex-tended the standard to match Basic Outlines
more closely the ISO standard. The standard as The basic outlines specified in the standard
it is presented in this tutorial paper is the ANSI are the input-output, the process, the flowline,
1970 revision [2]. Since this is a tutorial paper, and the annotation outlines. These are
it does not cover every part of the standard, nor illustrated in Figure 1 and de-scribed in the
every variation in the use of the standard. Appendix.
The input-output outline indicates an input or
output operation, or input or out-put data. It is
defined for use irrespective of media, format,
ANSI STANDARD
equipment, and timing. Some speciahzed
outlines may be substi-tuted for this outline.
Outlines
The ANSI standard consists, in the first The process outline is the general purpose
place, of a series of graphic outlines or boxes, outline. It is the de ]acto default outline for use
which the standard terms "symbols." The when no other outline is specified by the
standard. The process outline indi-cates data
standard advances these flowchart outlines in
transformation, data movement, and logic
three groups: the basic, the additional, and the
operations. Some specialized out-lines may be
specialized. Complete flowcharts can be drawn substituted for this outline.
using only the basic and the additional outlines.
The use of the specialized outlines is optional. The flowline outline is an arrow of any
If they are used, however, they should be used length which connects successive other outlines
in a manner consistent with the standard. to indicate the sequence of opera-tions or data
(the "direction of flow"). It is defined for use in
an alternating fashion with the other outlines.
For the outlines in each group, the standard As such, it also indicates the sequence in which
specifies the shape, but not the size. The shape the other outlines are to be read. To specify the
is specified in two ways: by the ratio of the direction of flow or reading, open arrow-heads
width to the height and by the general may be used on any flowline as shown in
geometric configuration. Figure 1.
2 As of 1969. t h e A m e r m a n N a t i o n a l S t a n d a r d s I
n - s t i t u t e ( A N S I ) . 1430 B r o a d w a y , N e w York ,
The normal direction of flow is. the normal
N Y. 10018. direction of reading for people

Computing Surveys, Vol. 2, No. 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • 123

] Document
stylization of a torn piece of paper, repre-sents
data in the form of hard copy input or output of
any type. For example, it may represent data
taking the form of printing on paper produced
by a high speed printer, or of marks on cards
Magnet=c read by an optical reader, or of a graph
produced by a data plotter, or of a page of
Tape typing produced on a terminal.

The magnetic tape outline is a circle

r I Punched
/ D=sp~ay ~
Card Disk
Storage

Punched
~~ Manual
Input
Tape ~~ Drum
FIo. 3. Spec]ahzedouthnes for media Storage

third use, it may represent a start, stop, halt,


~ CommunJcat=on Lmk StorageCore

delay, pause, interrupt, or the like. For this use,


it has both an entry and an exit flowline. Onhne
Storage
The parallel mode outline is a pair of Offhne
horizontal lines with one or more vertical entry Storage
flowlines and one or more vertical exit
flowlines. It is used to indicate the start or end FIG. 4. Specmlizedoutlines for equipment
of simultaneous operations.
$peciolized Outlines
Groups. The specialized outlines fall into three Decision Merge
groups. One group permits spec-ification of the
data-carrying media (see Figure 3). Another
permits specification of the peripheral equipment
type (see Figure
> Preparatton Extract
4). A third permits specification of selected
types of processing action (see Figure 5). In
each case, where no specialized outline has
been provided, the standard specifies that the
basic outline covering the situa-tion should be
II II Pr~rd::~n:d ~ Sort
used. Thus, for any media or equipment, it
should be the input-output outline. For any
processing, it should be the process outline. The
one exception is the communication link, for
\/ Offhne
Operation
Collate
which the basic outline is the flowline.
Auxd=ary
Media outhnes. The document outline is the Offhne
most commonly used of all the specialized media Operation
outlines. This outline, a Fro. 5. Speciahzedouthnes for processing

Computing Surveys, Vol. 2, No . 2j J u ~ e 1970


124 • Ned Chapin

with a horizontal rightward pointing line The communication link outline is rep-
tangent to the bottom. This outline rep-resents resented by a zigzag flowhne. This is
data in the medium of magnetic tape. appropriate because typically data com-
munication done with the aid of equip-ment
The punched-card outline represents data in provides a flow of data from one place, or from
the medium of a punched card of any style, one medium or equipment, to another. As such,
size, or punching, such as Hol-lerith punched even though the out-line is equipment oriented,
cards, binary punched cards, Binary Coded it is used as a specialized flowline. Where
Decimal (BCD) punched cards, fifty-one necessary, open arrowheads may be used to
column cards, and the like. Thus, a time card indicate the direction of flow, in the same
which only has on it printed numbers and never manner described previously.
is punched with equivalent or even unrelated
information does not qualify for repre-sentation The on-line storage outline represents data
with the punched-card outline (it takes a held in any on-line intermediate and external
document outhne instead). Two further storage device of any type, as for example
specialized forms of the punched-card outhne magnetic disks, magnetic tapes, magnetic
are described below. drums, magnetic cards, addi-tional banks of
magnetic core storage, microfilm, etc. For data
The punched-tape outline represents data in on some of these devices, the standard provides
the medium of any punched con-tinuous more spe-cialized outlines when more precise
material, such as paper tape, punched plastic speci-fication is desired, as described below. A
tape, punched metal tape, etc. The requirements more specialized outline for data on mag-netic
to be met are that the medium be indefinite in tape was noted above in the media group.
length and that the data be represented by
punch pat-terns. The outline is a stylization of a
partial fold of paper tape. The disk storage outline represents data
stored on a disk device of any type, espe-cially
Equipment outlines. The display out-put a magnetic disk. The outline is a styli-zation of
outline is a stylization of a cathode-ray tube a cylinder standing on end. The outline is a
(CRT) with the face of the tube to the right and further specialization of the on-line storage
the neck of the tube to the left. This outline outline.
represents any kind of transitory data not in hard The drum storage outline represents data
copy form, as for example CRT displays, console stored on a drum device, especially a magnetic
displays, and the like. But the standard also drum. The outline is a styliza-tion of a drum
advances the display outline for in-termediate lying on its side. The out-line is a further
output data used during the course of processing specialization of the on-line storage outline.
to control the pro-cessmg. Common examples are
the data produced on console printers and time- The core storage outline represents data
sharing terminals if the human user is expected to stored in a magnetic core or similar high speed
utilize immediately the data presented. device that is not the primary in-ternal storage
for the computer. It might be, for example, an
auxiliary on-line bulk core device, or a remote
computer con-nected on-line with the computer
The manual input outline represents data doing the lnaln processing. The outline is a
acquired by human control of manu-ally styliza-tion of two drive lines in a magnetic
operated onhne equipment. Examples are data core array.
from the operation of keyboards, light pens,
console switch settings, push-buttons, The off-hne storage outline is an equilat-eral
transaction recorders, tag readers, and the like, triangle with a small bar. This out-line
where the human operator provides the timing. represents any data stored off-line regardless of
the medium and regardless

ComDuhng Surveys, Vol 2, No 2, Jun e 1970


Flowcharting Wit h the A N S I Standard: A Tutorial • 125

of the equipment used. In common practice, it flowchart). Examples of a predefined pro-cess


is used for manually maintained data files. are a named closed subroutine or a routine from
the operating system for the computer.
Process outhnes. The most common of the
specialized process outlines is the de-cision The manual operation outline indicates any
outline. It indicates comparison, de-of alternative off-line input or output producing operation
flows (sequences of opera-which determine or which has its speed determined by the speed of
select among a variety of alternative flows the human operator, as for example entering
(sequences or opera-tions). As such, the number data off-line by means of a keyboard as in a
of flowlines leaving a decision outline must keyboard-to-mag-netic-tape operation, or
always be greater than one. finding a folder in a file cabinet drawer.

Sometimes the number of flowlines leaving a The auxiliary operation outline indicates any
decision outline (the number of exits) exceeds off-line operation performed on equip-ment
three. In this case, the standard advances, as which operates at its own speed or a speed
shown in Figure 6, several alternatives which determined by something other than the speed
are equally ac-ceptable. One is the of its human operator. Examples of auxiliary
organizational chart tree pattern of flowlines operations are card-sorting operations,
from a single flowline leaving a decision punched-card inter-preting operations, and the
outline• Another alternative used in the same like. Auxiliary operations are performed by
way is a vertical flowline which has a number equipment, not by human beings.
of horizontal flowlines from it. To save space,
formal outconnectors may be omitted from The merge outline indicates the creation of
these two forms. Quite a different alterna-tive is one set of items from two or more sets having
a "branching" table in the form of a series of the same sort sequences. The out-line may be
pairs of rectangles, packed to-gether in a double used for both on-line and off-line operations.
row or a double column. The upper or left
portion replaces the de-cision outline; the lower The extract outline indicates ~he reverse of
or right portion replaces the usual the merge. That is, it indicates the cre-ation of
outconnectors. The tables use their first pairs of two or more sets of items from and in the same
boxes for explanation of the branching. sort sequence as the
• original set. The outline may be used for both
on-line and off-line operations.
The preparation outline indicates opera-tions The sort outline indicates the sorting of a set
on the program itself. They are usually control, of items into some sequence on the basis of
initialization, cleanup, or overhead operations some (usually specified) key. The outline may
not concerned directly with producing the be used for both on-line and off-line operations.
output data, but usually necessary to have done.
Three examples are setting the limiting value as
an iteration control, decrementing an index
register, and setting the value of a program
switch. By convention, when either a decision
or a preparation outline could be used (such as
for testing a switch), the common practice is to
use the decision outline.
The predefined process outline indicates or
identifies one or more operations which are
specified in more detail elsewhere, as in a
booklet or in a different flowchart (but not in
another part of this same
I ill!lll
F i t 6. Outhnes for large numbers of decisions

Computing Surveys, Vol. 2, No. 2, June 1970


126 • Ned Chapin

I the flowchart referred to must in turn be


Example of ver-
represented on the flowchart as beginning with
This a reference and ending with terminal outlines as described
LogsZ to a library
routine not previously. Both the detailed representation and
diagramed in
the striped outline must have location cross-
thin flowchart
references, as described below.

MAIN I 35C2 Cross-re]erences. In order to make cross-


I ERRORA Example of hori-
referencing easy between parts of the flowchart,
zontal striping
sets value On page4 of a the standard advances two con-ventions. One is to
of ARG flowchart, m a
routine called use or to assign names to portions of the flow
a represented by the flowchart. These names often
I MAI N Is
reference to a are the same names used in the program or system.
routine called
4A2 ER RORA on These may be the same as, or different from, the
page 35 of the identifying names used for connectors.
same flowchart

FIG. 7. Conventzons for striping and references An alternative convention (not mutu-ally
exclusive with the other) is to identify a
location on each physical piece of the
The collate outline indicates a combina-tion
flowchart, as for example, in terms of page,
of merge and extract. Thus, this out-line
row, and column, as in the manner of map
requires more than one entrance flow-line and
more than one exit flowline. This definition of coordinates. An example is the ref-erence to
collate used in the standard is not fully page 4, row A, column 2 cited for the terminal
consistent with the usual defi-nition of collate. outline in Figure 7. The standard leaves opgn
The outline may be used for both on-line and the exact manner of composing such location
off-line operations. references.
The ANSI standard is still in conflict with the
Standard Conventions ISO standard and with previous usage in the
Striping. The standard specifies limited use United States on the handling of references.
for either horizontal or vertical striping within an The ISO and general Ameri-can usage has been
outline. The vertical striping has already been to place the identi-fying name immediately
covered in the special outline for predefined above and to the left of the outline (such as
process (see Figure 7). Other uses of vertical MAIN in Figure 7), and to place the coordinate
striping are not specified by the standard. reference above and immediately to the right of
an outline (such as 35C2 in Figure 7). The
Horizontal striping is advanced by the ANSI standard advances exactly the opposite
standard as one alternative way of indi-cating a convention, but recog-nizes and cites the
reference to another part of the flowchart which deviation from the ISO standard. In this paper,
provides a more detailed representation, as for the ISO convention is used since it is also a
example, of a sub-routine. A horizontal line common usage in the United States and since
may be drawn from the left edge to right edge in the ANSI standard explicitly recognizes the
the upper portion of an outline, except for the ISO position.
flowline, communication link, and addi-tional
outlines. The upper area thus en-closed is used
to refer to some other part of the flowchart. The
Crossing flowlines. The standard makes
specific provision for connectors and cross-
lower enclosed area is used in the usual manner, references. These can be used to avoid the
as shown in Figure 7. Wherever a horizontal necessity of having crossing flowlines.
strip-ing is used within a symbol, the portion of If it is desired to use crossing flowlines, then
the standard specifies that the flow-

Computing S~rveys, Vol 2, No. 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • 12.7

Crossing
and partially obscured by it in any clock-wise
flowhnes position from it may be drawn in sequence a
with no
connection partial but closed outline of other instances of
the same medium, as shown in Figure 9.

The standard is not clear with regard to the


+t Joiningof
ftowhnes into handling of flowlines for multiple outlines. The
standard advances the con-vention that
flowlines may enter or leave from any part of
the multiple outline group. This in effect treats
the group as though it were a single outline
simply having inner lines marking off interior
~) ~ I ~ one flow line
portions. But for those common cases where the
group is to be broken into component parts and
the component parts processed differently, the
standard is si-lent. Perhaps the designers of the
standard assumed all group formation and
Fro. 8. Conventmnsfor flowhnes separa-tion to be operations requiring a process
outline, although this is contrary to long-
standing custom.
lines shall have no arrowheads in the vicinity of
the crossover. The standard specifies that the
presence of arrowheads on the flowlines is to To avoid this problem, this tutorial paper is
indicate a conjunc-tion or coming together of based on the position that if a single flowline
the flow. The direction of flow at such points of enters and a single flow-line exits, then the
join-ing flowlines is to be designated by the multiple media shown are treated as a group. If
position and direction of the arrowheads, as multiple flow-lines are used on either the
shown in Figure 8. entrance or exit sides, then the multiple
flowlines apply only t~ the specific media
Multiple outlines. The standard makes outlines to which they individually connect.
specific provision for the possibility of multiple
instances for the specialized media outlines.
These take two forms, one specifically for
punched-card media and the other for media Cl41ckofClcd$
generally. The one applicable to punched cards c- ] i~] Example of fflu|t ~olo document co)0N
! IJ treated Nparatqlly
only ad-vances a convention for representing a
deck of cards and a card file, as shown in
c,~,,,
Figure 9. These find their most common use in
¢~ I-'7 I 7:j2L+ME!
flowcharts for systems implemented with
punched-card handhng equipment. / |
The standard also advances a more general E.mp,,o,.,o,,,,~,,,,,ed
convention for use when multiple forms of ~L Ex~lrnpleof tP.'Nm~letlctopes
specified media have different identifications treated as l ~oup

and uses. For example, in punched-card MASTER ~ _ ~


installations, it is common to have a master or ~1 OETA,L1 I ~
header card followed by several detail or trailer I OETAO'~ I I >
cards. To repre-sent this situation, the standard I °ET'"3 I
advances that the main or first medium outline
should be drawn in full. Following it
FIG 9 Multlple symbol conventlons

Computing Surveys, Vol. 2, No. 2, June 1970


128 •
Ned Chapin

Flow D=agram other terms are run diagram, procedure chart, and
SystemChart ~

INPUT ' i
9 flowchart.
T h e distinction between the flow dia-gram and
the system chart is vital be-cause the use of the
standar d differs con-siderably for these two. I n
A Flow ~~ / the case of the system chart, the focus is upon th e
Dtagtam
gives the
detads of
inputs and the outputs produced by the sequences
PROCESS the process of runs, programs, or pro-cedures. In contrast, the
identlfCed
in the focus in the flow diagram is upon the sequences of
system chart
d a t a transformations needed to produce an outpu
t d a t a structure from an input d a t a structure. T
h e flow diagram tells "how." Whereas a system
chart identifies pro - grams, runs, or procedures b
41- SystemChart y name and dat a structures by name, the flow dia-
Flow Dmgram
gram identifies individual operations on portions
F1G 10. Relationship between flow dmgram and of dat a structures. T h e flow dia-gram is usually
system chart
an elaboration of wha t is indicated by a single
process outline in a system chart (see Figure 10).
USE OF THE STANDARD

Situations
Th e ANS I standar d flowchart symbols for
information processing cover two major In the remainde r of this paper, system chart
situations. One situation is for representing conventions and system chart guide-lines are
algorithms, especially those for execution by a considered first. These use a greater v a r i e t y of
computer. T h e other is for representing systems outlines, but the logi-cal complexity is relatively
without indi-cating the character of the component low. T h e n flow diagram conventions and flow
algorithms. Some other situations are noted briefly dia-gram guidelines are discussed. Flow dia-grams
later in this paper. T h e t e r m "flowchart," as can become logically complex even though the
used in the standard, m a y therefore refer to either numbe r of different outlines utilized is typicall y
of these situa-tions. 3 H e r e a f t e r in this paper fewer.
a clear dis-tinction is necessary between
flowcharts of systems and flowcharts of
algorithms. Hereafter , "flow diagram" designates System Chart Conventions
a flowchart of an algorithm, and "syste m chart " Basic ]ormat. T h e basic forma t of the
designates a flowchart of a system. system chart follows a sandwich r u l e - - t h a t is,
it is composed of alternating layers of d a t a
identifications and process identifications. T h e d
Other terms are also current in the field for a t a identifications are equivalent to the bread of
these two situations. Thus other terms sometimes the sand-wich, and the process identifications are
used for flow diagram are block diagram, logic equivalent to the filling in the sandwich. Jus t as
chart, and process chart, as well as flowchart, i'o r sandwiches m a y be of the Dag - wood type, so
system chart, the outpu t produced from one process operation
m a y serve as the input for a following process
3The standard's defimtion of the term "flowchart"
Is a subversion, well supported by popular usage, operation (a eompoun.d system chart) . B u t a
of a far older definiUon. The term "flowchart" has system chart must always begin with inputs (data
a history predating the use of computers In the identifications) and must always end with outputs
field of systems analysis, it hlstoncally has desig-
nated a graph]c a]d to analysis qmte different (data identifications).
from that contemplated m the standard This older
use of the term is illustrated m [7, 1963 ed., pp.
237-239], and three forms of flowcharts following
this older defimtmn are dlustrated m [6. Ch. 5] T o see this sandwich rule in use, con-

Computing Surveys, Vol 2, No 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • 129

/ SandwichAnalogy

AGE /
RECORDS
the identification of each input, each out-put,
and each process.
For this purpose, the usual convention is to
use the names normally assigned at that
I I I installation to the input and output. If the
I . FILLING AVERAGING system chart is likely to be read by persons not
of PRGGRAM
conversant with those names, then the English-
PROCESSING P43
language equiva-lent in full may be written out

/ I
of
I
OUTPUT
I
AGE
/ within the outlines to provide the identification.
Thus, Figure 11 also provides a restate-ment
that incorporates the identifications absent from
the system chart on the left in Figure 11.
Fro. 11. A rumple system chart using only
the basic outhnes
This same system chart is also present in the
sider the creation of a system chart using only top part of Figure 12. But Figure 12 also
the basic outlines. Assume that the input illustrates more, since it shows a compound
available is a set of data about the ages of system chart rather than just a simple one. The
employees. Assume that the output desired is a average which was the output of the first
single number, the average age of employees. processing operation in turn serves as input for
Using the basic outlines, no attention is needed another operation. Here the average age of
to the media or to the equipment. Hence, as employees is to be combined with previously
shown in Figure 11, the systems chart begins calculated data on the average age of employees
with an input-output outline for the input. to produce a chart showing the trend of the
Connected to that by a flowline is a process average age of employees over the course of
outline. Connected to that by a flowline and time. A preparation of this chart is a separate
ending the system chart is an input-output processing operation from a corn-
outline for the output.
To summarize, the basic format of the system
chart is a sandwich. It always begins with the
bread of input and ends with the bread of
output. The sand-wich filling is the processing
which con-verts the input into the output. But I
I AVERAG,N0
the system chart does not tell how the process-
I PR;AM I
ing is accomplished; it only identifies what
processing is done.

Identifications. The bare outlines shown in


Figure 11 are meaningful to someone who has
the identification of the input, the output, and I
the processing clearly in mind. But it has less TREND I
[ PRGGRAM I
communi-cation value to others because, even P67
though it tells that input is to be con-verted into
output, it does not identify which particular
input, what particular processing, or what
particular output. To improve the
communication value of the system chart,
therefore, a common con-vention is to indicate
within the outlines FIG. 12. Compound system chart using only
the basra outhnes

Computing Surveys, %7ol.2, No. 2, June 1970


130 • Ned Chapin

suming that the stress is upon the hard copy


aspects of this output, then the document
outline is the appropriate spe-cialized outline to
use. If this plot, how-ever, were displayed on a
CRT, then a display outline would be the
appropriate choice.

Use o] connectors. If a compound sys-tem


chart requires more space on the page to represent
it than is available, then connectors may be used to
break the chart into parts and to indicate the
connection between the parts on the separate
pages. This procedure is consistent with the
standard but does not improve the com-munication
value of the chart. An alterna-tive procedure also
consistent with the standard gives superior results.

FIG. 13. Compound system chart using the


specialized outlines The matter can be likened again to the
Dagwood sandwich. If one makes a Dag-wood
sandwich that is too large to bite, one procedure
putation of the current average age. The other
is to break the sandwich into two or more parts.
output of the trend program is the updated
Whenever doing this, however, one must add an
record of the prior averages.
additional slice of bread for each break because
Here, as before, clear identification of each of each
the inputs, output, and process-ings is provided,
but no indication of the nature of the medium or
equipment is provided in the choice of outlines.
Note the Dagwood sandwich structure.

Specialized outlines. In order to im-prove


the communication value of the system chart still
more, specialized out-lines may be used in place
of the basic outhnes already presented. Thus,
Figure 13 presents a redrawing of Figure 12 using
the specialized outlines. Figure 13 shows that the Page :3
data on the age of employees is on cards, and that
the output of the average age is put onto a 2Cl

magnetic disk or other external storage device


where ~t serves as input to the trend program.

The other input to this trend program is from


a magnetic tape, which has recorded on it the
previously computed average ages. A magnetic
tape also receives the output from this program
so that it can be recycled to serve again as input
if necessary.

The hard copy output from the second


F m 14 Example of good praetiee m breaking a system
program is a time series graphic plot. As- chart

Computing Surveys, Vol. 2, No 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • 131
Page 2 Page 2
complete sandwich must begin with a slice of
bread and end with a slice of bread. Since, by
analogy, input or output data serve as slices of
bread, one may break a long system chart into
shorter charts and still show a connection between
them by the choice of representing input or output
data. To see this, imagine breaking the system
chart in Figure 13 into two sepa-rate system
charts.

To make the communication value of the


system chart high, it is important to show all of the Page3
inputs and outputs for each part of the system. If
one of these appears at one place as an output, and
at another as an input, then it is only necessary to
repeat the outline with the identical iden-tification
and appropriate cross-reference. This is illustrated
in Figure 14. Notice that the disk output from the
first run which serves as an input to the second run
is shown twice. This is considerably more
illuminating to someone who studies any part of
the chart than would be the alter-native of using a
connector outline, illus-trated in Figure 15, where
two different ways of doing it are shown.

FIG. 15. t~xamples of poor practice in breaking a system


chart
In summary, the most effective way to break a
system chart into parts in order to fit it on limited
size pieces of paper is to repeat the representation creases, the communication value of the chart,
for selected in-puts or outputs, identifying and and is not illustrated here.
cross-referencing them appropriately. In this way Another alternative way of maintaining the
the material shown on each page is complete in identification of the source and use of data is by
itself. the use of an annotation outline. For example, one
could be inserted at the bottom of the first page
Annotation. When breaking a system chart, a indicating the page to look on to find the
problem arises on identifying the source and use additional use of this output as an inlaut, as shown
of data. The clearest con-vention is as shown in in Figure 16. On the page on which it appears as
Figure 14, by the use of cross-references with an an input, the annotation outline could again be
exact repetition of the data identification. This shown with an indication in it where this input
came from as an output. It is clear from even a
also serves well for multiple uses of an output as
casual examination of Figure 16 that the excessive
inputs to several process out-lines.
use of an-notation outlines clutters the system
chart and can decrease its communication value.

One alternative way of handling the situation is


by the use of the wording within the symbols To avoid the clutter of the annotation outlines
themselves. But this clutters the space yet provide the annotation, an alternative is to add
conventionally used for identification, making it a a column of annota-tion to the right (or the left) of
dual-use space rather than a single-use one. This the system chart. This can provide information
de- that is

Computing Surveys, Vol. 2, No. 2, June 1970


132 • Ned Chapin
Page2
IPUNCHED BY 17, can be widely understood. A chart which
IR~.'~D~h.. . . "1P E R S O N N E L
uses only specialized names can be fully
[DEPARTMENT
understood only by those who know the
~AY BE specialized names. Thus, the system chart
----IRUN AS
BACKGROUND shown in Figure 19 is less easily un-derstood
than the same system chart shown in Figure 17.

A second guideline is to use the data and


process identification names consistently and to
keep them brief. If the same name appears more
Page 3
than once anywhere in tile system chart, it
should always identify the same thing.

A third guideline is to use a relatively small


size for the outline. It improves the
communication value of the chart because it
enables a more compact layout, which allows
the reader's eye to take in more at one glance.

A fourth guideline is to leave blank space


around major unconvergent flows. This visually
sets them off, and makes their role in the system
more easily com-prehended, as in Figure 18. By
|USUAL /1~ contrast, in a uniformly packed or tightly spaced
r -~CYCLE IS
I lONE YEAR I sys-
L............. /
FIG. 16. Annotation symbolsin system charts
Count (n 1970" 340 records
I
AG E
I. . . . . . . boutl0%/yr
Punched b y Personnel 0ep t

frequently helpful in interpreting system charts; RECORDS m A-67 format from


i the PA hie documents
see Figure 17 for an example. The information
most commonly shown in such annotation AVERAGING
M a y be run as backg~'ound,
PROGRAM
columns is the volume of the input and output, P43
I-0 limited
the timing of the avail-ability of input or output,
the control procedures, the equipment
configurations required, the personnel Output in B-46 format
complements, and the geographic locations. which includes date

These items are normally not conveniently Prior Averages cover


onl y most recent
shown in the system chart itself because they ? 7 years

clutter it up too much, and are not of concern to


all readers. The use of this column alternative is I Ma y be run any number
an elaboration of the standard. I TREND
of tffnes on same data
Updates tire tape only
PROGRAM
Guidelines ]or system charts. In pre-paring P67
when ~ncxJtconta(ns
new data
system charts, the following guide-lines have CPU limited run
been found helpful from experi-ence. A first I
guideline is to choose the wording within the
outlines (the data and process identification Graph i$ on printer
Updated Pnor Averages
names) to fit the needs of the readers of the i$ In A 34 format
system chart. A chart using someth]ng
approaching the
English language, as illustrated in Figure FIG. 17. Annotation column for system charts

Computing Surveys, Vol 2, No. 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial * 133

09 <
-1O 3
3:E 7
(-7 E -10 J
7F
(-7(7 (
)o Z
F 7

FIG. 18. Example of an open and a tight layout of a system chart for the same system

tem chart, even simple straight lines of flow are not to excess. The more the system chart can tell
difficult to see clearly. the reader qmckly and easily, the more valuable
A fifth guideline is to collect incoming i.t is. W a y s ot providing cross-referencing and
flowlines and outgoing flowhnes so t h a t the annotation are men-tioned above.
flowlines actually entering and leaving a
processing outhne are kept to the mini-mum. This A ninth guideline is to give particular attention
is illustrated in Figure 17. to the processing t h a t affects dat a prior to the
A sixth guideline is to minimize crossing time t h a t the d a t a be-come input to a computer
flowlines. Crossing flowlines can be elimi-nated program or run. These are most often manual
by repeating input or output out-lines with operations and auxiliary operations. Failure to
appropriate cross-references as to source or spec-ify them in full is one of the most common
destination. shortcomings of system charts. (Example: How
A seventh guidehne is to use the spe-cialized did the data get punched into the cards in the
outlines wherever possible (com-pare Figures 12 system shown in Figure 19?)
and 13). Their use im-proves the communication
value of the system chart. T h e y are only slightly A tenth guidehne is to begin with what is
more difficult to draw. known and well understood. Prepare the system
chart describing that . Then extend the system
An eighth guideline is to use cross-ref- chart in each direction. T h a t is, for each of the
erencing and annotation generously, but inputs shown, find the

Computing Surveys, Vol. 2, No. 2, June 1970


134 • Ned Chapin
A67 punched by Personnel Dept from PA file
documents C o u n t m 1 9 7 0
An example of an elaboration of the standard
340records ,
increases about lO%/year
is the use of a five-pointed star outline to
P43 I-O limited, may be run as backgromld
represent data acquired by the on-line operation
of an optical detector of particle tracks in a
B46 includes date
spark chamber. Such equipment is not generally
A34 covers only most recent 17 years
available, and hence the standard provides no
P67 CPU IIrmted, updates A34 only wher~
B46 provides new d a t a - m a y be run spe-cialized outline. The basic input-output
any number of times on same data
outline is applicable, and hence no special-ized
GRAPH m on printer outline is really necessary.
FIG. 19. Example of speclahzed wording
within the outhnes of a system chart
Flow Diagram Conventions
Function. The flow diagram describes the
processing that produces it and what its input is.
algorithm for transforming input data structures
Then, regarding those inputs as outputs, into output data structures. As such, the primary
continue the procedure for each of those inputs. emphasis is upon depict-ing the sequence of
The same can be done in the other flow operations that tell how data are transformed. The
direction for the outputs. In this way the system secondary emphasis is upon identifying the
chart can be extended to cover the entire portions of the data structures affected and the
system, as well as cover-ing this system's tie-in operations performed. Questions of media or
with other systems. Typically, particular equipment typically become trivial.
attention is needed to the manual and auxihary
processing of data in the system. Since commonly the operations to trans-form
data structures consist of long se-quences of
An eleventh guideline is to make no
actions, the character of the flow diagram
violations of the standard, and to shun
deviations. This requires a clear distinction differs considerably from that of the system
between a violation, a deviation, and an chart. In the system chart, a sandwich rule
elaboration. An example may clarify each. describes its basic structure. No such
Using closed arrowheads on flowlines is an convement rule serves in the case of the flow
example of a violation. Another example is diagram. Since it is in effect an elaboration and
using a circle with a short right-of-cen-ter extension of what is usually shown as a single
horizontal line touching the bottom center, as outline on a system chart, the flow diagram re-
an outline for data on punched cards. This is a quires many more outlines and a much more
violation because the standard assigns a extensive presentation of details than does the
specffic significance to such a circle, and system chart.
provides a specific outline for data on punched
cards. The general character, therefore, of a flow
diagram is of a sequence of alternat-ing
Three examples of deviations from the
flowline and process outlines. Some-where in
standard are provided by IBM [14]. IBM
the early portion of this sequence will usually
advances an outline for "keying." This is a
appear one or more input-out-put outlines to
serious deviation since the standard al-ready
indicate the input of a data structure. Near the
provides two outlines for data from key-driven
end of the sequence will usually appear one or
equipment, or its operation. These are the
more input-output outlines to indicate the output
manual input (on-line) and the manual operation
of a data structure.
(off-line). IBM ad-vances an outline for a
"transmittal tape." This is a kind of document. Because of their greater length, the flow
The standard provides an outline for documents diagram must be broken into parts, as a
gener-ally. IBM advances an outline for an "off- practical matter. For this reason, con-nector
page connector." The standard provides a usage and cross-referencing become important
connector outline and specifies the use of cross- considerations in the creating and readmg of
references to indicate the location. flow diagrams.

Computing Surveys, Vol. 2, No 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • 135

a flow diagram using only the basic out-lines


provides some information but not as much as it
can when augmented with written identifications
within the outlines. These identifications are
important to in-dicate the portions of the data
structures affected and the operations. A long se-
quence of process outlines which do not designate
the portions of the data struc-tures affected soon
becomes ambiguous. For this reason it becomes,

I
as a practical matter, important to specify in detail
in a flow diagram exactly what portions of the
data structures are affected and in what way.

To this end, the flow diagram in Figure 20 can


( ) be redrawn as shown in Figure 21. Here the
Fin. 20. A flow diagram using basra and outline choice and sequence are identical to those
additional outhnes, with one speclahzed outhne in Figure 20, but now the outlines each contain
identifying informa-tion. The identifications
consists of four things: the names of parts of the
Basic ]ormat. Flow diagrams may be drawn algorithm as implemented (entry points, usually,
with the basic and additional out-lines described such as T H R D ) , the names of operations (such
previously. For example, consider the program to as "add"), the names of conditions (such as "end
find the average age of the employees shown in of data"), and the names of operands (parts of the
the system chart m Figure 17. Using the basic and data structures af-fected, such as TOTAL) .
the additional outlines, the flow diagram can be
stated as shown in Figure 20.
Specialized outline. To improve the
Some comments are in order on this example. communication value of a flow diagram, the usual
First, the beginning and the end of the flow are practice is to use the speciahzed process outlines
marked with the termina-tion outhne. This is wherever possible. The
unhke the case of the system chart, where the start
or the end of anything was an input-output outline.

Second, the sequence shown follows the


common pattern of read-transform-write. Since
that transformation cannot usually take place until
the input data have been read, the input operation

i
precedes the process operation. Both precede the
output operation.

Third, a very common feature of algomthms


prepared for implementation on a computer is the
use of iteration. This commonly appears in a flow
diagram as a loop of flow, as shown in Figure 20.
Note that, in order to indicate a section of flow
contrary to the normal rule, a long flow-line
together with open arrowheads has been used.

Just as in the case of the system chart, FIG. 21 A flow diagram with identfficatlons

Computing Surveys, Vol, 2, No. 2, J u n e 1970


136 Ned Chapin

181 systems, the equipment and media for in-put


G FAR• correct
and output can be altered at any time for
operator convenience, and hence are neither
date must at start
statically nor dynamically deter-mined by the
:2:---t
INI'I
¢11 detail in
be gwen
of program character of the data. For these reasons, the use
column of specialized input-output outlines in a flow
on right diagram is not recommended. Their use is not a
violation of the standard, but contributes little to
the communication value of a flow diagram and
i can even detract. For this reason, their use is not
t mputhas illustrated in this paper.
- -350-400
records
One outline that is illustrated is the an-
notation outline. This outline can be very
helpful in the flow diagram to describe values
:) dwlde
T O T A L byb~
and to provide explanation. Thus, in Figure 22,
I C O U~NTT an annotation outline has been used to indicate,
for the iterative loop, the expected number of
times the loop will be executed. This
information, it should be noted from Figure 21,
is not available from the outlines or from the
normal identification information supplied
within the outline. Another use of annota-tion
Fro. 22. A flowdiagram using specialized outhnes outhnes is the warning about the need for the
accurate date of the run, as shown in Figure 22.
specialized process outlines available for this
purpose are the decision, preparation, Connectors and cross-re]erences. Con-
predefined process, merge, extract, sort, and nectors and cross-references are important in flow
collate outlines. The manual and auxiliary diagrams because of the common length of flow
operation outlines are not usu-ally apphcable diagrams and because of convergent and divergent
because the flow diagram commonly represents flows. Flow dia-grams are almost always too large
only processing op-erations carried on within a to rep-resent on one sheet of paper. Usually they
computer. include alternative flow paths. Conver-gence
Using these outlines, Figure 21 can be points (fan in) and divergence points (fan out)
redrawn as shown in Figure 22. Here the must be presented and the flows clearly identified.
decision outline provides an explicit end-o[-
input-data test. The striped preparation outline
refers to the short flow sequence called To make the communication value of a flow
INITIAL . diagram high, it is desirable to have the flow
Also available in the standard, as de-scribed pattern shown in as linear or straight-line a form
previously, are specialized input-output outlines as possible. The more cut up, chunky, bunched,
such as those to indicate media or equipment. or branched the flow pattern is, typically the
As mentioned previ-ously, the main attention in more difficult it is for a person to comprehend.
a flow diagram is not upon the media or the For this reason, the use of connector outlines
equipment but upon the logical character of the and of cross-referencing normally helps give a
data transformations. Use of the specialized smoother, more linear appearance to the
input-output outlines clutters the flow diagram
~OW.
with additional shapes which tend to distract
from the main focus of atten-tion. Further, with If the flow diagram shown in Figure 22 could
not be represented all on one page but had to be
present-day operating
broken into parts, it could

Computing Surveys, Vol 2, No. 2, Jun e 1970


Flowchartinq With the A N S I Standard: A Tutorial • 137
Page8 Page9
8D1 established for identifying portions of the flow
9C1
diagram, then the location indication can be
entered above and immediately to the right of the
-- date must connector, as shown in Fig-ure 23.
be gwen

The standard does not specify any par - ticular


coordinate convention for use spe-cifically in
9A1 BC1
flow diagrams. As a practical matte r the most
common convention used is a page number
followed by a row and then a column designation
(see Figure 24 for an example). Some omit the
row des-ignation and some omit the column
divide I designation Some use a sequential count to
TOTAL bv
COUNT provide an index of the position within a row or
within a column of a connector position.
:IN
Anything tha t begins with a digit causes no
~wrlte confusion since names in most programming
languages m a y not start with a numeral.

P43-END,~
Fie. 23. A flow diagram with connectors and Th e symbolic name and cross-reference
cross-references notations m a y be used with any outline, not just
with connectors. T h e y are needed for all
be broken at any point. One way of doing it is horizontally striped outlines, as a mini-mum, as
shown in Figure 23. Th e connector outhne does shown in Figure 23. T h e names also provide a
not substitute for any other outline but instead way of cross-referencing any part of the flow
serves as an additional outline, in effect sequence shown in the flow diagram to the actual
specializing the flowline symbol. program coding. This is illustrated in Figure 23 by
the names F R T H and F I N , for example, which
As one reads the line of flow down the page 8 refer to portions of the program
part of Figure 23, one encounters an exit or
outconnector A3. Th e reader can then search
Figure 23 for an entry or in-connector having the ROWS
Page
same identifying set of characters A3 within it.
This entry or inconnector is the continuation of A *
B
the flow. Th e identffication within the entry and C
exit connectors must permit unequivocal and D
E
unique identification of the one ap-propriate entry F
connector to be associated with each exit G
H
connector. I
J
K
T o facilitate finding the entry connector for L
M
each exit connector, the common prac-tice is to N
use cross-references in the man - ner described O
P
previously If any name has been assigned to a Q
portion of the algorithm or program (that is, the R
1 2 3 4 5
program data structure), such as T H R D , then
COLUMNS
this name m a y be entered above and
immediately to the left of the connector, or within *Example thus, 9A1 =son page9,
row A. column 1. and 9G4 is on
the con-nector itself I f a coordinate plan has been page 9, row G, column 4

FzG 24 One cross-referencingscheme

Computing Surveys, Vol. 2, No. 2, June 1970


138 * Ned Chapin

:=~ is replaced by ~ t is not equal to


(---] )
+ plus, or addition ~
-
minus, or subtraction -~ <~ is not less than
*~ multiplication __ underline, blank
I I absolute value
;*} exponentiation ,~}
/ division negation
EOF end of file
: comparison [ logical OR
> is greater than & logical AND
= is equal to v , literal (zero level address)
< is less than
> ( ) grouping, level of address
--1> is not greater than A( ) address constant
Fro. 25. Symbols for use m flow diagrams

respectively, even though they are not en-t r y An eclectic list drawn from these three major
points. sources is offered m Figure 25. This list is"
composed from graphics included in the ASCII, E
Notation. T h e standar d does not spec-ify an B C D I C , and I B M B C D codes. 4 Hence,
y particular language, symbols, or notational computers can print these in computer drawn flow
scheme for use within the out-lines to identify the diagrams. T h e one exception is the arrow, since
dat a or to name op-erations. Ordinary Enlgish none of these codes includes arrows. T h e arrow,
prose tends to be too verbose to be readily how-ever, is still widely found where commu-
accommodated within small-size outlines. Y e t nications and display equipments are used, and has
using small-size outlines yields a more easily a history of use in programming work. I t provides
comprehended flow diagram. A notational scheme a nearer alternative, es-pecially for publication, tha
or set of symbols t h a t is compact and t h a t n does a double graphic.
permits easy representation of the common
situations is highly desirable.
Of particula r importance are the "is re-placed b
To this end, some years ago the Ameri-can y " symbols. Tw o alternative sym - bols are
Standards Association (now ANSI) circulated a common, and serve to indicate t h a t the symbol
working paper advocating a notation or set of on the left has its value determined b y what is on
characters (graphics) for such a use (references). the right, as il-lustrated in Figure 26. F o r this
M a n y users of flow diagrams prefer to use the purpose, the equal sign has sometimes been used.
same nota - tion t h e y use in the programming Such usage is inconsistent with mathe - matical
lan-guage. Although this works well with some practice, and gives a dual role to the equal sign,
computationally oriented languages on the other role being to in-dicate equality, as for
computationally oriented jobs (such as FORTRAN example, from a comparison.
or P L / I in engineering or scien-tific work) , it
falls short of the need for string operations,
complex operations on arrays, and manipulations F o r comparison, a colon is common. T h e
of all types of structures in logical terms. T o meet variable of comparison is shown on the left, and
these problems, several notational schemes have the standard or constant of com-parison is shown
been advanced in the literature, of which the on the right side of the
Iverson notation is probabl y the most widely 4American Standard Code
known [16]. for Information Inter-
change, published by ANSI, Extended Binary
Coded Decimal Interchange Code; and Binary Coded
Decimal.

Computing Surveys, Vol. 2, No 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial • . 139
Page S P~ 9 BD'~
amounts of material to be shown within each
outline, or smaller size outlines to be used m a
flow diagram. In both cases, an improvement in
FRST 8 B 2 ~ THRD~ } the communication value of the flow diagram
records
typically results.
8C1 Guzdelines ]or flow diagrams. A first
guideline is to chose the wording or sym-bols
within the outlines to fit the readers of the flow
diagram. This depends in a major part upon the
level of detail to be shown. The more summary
(less detailed) this is, the more difficult is it to find
a satisfactory wording or symbols to use within
the outlines. As a general rule, whatever is chosen
should be terse in order to permit the use of small
size outlines.

A second guideline is to be consistent in the


FIG. 26. The flow diagram of Figure 23 redrawn using
symbols within N e outhnes level of detail shown in the flow dia-gram. If
some parts of the flow diagram are m great
detail and others are only sketchy, the statement
colon. The exit flowlines from a decision of the algorithm is distorted. A consistent level
outline must be provided with an indica-tion of of detail pro-vides a sounder basis for making
the basis for their choice, expressed in terms judg-ments about the algorithm and presents a
consistent with the notation used within the
better basis for making estimates of com-puter
decision symbol outline, as shown, for example,
time, programming time, and con-version
in Figure 27.
difficulties and for debugging than does a
Parentheses can indicate grouping, a usage fluctuating level. Maintaining a consistent level
borrowed from mathematics. An-other use is to of detail is simple only when the level of detail
indicate levels of addressing. Most literals are matches the im-plementing programming
enclosed within prime marks (single quote language. The difficulty comes with flow
marks) to indicate the zero-level addressing diagrams at summary and intermediate levels of
status. Numeric literals, when they are to be detail.
used in arithmetic operations, are sometimes
shown without enclosing prime marks.
Nonnumeric character combinations ap-pearing
without the prime marks are as-sumed to be
first-level addresses--that is, the names of items
of data, such as a field or variables.

The notation for second and higher levels of


addressing is to enclose in succes-sive pairs of
parentheses, one for each ad-ditional level of
addressing desired. A special variant of this is
the address con-stant -- that is, something
whose value will be determined by its machine
language address at the time of execution. An A
in front of the parenthesis can serve this pur-
pose.
The use of a terse notation such as sum- Fin. 27. E n t r y and exit flowhnes m a flow
diagram
marized here permits considerably greater

Computing Surveys, Vol. 2, No. 2, ,Tune 1970


140 • Ned Chapin

A third guideline is to use identifying names A seventh guideline is to avoid using


consistently. Given the type and level of successive connector outhnes. If more than one
symbols for use within the out-hne, names for connector should properly appear in a series (as
data and operations should be used uniformly when multiple names are as-signed to one entry
and accurately. Figures 21, 26, and 27 illustrate point, or when the program calls for consecutive
good practice, for example. uncondi-tional transfers of control), good
practice is to collect the connectors to the left or
A fourth guideline is to use cross-refer-ences above the line of flow. A tree arrange-ment (hke
liberally in the flow diagram. Cross-references an upside-down version of that used for multiple
to both the program and to locatmns in the flow exits from a decision outline, as shown in the
diagram improve the communication value of top center of Figure 6) can also be used.
the flow diagram. To keep connectors small and
to use space efficiently, it is helpful to use a
location cross-reference inside the connector An eighth guideline is to observe con-
out-line, and the program name cross-reference sistently the general flow pattern from top to
outside the connector, as illustrated in Fig-ures bottom and from left to right. When this
26 and 27. guideline is observed, arrowheads may be
omitted from the flowlines that con-form to the
A fifth guideline is to keep the flow dia-gram guideline. Clarity in a flow dia-gram is
simple and clean. Clutter and lack of "white improved by arranging the main flow to
space" decreases the communica-tion value of conform as much as possible to the guideline.
the flow diagram. For con-venience and clarity, Minor and alternative flows may then deviate
spacing the diagram so it can be typed (if it is from normal, and by this deviation can be
prepared by manual means) is a real assistance. identified as not part of the main flow.

A sixth guidehne is to keep clearly sepa-rate A ninth guideline is to draw entrances at


the operations to be performed on program data upper left and exits at lower right. Entry and exit
structures from those to be performed on connectors are most noticeable if they are in a
operand data structures. That is, operations on consistent po-sition Thus, the usual practice is to
the program itself, such as switch settings, place an entry either above or to the left of the
indexing, initiali-zation of program control line of flow it is to join, and to place an exit
variables, and the like, should be shown in either below or to the right of the hne of flow it
preparation outlines, separate from operations comes from, as shown in Figure 27. For both
that transform input into output data. This cases, when set to the left or right, then the
guideline helps make a flow diagram more flowline goes from left to right. If set above or
easily understood, and it improves de-bugging below, the flowline drops down to or from the
work. To facilitate a clear sepa-ration, some line of flow. Partial exceptions may be made to
people add a mark to the basic outlines that maintain symmetry, as when a deci-sion outline
specify operations on the program data structure. has three exits, as exampled by exit D4 in
If used, the mark should be one that is easily Figure 27.
detected in a quick scan of the flow diagram.
Ex-amples are a large round spot within the A tenth guideline is to draw flowlines so that
outhne, or a bold left edge for the outline, or a they enter and exit at the visual centers of the
shaded upper left or center corner of the outline. outlines. The outlines usually possess either
None of these techniques are sanctioned by the vertical or horizontal sym-metry, typically
standard; only the second is a violation of the about their center points. If therefore entrance
standard, and hence should not be used. and exit flowline~ be drawn vertically and
horizontally sc that they appear to point toward
ol emerge from the center point of the sym

Computing Surveys, Vol 2, No 2, June 1970


Flowcharting With the A N S I Standard: A Tutorial
• 141

bol, the visual appearance of the flow dia-gram deviations. This guideline is explained above.
is improved.
An eleventh guideline is to use connec-tors Preparation o] flow diagrams. The
and cross-references to avoid exces-sive preparation of flow diagrams is primarily a
crossing flowlines. The reasons for this have heuristic matter. It is one for which no hard and
already been presented above. fast rules can be presented.
A twelfth gmdehne is to draw only one A basic heuristic approach to the prepa-ration
entrance flowline per outline symbol. This is of a flow diagram uses the "in-do-out" pattern.
especially important in summary and In order for the computer to produce output
intermediate levels of flow diagram. When data, it must have some input data to operate on.
more than one operation is specified or implied It cannot per-form the processing until the input
within an outline symbol, multi-ple entrance data has been made available. Hence, the gen-
flowlines could mean that the sequence of eral character of a flow diagram is a se-quence
events within the outline symbol may be involving the following steps: pre-paring to read
different for the respec-tive entrances, or even input data, reading input data, processing the
that not all the operations are to be performed input data read, producing the output data, and
for one or more of the entrances. To avoid this ending the processing actions.
am-bigmty, the usual practice is to make the
flowlines join prior to entry into the out-line, as
This is sometimes referred to as initial-ize,
shown in Figure 27. An alternative approach
process, and cleanup. But in turn, each stage
lacking conformity to the stand-ard and not free
itself has these elements usually also present.
of ambiguity is to sub-divide an outline (see, for
Thus, in order to do the out-put operation, it is
example, [9]). When the notation within the
necessary to do some initialization, to do the
outline symbols is at the same level of detail as
actual output, and then to do a cleanup.
the program itself, no practical difficulty arises.
For consistency, however, this guideline should A second common heuristic approach to
be observed at all levels of detail. assist in preparing flow diagrams is to assume
that a job is really much simpler than it actually
is. Then a flow diagram is prepared for this
A thirteenth guideline is to draw, with four simpler job. After that, more realism is added
exceptions, only one exit flowline for each by dropping some of the simplifying
outline. One exception is the decision outline assumptions, and the flow diagram is redrawn
which by definition must have multiple exits. to reflect this closer approximation to the real
An example is shown in Figure 27. The second job. This two-step process is repeated as many
is the input-output outline when an end-of-file times as needed. Each successive flow dia-gram
or end-of-data condition may result in a failure comes closer to the actual job.
to read input data. The notation within the out-
line should specify clearly the basis for the A third common heuristic approach is to
choice of the exit. The other excep-tions are the draw a series of flow diagrams, each one at a
extract and collate outlines in system charts. greater level of detail. The first flow diagram is
very general and provides only an overview (a
"first cut" at a job). Then each successive flow
A fourteenth guideline is to identify clearly diagram amplifies and provides additmnal
all multiple exits. This is an ex-tension of the detail. Each expands each of the outline
previous guideline, and is illustrated in Figure symbols in the earlier flow diagram into a
27. sequence of outline symbols. The final diagram,
then, is near or at the same level of detail as the
A fifteenth guideline is to make no violations
of the standard, and to shun pro-grammmg language that is to be used.

Computin g Surveys, Vol 2, N o 2, J u n e 1970


142 • Ned Chapin

PROBLEMS IN THE USE OF THE STANDARD supporting standardization work, has pub-lished
for the information of its member-ship and for
The evidence is clear that thus far, people in the the guidance of the profes-sional community,
computer field do not use the stand-ard. For only the 1963 version of the standard. It has
example, the author of this paper made a survey published to date none of the revisions. Nor
of the 1968 and 1969 issues of five periodicals, does it require that all flowcharts in its
sixteen books pub-lished in 1968 and 1969, a publications con-form to the standard. The
sample of a dozen computer installations, and a action of the computer vendors is noted above.
sam-ple of five flowchartmg software packages. It is noteworthy that IBM in 1969 began the
The evidence from each supported the others. issue of a new template [14] that can be easily
used to prepare flowcharts conform-ing to the
The perio~ticals surveyed had surpris-ingly standard. ANSI, by its refusal to grant free
few articles using flowcharts. The periodicals reprint rights and by its high charges per page
for copies of the standard, severely inhibits the
were the Communications o] the ACM,
spread of knowledge about the standard. This is
Computers and Automation, Datamation, a case where ANSI's need for income to support
Business Automatwn, and the Journal o] its work results in hindering its work.
Data Management. The books included texts
on programming, and con-ference proceedings, as
well as specialized and general survey books. The
installa-tions covered a range of sizes from small Some of the construction problems are
to very large. The software packages m-cluded the closely related to the ignorance problem just
best-known flowcharting pro-grams. noted. The two most common viola-tions of the
standard are in the ratio di-mensions of the
outlines and in the use of deviant outline shapes.
The conclusion was that none of the in- Some would-be users of the standard are just
stallations even attempted to use the standard, ignorant; others in an attempt to make better use
and none of the periodicals had any article free of space are willful violators. In the latter
of violations of or devia-tions from the respect, the two most common complaints are
standard. Only one of the books used the that the standard wastes space and that it fails to
standard free of signifi-cant deviations, but provide enough space. People cite the "seven-
even it used the 1963 version of the standard. page program that takes a twenty-page flow
Only one of the flowcharting software packages diagram" and claim it is faster and easier to read
of-fered the standard, and that only as a non- the program listing. Although cross-referenc-ing
default option Most flowcharts observed in the in the diagram helps, it is not the entire solution.
survey followed the computer vendor Summarization is a solu-tion, but this gets into
recommendations, especially the 1964 rec- conception prob-lems. On the charge of wasting
ommendatmns from IBM. space, many would-be users of the standard fail
This lack of use of the standard sug-gests the to draw outlines of differing size (while
existence of a number of prob-lems. These fall preserving the ratio dimensions) to fit the
in four main areas: ig-norance, construction, wording or symbols that go within the outline.
conception, and applicability. A brief look .at This is especially true for decision outlines and
each may help clarify the reasons behind some connectors, as a practical matter.
of the material presented earlier in this paper.

Ignorance of the standard is wide-spread. The conception problems are more serious.
This ignorance has generally been abetted by Thus, it is widely agreed that a flow diagram is
the professional societies, the computer most useful if it is not as detailed as (is more
vendors, and ANSI. For ex-ample, ACM, which summary than) the program it describes. To
even has a policy of create these

Computin g Surveys, Vol 2, No 2, .lune 1970


Flowcharting With the A N S I Standard: A Tutorial • 143

requires compressing, condensing, and directly tell "why"; it tells instead "what" and
eliminating details. But which ones? And how "how." It leaves the "why" to hu-man inference.
many? A poor choice can render the resulting Third, the flowchart does not tell "how much."
flow diagram nearly useless. Being more This cannot usually even be inferred. Fourth,
summary also increases the difficulty of the flowchart does not fully tell what or who
providing useful cross-refer-encing between does or is to do something. It has elaborate
parts of the flow diagram and between the outlines for identifying peripheral equipment
diagram and the program. and media, but no way of indicating people,
This level of detail problem affects the rigor other computers, or parallel or alternative parts
and completeness of a flowchart. Prepared in of a given computer ~s performers of actions on
full detail, everything must be present in its data. It is doubtful if any attempt should be
proper place. All ties together. When full detail made, beyond the use of annotation, to extend
is absent from the flowchart, it becomes the flowchart beyond what it is already. It
difficult or even impossible from the flowchart cannot be all things to all analysts and
itself to determine whether a particular process programmers; but it does have a place.
or operation is correctly shown or is essen-tial.
This difficulty arises particularly for decision
outlines in flow diagrams and for process
outlines in system charts.
CONCLUSION
The applicability problems are major. A
minority of people in the field hold that a Both the system chart and the flow dia-gram
flowchart is a waste of time. Since neither provide important tools for the analyst and the
programmers nor analysts, they claim, think in programmer in preparing and in documenting
terms of flowcharts, why prepare them? work for implementa-tion on a computer.
Preparing and trying to read them just divert Carefully prepared, flowcharts can enhance the
people from a more productive use of their time. rigor with which the analyst and programmer
It is this author's observation that this indeed is think through the systems, programs, and as-
true for some people, but the documen-tation sociated procedures. This greater rigor in turn
value of flowcharts for other peo-ple's use still typically reduces the cost of de-bugging. But
justifies their preparation and maintenance. the major contribution of the system chart and
Along this same line, others claim that the flow diagram are to communicate some
alternative techniques offer superior essential aspects of information processing
documentation, for example, decision tables [8], work from one hu-man being to another. The
logic flow tables [20], Ivenson notation [16], or quality of this communication is enhanced by a
networks or directed graphs. Further, con-sistent use of the standard.
conceptually the standard could be applied to
prepare other types of graphic aids than the
system chart and the flow diagram. So far, these
have yet to be defined in the literature in clear APPENDIX. DRAWING OUTLINES
form.
Terms
These objections and alternatives have Ratios. The dimensional ratio of the outlines
indeed a measure of truth. This can be seen in defined m the standard is de-termined by the
several aspects of the flowchart. First, the following procedure. Con-struct a rectangle
flowchart is weak in showing the timing of circumscribing the out-line. The rectangle must be
processing and of data avail-ability or need. formed from vertical and horizontal lines, and
This lack of showing "when" is very serious for each line should just touch the inscribed outline.
communica-tions oriented systems and The ratio is then determined by measur-ing the
programs, for example. Second, the flowchart horizontal and the vertical sides of
does not

Computing Surveys, Vol. 2, No. 2, June 1970


144 • Ned Chapin

the circumscribing rectangle, and is usually with a width-to-height ratio of 1 to ], as shown


defined as the height as a proportion of the in Figure 1.
width taken as unity.
Sizes. The standard permits outlines of any size Flowline. This may be of any length. The
as long as the dimensional ratio and general spread between the barbs of the arrowhead and the
configuration are maintained. length of the arrow-head are each approximately
Lines. The standard indicates the use of any ten times the width of the flowline, as shown in
uniform width or weight of line for all of the Fig-ure 1. The angle of the barbs is 26½ de-grees
outlines, irrespective of their sizes. Lines need not from the fiowline--i.e, the entire arrowhead just
be continuous, but may be created by the close fits within a square.
spacing of discrete symbols.
Annotation. This is a rectangle with the right
Configuration. The standard specifies that the side missing, but with a width-to-height ratio of 1
outlines in shape should conform sufficiently close to 9, as shown in Figure 1.
to the configurations shown in the standard to
permit rapid and unambiguous identification. The Connector. This is a circle, as shown in
cur-vature of lines and the magnitude of angles Figure 2. In practice, it should be kept as small as
may vary from those shown in the stand-ard, possible. A size just large enough to
provided that the shapes still be clearly accommodate four characters of wording is about
recognizable. To that end, since the angles and typical.
curvatures shown in the standard are sometimes Terminal. This has a width-to-height ratio of 1
difficult to use in drawing, the configurations and to ] and looks like a slim rectangle but with half-
descrip-tion given in this paper sometimes circle ends, as shown in Figure 2.
simplify or round off to make the drawing easier,
within the restrictions imposed by the standard. Parallel mode. This is two horizontal parallel
lines of any equal length spaced about ten or so
line widths apart, as shown in Figure 2. Entering
the upper one may be one or more vertical
Orientation. The figures in this paper illustrate flowlines positioned anywhere along the line.
the general orientation specified by the standard Leaving the lower one may be one or more
for each outline. Outlines may not be turned. Each vertical flowlines positioned anywhere along the
outline except the connector and the decision hne. The number of entrance and exit flowlines
outlines has at least one straight line which must may not both be equal to one and neither may be
be either vertical or horizontal, as illus-trated in equal to zero--i.e, one must have two or more
the figures. The connector out-line has no flowlines, and one must have one or more
specified orientation; the de-cision outline is fiowlines.
horizontally oriented along its widest dimension.
Flowlines should normally be vertical or Document. The top three edges are a portion
horizontal, and may make right-angle bends. of a rectangle, but the bottom edge is a curved line
Flowlines deviating from horizontal or vertical are to represent a break in the paper. The width-to-
neither recommended nor proscribed by the maximum-height ratio is 1 to 9, as shown in Fig-
standard. ure 3. The width-to-height ratio of the rectangle
portion is 1 to ½. The radius of the left curve is
one-half the width, and the center is one-fourth of
the width in from the left edge. The radius of the
Outlines right curve is one and one-quarter of the width,
Input-output. This is a parallelogram with its and the center is straight below the right edge of
base edge 15 degrees further to the left than its top the outline.
edge. It has a width-to-height ratio of 1 to 9, as
illustrated in Figure 1.
Magnetic tape. This is a circle with a
Process. This is a single rectangle horizontal rightward pointing hne tangent to the
bottom. The tail line, as shown in

Computing Surveys. Vol 2, N o 2. June 1970


Flowcharting With the A N S I Standard: A Tutorial • 145

Figure 3, extends over to the point of in-tersection Figure 4 is a reorientation of the on-line storage
with an imaginary vertical line tangent to the outline, but with three lines added, one convex on
rightmost point on the edge of the circle. the top, and two to m a r k off bands. These are
arcs with a diameter equal to the width of the
Punched-card. Th e punched - card sym - bol equivalent on-line storage outline. T h e spacing
has a width - to - height ratio of 1 to ½ and of the bands is about one - tenth to one - twelfth
appears generally like an upper left corner cut of the width of the equivalent on-line stor-age
punched card, as shown in Figure 3. Th e corner outline. T h e overall width - to - height ratio is 1
cut has an angle of about 30 degrees and cuts off to .~.
about one-sixth of both the width and height.
Drum storage. This outline, as shown in
Punched-tape. This has a maximum - width - Figure 4, omits the two band arcs from the disk
to - maximum - height ratio of 1 to ½, as shown in storage outline, and reorients it to match the on-
Figure 3. T h e centers of the curves are at the one line storage outline. T h e overall width - to -
- fourth points of the width; the radius of the height ratio is ~ to 1.
curves are three - quarters of the width. T h e end Core storage. As shown m Figure 4, this is a
lines are vertical. T h e top left corner and the square and hence has a width - to - height ratio of
botto m right corner are not more t h a n 10 1 to 1. T h e two lines, each parallel to a side, are
percent of the height in from imaginary horizontal in one - eighth of the width from the edge of the
lines tangen t to the maximum points of the outline.
O#-line storage. This outline is an equilateral
arcs. triangle standing on a point. Since it is equilateral,
Dzsplay. As shown in Figure 4, the width - to - it has a width - to - height ratio of 1 to 0.866
height ratio is 1 to ] . T h e radius of the curved (about 15 to 13), as shown in Figure 4. T h e small
lines is one-half of the width. Th e neck curves line drawn about six-tenths or eight - thirteenths
join the horizon-tal lines one - third of the width of the distance from the top to the bottom tip of
in from the left ends. the triangle is a required p a r t of the outline.

Manual input. This outline, as shown in


Figure 4, is a stylization of a cross section of a Decision. As shown in Figure 5, this is a
keyboar d with the sloping sur-face (at an angle of diamond outline with a width - to - height ratio of
about 10 degrees) of the keyboard having its 1 to -~.
lowest point to the left. This cuts about one - third Preparation. T h e horizontal lines, as shown
off the height of the left vertical edge. T h e in Figure 5, are two - thirds of the total width.
width-to - maximum - height ratio is 1 to ½. This makes the angle of the four sloping sides fall
at 261 degrees from the vertical, since one-sixth of
Communication link. As shown in Figure 4, the t o t a l width is missing from each end of the
the zigzag has an angle of 45 degrees. Th e horizontal lines. This gives a width - to - height
distance between the parallel line segments is ratio of 1 to ~.
from ten to fifteen times the width of the flowline.
T h e hnes m a y be of an y length, and one or Predefined process. This is a rectangle with
more zigzags m a y be located anywhere along the vertical bars in about one-eighth to one-sixth of
lines. the width from th e left and right ends. Figure 5
On-line storage This is a stylizatmn of a shows the lines at the one-e~ghth position. T h e
portion of a cylinder with a convex end at the left overall shape is the same as the basic process
and a concave end at the fight, and having a width outline with a width - to - height ratio of 1 to ~.
- to - height ratio )f 1 to ~ as shown in Figure 4.
Th e ends are arcs with a radius equal to one-half Manual. This is a keystone (trape - zoidal)
of the width. shaped outline, as shown in Fig-ure 5, with a
maximu m width - to - height ratio of 1 to -~. T h
Disk storage. This outline shown in e slope of th e sides is

Computing Surveys, Vol. 2, No. 2, June 1970


146 •N e d Chapi n

3. - -Standard graphic symbols for logic dia-grams


about 15 degrees. This makes the length of the (Y32.14). American National Standards Institute,
bottom horizontal line equal to one-half of the width. New York, 1962 (12 pp.).
4. . Standard method of charting paper-work
procedures. American National Standards
Auxiliary . This outline as shown in Figure 5 is a Institute, 1959 (12 pp.).
square. 5. USA STANDARDSINSTITUTE5. Graphm
M e r g e , extract , sort, a n d collate. These are symbols for problem definition and analysls--a
standards working paper. Comm A C M 8, 6 (June
shown in Figure 5. All are constructed from 1965), 363-365.
equilateral triangles. Those t h a t use two abutting 6. ASSOCIATIONFOR SYSTEMS MANAGEMENT.
triangles must use tri-angles of the same size for the Chart-ing. In Bus~ness Systems, Assoc for Systems
two parts. Management, Cleveland, Ohio, 1963, Ch. 5.
7. CHAPIN, NED. An Introduction to Automatic
C a r d deck . As shown in Figure 9, this is an Computers Van Nostrand, Princeton, N J, 1957
extension of the punched - card out - line. The left (525 pp.) and 1963 (503 pp.).
corner outline is extended to give a height about one- An mtroductmn to decmlon tables. 8
Data Proc Manag. Ass. Quart. 8. 3 (April
fifth greater t h a n t h a t of the punched - card 1967), 2-33.
outline. The top - most horizontal line is extended 9 FORSYTHE, ALEXANDRA I., ET AL Computer
about one-eighth of the width beyond the right end of Sczence. Wdey, New York, 1969 (553 pp.).
10 FRITZ,, W. BARKLEY, ET AL. (SHARE's AD HOC
the punched - card outline em-bedded in this outline,
COMMITTEE ON FLOW CHART SYMBOLS). Proposed
and the new right vertical is made slightly shorter, as standard flow chart symbols. Comm A C M 2, 10
shown in Figure 9. This gives an overall width - to - (Oct. 1959), 17-18.
height ratio of about ~ to 9. ii. GOLDSTINE, H. H, AND YON NEUMANN, JOHN.
Planning and Cddzng Problems ]or an Elec-
tronic Computzng Instrument, Vols I, II, III. Van
Nostrand, Princeton, N.J., 1947, and 1948.
C a r d file. This is like the card deck outline but 12 GRUENBERGER, FRED J , ET AL. Introduction to
Electronzc Computers. Wiley, New York, 1963
with parts of the top, left slant (corner cut), right (167 pp.).
slant, and right vertical erased. The position of the 13. IBM CORPORATION. Flowchartmg techmques,
top and right lines is determined in the same man - C20-8152. IBM Corp, New York, 1964 (34 pp ).
ner as for the card deck outline. The re-maining 14 . Flowchartmg template, X20-8020. IBM Corp.,
upper right right angle has lines equal in length to New York, 1969 (one plastm cutout drawing
grade m a printed envelope).
about one - half of the height of the punched - card 15. - -Problem planmng aids, IBM Type 650. IBM
outline em-bedded in this outline. Corp, New York, 1956 (18 pp.).
16 IVERSON, KENNETH E. A Programming Lan-
guage. Wiley, New York, 1962 (286 pp.).
17. LEwis, F. DAVID,ET AL. Program 1401-
2.0.019 IBM Corp, New York, 1963 (18 pp.).
REFERENCES 18 McCRACKEN, DANIEL D., ET AL Programmzng
1. AMERICAN STANDARDS INSTITUTE5. Buszness Computers. Wiley, New York, 1959,
Proposed American Standard flowchart symbols pp. 26-43 and passim.
for m-formation processing Comm A C M 6, 10 19 RCA SERVICE COMPANY. The Language and
(Oct. 1963), 601-604 Symbology of Digital Computer Systems RCA,
2. ANSI Standard flowchart symbols and their use Camden, N J, 1959 (114 pp.)
in mformation processing (X3.5) Amemcan 20 SELF, SIDNEY B Logic flow table. I. Data
Natmnal Standards Institute, New York, 1970 (20 Manag 5, 12 (Dec 1967), 30-36
pp.). 21. UNITEDSTATESAIR FORCE AFICCS
As of 1969, American Natmnal Standards Insti-tute Documen-tation Standard Manual TEM-AF-2.
(ANSI). US Air Force, Washington, D.C., 1968 (126 pp )

Computing Surveys, Vol 2, N o 2, June 1970

Potrebbero piacerti anche