A flowchart is a type of
diagram
A diagram is a symbolic representation of information using visualization techniques. Diagrams have been used since prehistoric times on walls of caves, but became more prevalent during the Enlightenment. Sometimes, the technique uses a three- ...
that represents a
workflow
A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence of ...
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 se ...
. 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 rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
, 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 flaws and
bottleneck
Bottleneck literally refers to the narrowed portion (neck) of a bottle near its opening, which limit the rate of outflow, and may describe any object of a similar shape. The literal neck of a bottle was originally used to play what is now known as ...
s may become apparent. Flowcharts typically use the following main symbols:
* A process step, usually called an ''activity'', is denoted as a rectangular box.
* A decision is usually denoted as 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
was a Japanese organizational theorist and a professor in the engineering faculty at the University of Tokyo noted for his quality management innovations. He is considered a key figure in the development of quality initiatives in Japan, particul ...
defined the flowchart as one of the seven basic tools of quality control, next to the
histogram,
Pareto chart
A Pareto chart is a type of chart that contains both bars and a line graph, where individual values are represented in descending order by bars, and the cumulative total is represented by the line. The chart is named for the Pareto principle, w ...
,
check sheet
The check sheet is a form (document) used to collect data in real time at the location where the data is generated. The data it captures can be quantitative or qualitative. When the information is quantitative, the check sheet is sometimes call ...
,
control chart
Control charts is a graph used in production control to determine whether quality and manufacturing processes are being controlled under stable conditions. (ISO 7870-1)
The hourly status is arranged on the graph, and the occurrence of abnormalit ...
,
cause-and-effect diagram, and the
scatter diagram
A scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables for a set of dat ...
. Similarly, in
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
, a standard concept-modeling notation used in software development, the
activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
, 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
Flow diagram is a collective term for a diagram representing a flow or set of dynamic relationships in a system. The term flow diagram is also used as a synonym for flowchart, and sometimes as a counterpart of the flowchart.Harris. (1999, p. 156 ...
,
work flow
A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence of ...
diagram, business flow diagram. The terms "flowchart" and "flow chart" are used interchangeably.
The underlying
graph
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discre ...
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
The flow process chart is a graphical and symbolic representation of the activities performed on the work piece during the operation in industrial engineering.
History
The first structured method for documenting process flow, e.g., in flow sh ...
", was introduced by
Frank
Frank or Franks may refer to:
People
* Frank (given name)
* Frank (surname)
* Franks (surname)
* Franks, a medieval Germanic people
* Frank, a term in the Muslim world for all western Europeans, particularly during the Crusades - see Farang
Curr ...
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 is an engineering profession that is concerned with the optimization of complex process (engineering), processes, systems, or organizations by developing, improving and implementing integrated systems of people, money, kno ...
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 Mogensen is a surname of Danish origin which may refer to:
People
* Allan Mogensen, Danish orienteering competitor, winner of the 1993 World Orienteering Championship
*Andreas Mogensen
Andreas Enevold Mogensen (born 2 November 1976) is a Danish ...
's class, took the tools back to
Procter and Gamble
The Procter & Gamble Company (P&G) is an American multinational consumer goods corporation headquartered in Cincinnati, Ohio, founded in 1837 by William Procter and James Gamble. It specializes in a wide range of personal health/consumer hea ...
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
The American Society of Mechanical Engineers (ASME) is an American professional association that, in its own words, "promotes the art, science, and practice of multidisciplinary engineering and allied sciences around the globe" via "continuing ...
adopted a symbol set derived from Gilbreth's original work as the "ASME Standard: Operation and Flow Process Charts."
Douglas Hartree
Douglas Rayner Hartree (27 March 1897 – 12 February 1958) was an English mathematician and physicist most famous for the development of numerical analysis and its application to the Hartree–Fock equations of atomic physics and the c ...
in 1949 explained that
Herman Goldstine and
John von Neumann
John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. He was regarded as having perhaps the widest cove ...
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 algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ca ...
s, but its popularity decreased in the 1970s, when interactive
computer terminal
A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal and ...
s and
third-generation programming language
A third-generation programming language (3GL) is a high-level computer programming language that tends to be more machine-independent and programmer-friendly than the machine code of the first-generation and assembly languages of the second-gene ...
s became common tools for
computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
, since algorithms can be expressed more concisely as
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
in such
languages
Language is a structured system of communication. The structure of a language is its grammar and the free components are its vocabulary. Languages are the primary means by which humans communicate, and may be conveyed through a variety of met ...
. Often
pseudo-code
In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
is used, which uses the common idioms of such languages without strictly adhering to the details of a particular one.
In the early 21st century, flowcharts were still used for describing
computer algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ca ...
s. Modern techniques such as
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
s 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
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
s.
Building blocks
Common symbols
The American National Standards Institute
The American National Standards Institute (ANSI ) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organi ...
(ANSI) set standards for flowcharts and their symbols in the 1960s. The International Organization for Standardization
The International Organization for Standardization (ISO ) is an international standard development organization composed of representatives from the national standards organizations of member countries. Membership requirements are given in Ar ...
(ISO) adopted the ANSI symbols in 1970. The current standard, ISO 5807, was revised in 1985. 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
Parallel is a geometric term of location which may refer to:
Computing
* Parallel algorithm
* Parallel computing
* Parallel metaheuristic
* Parallel (software), a UNIX utility for running programs in parallel
* Parallel Sysplex, a cluster of ...
and concurrent
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), a ...
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
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
'', 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.
Software
Diagramming
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 leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. Th ...
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 cel ...
. 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
In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A VPL ...
[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. Examples include Flowgorithm
Flowgorithm is a graphical authoring tool which allows users to write and execute programs using flowcharts. The approach is designed to emphasize the algorithm rather than the syntax of a specific programming language. The flowchart can be conve ...
, Raptor
Raptor or RAPTOR may refer to:
Animals
The word "raptor" refers to several groups of bird-like dinosaurs which primarily capture and subdue/kill prey with their talons.
* Raptor (bird) or bird of prey, a bird that primarily hunts and feeds on ...
, LARP, Visual Logic
Visual Logic is a graphical authoring tool which allows students to write and execute programs using flowcharts. It is typically used in an academic setting to teach introductory programming concepts.
See also
* Alice
* Flowgorithm
* Raptor ...
, Fischertechnik
Fischertechnik is a brand of construction toy. It was invented by Artur Fischer and is produced by fischertechnik GmbH in Waldachtal, Germany. Fans often refer to Fischertechnik as "FT" or "ft".
It is used in education for teaching about sim ...
ROBO Pro, and VisiRule.
See also
Related diagrams
* Activity diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and o ...
* Control-flow diagram
A control-flow diagram (CFD) is a diagram to describe the control flow of a business process, process or review.
Control-flow diagrams were developed in the 1950s, and are widely used in multiple engineering disciplines. They are one of the cla ...
* Control-flow graph
In computer science, a control-flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a program during its execution. The control-flow graph was discovered by Frances E. Allen, who noted that ...
* Data flow diagram
A data-flow diagram is a way of representing a flow of data through a process or a system (usually an information system). The DFD also provides information about the outputs and inputs of each entity and the process itself. A data-flow diagram h ...
* Deployment flowchart
A deployment flowchart (sometimes referred to as a cross functional flowchart) is a business process mapping tool used to articulate the steps and stakeholders of a given process.
"Deployment flowcharts consist of a sequence of activity steps ...
* Drakon-chart
DRAKON is a free and open source algorithmic visual programming and modeling language developed within the Buran space project following ergonomic design principles. The language provides a uniform way to represent flowcharts of any com ...
* Flow map
A flow map is a type of thematic map that uses linear symbols to represent movement. It may thus be considered a hybrid of a map and a flow diagram. The movement being mapped may be that of anything, including people, highway traffic, trade goods ...
* Functional flow block diagram
A functional flow block diagram (FFBD) is a multi-tier, time-sequenced, step-by-step flow diagram of a system’s functional flow. The term "functional" in this context is different from its use in functional programming or in mathematics, where p ...
* Nassi–Shneiderman diagram
A Nassi–Shneiderman diagram (NSD) in computer programming is a graphical design representation for structured programming. This type of diagram was developed in 1972 by Isaac Nassi and Ben Shneiderman who were both graduate students at S ...
* State diagram
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, ...
* Swimlane A swimlane (as in swimlane diagram) is used in flowchart, process flow diagrams, or flowcharts, that visually distinguishes job sharing and responsibilities for sub-processes of a business process. Swimlanes may be arranged either horizontally or ve ...
* Warnier/Orr diagram A Warnier/Orr diagram (also known as a logical construction of a program/system) is a kind of hierarchical flowchart that allows the description of the organization of data and procedures. They were initially developed 1976, in France by Jean-Domi ...
* Why-because analysis
Related subjects
* Augmented transition network An augmented transition network or ATN is a type of graph theoretic structure used in the operational definition of formal languages, used especially in parsing relatively complex natural languages, and having wide application in artificial intell ...
* Business process mapping
Business process mapping refers to activities involved in defining what a business entity does, who is responsible, to what standard a business process should be completed, and how the success of a business process can be determined.
The main pur ...
* Interactive EasyFlow
Easyflow was one of the first diagramming and flow charting software packages available for personal computers. It was produced by HavenTree Software Limited of Kingston, Ontario Canada. HavenTree's mark on history for its product, which was subs ...
* Process architecture
Process architecture is the structural design of general process systems. It applies to fields such as computers (software, hardware, networks, etc.), business processes ( enterprise architecture, policy and procedures, logistics, project managemen ...
* Pseudocode
In computer science, pseudocode is a plain language description of the steps in an algorithm or another system. Pseudocode often uses structural conventions of a normal programming language, but is intended for human reading rather than machine re ...
* Recursive transition network
A recursive transition network ("RTN") is a graph theoretical schematic used to represent the rules of a context-free grammar. RTNs have application to programming languages, natural language and lexical analysis. Any sentence that is construct ...
* Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
(UML)
* Workflow
A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence of ...
References
Further reading
*
*ISO 10628
ISO 10628 ''Diagrams for the chemical and petrochemical industry
The petrochemical industry is concerned with the production and trade of petrochemicals. A major part is constituted by the plastics (polymer) industry. It directly interfaces with ...
: 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