
A flowchart is a type of
diagram
A diagram is a symbolic Depiction, representation of information using Visualization (graphics), visualization techniques. Diagrams have been used since prehistoric times on Cave painting, walls of caves, but became more prevalent during the Age o ...
that represents a
workflow or
process
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
* Business process, activities that produce a specific s ...
. A flowchart can also be defined as a diagrammatic representation of an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
, a step-by-step approach to solving a task.
The flowchart shows the steps as boxes of various kinds, and their order by connecting the boxes with arrows. This diagrammatic representation illustrates a solution model to a given problem. Flowcharts are used in analyzing, designing, documenting or managing a process or program in various fields.
[SEVOCAB: Software Systems Engineering Vocabulary](_blank)
Term: ''Flow chart''. Retrieved 31 July 2008.
Overview

Flowcharts are used to design and document simple processes or programs. Like other types of diagrams, they help visualize the process. Two of the many benefits are that flaws and
bottlenecks may become apparent. Flowcharts typically use the following main symbols:
* A process step, usually called an ''activity'', is denoted by a rectangular box.
* A decision is usually denoted by a diamond.
A flowchart is described as "cross-functional" when the chart is divided into different vertical or horizontal parts, to describe the control of different organizational units. A symbol appearing in a particular part is within the control of that organizational unit. A cross-functional flowchart allows the author to correctly locate the responsibility for performing an action or making a decision, and to show the responsibility of each organizational unit for different parts of a single process.
Flowcharts represent certain aspects of processes and are usually complemented by other types of diagram. For instance,
Kaoru Ishikawa defined the flowchart as one of the
seven basic tools of quality control, next to the
histogram
A histogram is a visual representation of the frequency distribution, distribution of quantitative data. To construct a histogram, the first step is to Data binning, "bin" (or "bucket") the range of values— divide the entire range of values in ...
,
Pareto chart,
check sheet,
control chart,
cause-and-effect diagram, and the
scatter diagram. Similarly, in
UML, a standard concept-modeling notation used in software development, the
activity diagram, which is a type of flowchart, is just one of many different diagram types.
Nassi-Shneiderman diagrams and
Drakon-charts are an alternative notation for process flow.
Common alternative names include: flow chart, process flowchart, functional flowchart, process map, process chart, functional process chart, business process model, process model, process
flow diagram,
work flow diagram, business flow diagram. The terms "flowchart" and "flow chart" are used interchangeably.
The underlying
graph structure of a flowchart is a flow graph, which abstracts away node types, their contents and other ancillary information.
History
The first structured method for documenting process flow, the "
flow process chart", was introduced by
Frank and
Lillian Gilbreth in the presentation "Process Charts: First Steps in Finding the One Best Way to do Work", to members of the
American Society of Mechanical Engineers (ASME) in 1921. The Gilbreths' tools quickly found their way into
industrial engineering
Industrial engineering (IE) is concerned with the design, improvement and installation of integrated systems of people, materials, information, equipment and energy. It draws upon specialized knowledge and skill in the mathematical, physical, an ...
curricula. In the early 1930s, an industrial engineer,
Allan H. Mogensen began to train business people in the use of some of the tools of industrial engineering at his Work Simplification Conferences in
Lake Placid,
New York.
Art Spinanger, a 1944 graduate of
Mogensen's class, took the tools back to
Procter and Gamble where he developed their Deliberate Methods Change Program.
Ben S. Graham, another 1944 graduate, Director of Formcraft Engineering at
Standard Register Industrial, applied the flow process chart to information processing with his development of the multi-flow process chart, to present multiple documents and their relationships. In 1947,
ASME adopted a symbol set derived from Gilbreth's original work as the "ASME Standard: Operation and Flow Process Charts."
Douglas Hartree in 1949 explained that
Herman Goldstine and
John von Neumann
John von Neumann ( ; ; December 28, 1903 – February 8, 1957) was a Hungarian and American mathematician, physicist, computer scientist and engineer. Von Neumann had perhaps the widest coverage of any mathematician of his time, in ...
had developed a flowchart (originally, diagram) to plan computer programs. His contemporary account was endorsed by IBM engineers and by Goldstine's personal recollections. The original programming flowcharts of Goldstine and von Neumann can be found in their unpublished report, "Planning and coding of problems for an electronic computing instrument, Part II, Volume 1" (1947), which is reproduced in von Neumann's collected works.
The flowchart became a popular tool for describing
computer algorithms, but its popularity decreased in the 1970s, when interactive
computer terminals and
third-generation programming languages became common tools for
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
, since algorithms can be expressed more concisely as
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
in such
languages. Often
pseudo-code is used, which uses the common idioms of such languages without strictly adhering to the details of a particular one. Also, flowcharts are not well-suited for new programming techniques such as
recursive programming.
Nevertheless, flowcharts were still used in the early 21st century for describing
computer algorithms. Some techniques such as
UML activity diagrams and
Drakon-charts can be considered to be extensions of the flowchart.
Types

Sterneckert (2003) suggested that flowcharts can be modeled from the perspective of different user groups (such as managers, system analysts and clerks), and that there are four general types:
[Alan B. Sterneckert (2003) ''Critical Incident Management'']
p. 126
/ref>
* ''Document flowcharts'', showing controls over a document-flow through a system
* ''Data flowcharts'', showing controls over a data-flow in a system
* ''System flowcharts'', showing controls at a physical or resource level
* ''Program flowchart'', showing the controls in a program within a system
Notice that every type of flowchart focuses on some kind of control, rather than on the particular flow itself.
However, there are some different classifications. For example, Andrew Veronis (1978) named three basic types of flowcharts: the ''system flowchart'', the ''general flowchart'', and the ''detailed flowchart''. That same year Marilyn Bohl (1978) stated "in practice, two kinds of flowcharts are used in solution planning: ''system flowcharts'' and ''program flowcharts''...". More recently, Mark A. Fryman (2001) identified more differences: "Decision flowcharts, logic flowcharts, systems flowcharts, product flowcharts, and process flowcharts are just a few of the different types of flowcharts that are used in business and government".
In addition, many diagram techniques are similar to flowcharts but carry a different name, such as UML activity diagrams.
Reversible flowcharts represent a paradigm in computing that focuses on the reversibility of computational processes. Unlike traditional computing models, where operations are often irreversible, reversible flowcharts ensure that any atomic computational step can be reversed. Reversible flowcharts are shown to be as expressive as reversible Turing machines, and are a theoretical foundation for structured reversible programming and energy-efficient reversible computing systems.
Building blocks
Common symbols
The American National Standards Institute
The American National Standards Institute (ANSI ) is a private nonprofit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organiz ...
(ANSI) set standards for flowcharts and their symbols in the 1960s. The International Organization for Standardization
The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries.
M ...
(ISO) adopted the ANSI symbols in 1970. The current standard, ISO 5807, was published in 1985 and last reviewed in 2019. Generally, flowcharts flow from top to bottom and left to right.
Other symbols
The ANSI/ISO standards include symbols beyond the basic shapes. Some are:
Parallel processing
*'' Parallel Mode'' is represented by two horizontal lines at the beginning or ending of simultaneous operations
For parallel and concurrent processing the ''Parallel Mode'' horizontal lines or a horizontal bar indicate the start or end of a section of processes that can be done independently:
* At a '' fork'', the process creates one or more additional processes, indicated by a bar with one incoming path and two or more outgoing paths.
* At a ''join'', two or more processes continue as a single process, indicated by a bar with several incoming paths and one outgoing path. All processes must complete before the single process continues.
Diagramming software
Any drawing program can be used to create flowchart diagrams, but these will have no underlying data model to share data with databases or other programs such as project management
Project management is the process of supervising the work of a Project team, team to achieve all project goals within the given constraints. This information is usually described in project initiation documentation, project documentation, crea ...
systems or spreadsheet
A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in c ...
. Many software packages exist that can create flowcharts automatically, either directly from a programming language source code, or from a flowchart description language.
There are several applications and visual programming languages[Myers, Brad A.]
Visual programming, programming by example, and program visualization: a taxonomy.
ACM SIGCHI Bulletin. Vol. 17. No. 4. ACM, 1986. that use flowcharts to represent and execute programs. Generally these are used as teaching tools for beginner students.
See also
Related diagrams
* Activity diagram
* Control-flow diagram
* Control-flow graph
* Data flow diagram
* Deployment flowchart
* Drakon-chart
* Flow map
* Functional flow block diagram
* Nassi–Shneiderman diagram
* State diagram
* Swimlane
* Warnier/Orr diagram
* Why-because analysis
Related subjects
* Augmented transition network
* Business process mapping
* Data and information visualization
* Interactive EasyFlow
* Process architecture
* Pseudocode
* Recursive transition network
* Unified Modeling Language (UML)
* Workflow
References
Further reading
*
* ISO 10628: Diagrams for the chemical and petrochemical industry
ECMA 4: Flowcharts
(withdrawn �
of withdrawn standards)
* Schultheiss, Louis A., and Edward M. Heiliger.
Techniques of flow-charting
." (1963); with introduction by Edward Heiliger.
External links
''Flowcharting Techniques''
An IBM manual from 1969 (5 MB; PDF)
{{Authority control
Algorithm description languages
American inventions
Computer programming
Diagrams
Modeling languages
Quality control tools
Technical communication