Recent from talks
Contribute something
Nothing was collected or created yet.
Flowchart
View on Wikipedia

A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, 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.[1]
Overview
[edit]
for(i=0;i<5;i++)
printf("*");
The loop will cause five asterisks to be printed.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, 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
[edit]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.[2] The Gilbreths' tools quickly found their way into industrial engineering 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.[3] In 1947, ASME adopted a symbol set derived from Gilbreth's original work as the "ASME Standard: Operation and Flow Process Charts."[4]
Douglas Hartree in 1949 explained that Herman Goldstine and John von Neumann had developed a flowchart (originally, diagram) to plan computer programs.[5] His contemporary account was endorsed by IBM engineers[6] and by Goldstine's personal recollections.[7] 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.[8]
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, since algorithms can be expressed more concisely as source code 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.[9] Some techniques such as UML activity diagrams and Drakon-charts can be considered to be extensions of the flowchart.
Types
[edit]
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:[10]
- 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.[10]
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.[11] That same year Marilyn Bohl (1978) stated "in practice, two kinds of flowcharts are used in solution planning: system flowcharts and program flowcharts...".[12] 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".[13]
In addition, many diagram techniques are similar to flowcharts but carry a different name, such as UML activity diagrams.
Reversible flowcharts[14] 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.[15]
Building blocks
[edit]Common symbols
[edit]The American National Standards Institute (ANSI) set standards for flowcharts and their symbols in the 1960s.[16] The International Organization for Standardization (ISO) adopted the ANSI symbols in 1970.[17] The current standard, ISO 5807, was published in 1985 and last reviewed in 2019.[18] Generally, flowcharts flow from top to bottom and left to right.[19]
| ANSI/ISO Shape | Name | Description |
|---|---|---|
| Flowline (arrowhead)[17] | Shows the process's order of operation. A line coming from one symbol and pointing at another.[16] Arrowheads are added if the flow is not the standard top-to-bottom, left-to right.[17] | |
| Terminal[16] | Indicates the beginning and ending of a program or sub-process. Represented as a stadium,[16] oval or rounded (fillet) rectangle. They usually contain the word "Start" or "End", or another phrase signaling the start or end of a process, such as "submit inquiry" or "receive product". | |
| Process[17] | Represents a set of operations that changes value, form, or location of data. Represented as a rectangle.[17] | |
| Decision[17] | Shows a conditional operation that determines which one of the two paths the program will take.[16] The operation is commonly a yes/no question or true/false test. Represented as a diamond (rhombus).[17] | |
| Input/output[17] | Indicates the process of inputting and outputting data,[17] as in entering data or displaying results. Represented as a rhomboid.[16] | |
| Annotation[16] (comment)[17] | Indicating additional information about a step in the program. Represented as an open rectangle with a dashed or solid line connecting it to the corresponding symbol in the flowchart.[17] | |
| Predefined process[16] | Shows named process which is defined elsewhere. Represented as a rectangle with double-struck vertical edges.[16] | |
| On-page connector[16] | Pairs of labeled connectors replace long or confusing lines on a flowchart page. Represented by a small circle with a letter inside.[16][20] | |
| Off-page connector[16] | A labeled connector for use when the target is on another page. Represented as a home plate-shaped pentagon.[16][20] |
Other symbols
[edit]The ANSI/ISO standards include symbols beyond the basic shapes. Some are:[19][20]
| Shape | Name | Description |
|---|---|---|
| Data File or Database | Data represented by a cylinder symbolizing a disk drive. | |
| Document | Single documents represented as a rectangle with a wavy base. | |
| Multiple documents represented as a stack of rectangles with wavy bases. | ||
| Manual operation | Represented by a trapezoid with the longest parallel side at the top, to represent an operation or adjustment to process that can only be made manually. | |
| Manual input | Represented by quadrilateral, with the top irregularly sloping up from left to right, like the side view of a keyboard. | |
| Preparation or Initialization | Represented by an elongated hexagon, originally used for steps like setting a switch or initializing a routine. |
Parallel processing
[edit]- Parallel Mode is represented by two horizontal lines at the beginning or ending of simultaneous operations[19]
For parallel and concurrent processing the Parallel Mode horizontal lines[21] or a horizontal bar[22] 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.[22]
Diagramming software
[edit]
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 systems or spreadsheet. 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[23] that use flowcharts to represent and execute programs. Generally these are used as teaching tools for beginner students.
See also
[edit]
Related diagrams[edit] |
Related subjects[edit]
|
References
[edit]- ^ SEVOCAB: Software Systems Engineering Vocabulary. Term: Flow chart. Retrieved 31 July 2008.
- ^ Gilbreth, Frank Bunker; Gilbreth, Lillian Moller (1921). "Process Charts" (PDF). Archived from the original (PDF) on 2015-05-09. Retrieved 2016-05-06.. American Society of Mechanical Engineers.
- ^ Graham, Ben S. Jr. (10 June 1996). "People come first". Keynote Address at Workflow Canada.
- ^ American Society of Mechanical Engineers (1947) ASME standard; operation and flow process charts. New York, 1947. (online version)
- ^ Hartree, Douglas (1949). Calculating Instruments and Machines. The University of Illinois Press. p. 112.
- ^ Bashe, Charles (1986). IBM's Early Computers. The MIT Press. p. 327. ISBN 9780262022255.
- ^ Goldstine, Herman (1972). The Computer from Pascal to Von Neumann. Princeton University Press. pp. 266–267. ISBN 0-691-08104-2.
- ^ Taub, Abraham (1963). John von Neumann Collected Works. Vol. 5. Macmillan. pp. 80–151.
- ^ Bohl, Rynn: "Tools for Structured and Object-Oriented Design", Prentice Hall, 2007.
- ^ a b Alan B. Sterneckert (2003) Critical Incident Management. p. 126
- ^ Andrew Veronis (1978) Microprocessors: Design and Applications. p. 111
- ^ Marilyn Bohl (1978) A Guide for Programmers. p. 65.
- ^ Mark A. Fryman (2001) Quality and Process Improvement. p. 169.
- ^ Yokoyama, Tetsuo; Axelsen, Holger Bock; Glück, Robert (January 2016). "Fundamentals of reversible flowchart languages". Theoretical Computer Science. 611: 87–115. doi:10.1016/j.tcs.2015.07.046.
- ^ Krakovsky, Marina (June 2021). "Taking the heat". Communications of the ACM. 64 (6): 18–20. doi:10.1145/3460214.
- ^ a b c d e f g h i j k l m Gary B. Shelly; Misty E. Vermaat (2011). Discovering Computers, Complete: Your Interactive Guide to the Digital World. Cengage Learning. pp. 691–693. ISBN 978-1-111-53032-7.
- ^ a b c d e f g h i j k Harley R. Myler (1998). "2.3 Flowcharts". Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press. pp. 32–36. ISBN 978-0-521-62950-8.
- ^ "ISO 5807:1985: Information processing — Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts". International Organization for Standardization. February 1985. Retrieved 23 July 2017.
- ^ a b c Flowcharting Techniques GC20-8152-1 (PDF). IBM. March 1970. p. 10. Archived (PDF) from the original on 2021-10-15.
- ^ a b c "What do the different flowchart shapes mean?". RFF Electronics. Retrieved 23 July 2017.
- ^ Jonathan W. Valvano (2011). Embedded Microcomputer Systems: Real Time Interfacing. Cengage Learning. pp. 131–132. ISBN 978-1-111-42625-5.
- ^ a b Robbie T. Nakatsu (2009). Reasoning with Diagrams: Decision-Making and Problem-Solving with Diagrams. John Wiley & Sons. pp. 68–69. ISBN 978-0-470-40072-2.
- ^ Myers, Brad A. "Visual programming, programming by example, and program visualization: a taxonomy." ACM SIGCHI Bulletin. Vol. 17. No. 4. ACM, 1986.
Further reading
[edit]- ISO 5807 (1985). Information processing – Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts. International Organization for Standardization.
{{cite book}}: CS1 maint: numeric names: authors list (link) - ISO 10628: Diagrams for the chemical and petrochemical industry
- ECMA 4: Flowcharts (withdrawn – list of withdrawn standards)
- Schultheiss, Louis A., and Edward M. Heiliger. "Techniques of flow-charting Archived 2021-07-14 at the Wayback Machine." (1963); with introduction by Edward Heiliger.
External links
[edit]- Flowcharting Techniques: An IBM manual from 1969 (5 MB; PDF)
Flowchart
View on GrokipediaFundamentals
Definition
A flowchart is a diagram that visually represents a process, algorithm, or workflow by depicting a sequence of operations through interconnected standardized shapes, with arrows indicating the direction of flow.[6] This structured visualization allows for the clear illustration of how individual steps relate to one another in achieving a specific outcome.[5] The primary purposes of flowcharts include visualizing algorithms, workflows, decision-making processes, and system operations to simplify the comprehension of complex procedures and enhance communication among stakeholders.[5] By breaking down intricate sequences into digestible components, they facilitate problem-solving, process improvement, and the identification of inefficiencies or bottlenecks.[7] Key characteristics of flowcharts encompass sequential or branched paths that emphasize logical progression over aesthetic elements, enabling their broad applicability in disciplines such as engineering, business, and computing.[8] Flowcharts differ from related visuals in their focus on step-by-step process flows; in contrast, mind maps organize information hierarchically around a central theme in a radial, non-linear manner, while entity-relationship diagrams model static data structures and their interconnections rather than dynamic operations.[9][10]Basic Elements
Flowcharts consist of fundamental structural components that ensure clarity and logical progression in representing processes. Central to these are arrows, or flow lines, which serve as connectors indicating the sequence and direction of operations or data movement between elements. Straight arrows typically denote sequential flow, while branching arrows from decision points represent alternative paths based on conditions, adhering to conventions that maintain unambiguous progression.[5][1] Entry and exit points bookend the diagram using terminal symbols, such as ovals, to mark the initiation and conclusion of the process, providing clear boundaries for the workflow. These terminators ensure that every flowchart has defined starting and ending points, facilitating comprehension of the overall scope. Connectors, often circular symbols with identifiers like letters or numbers, link discontinuous sections of the diagram, such as across pages, without altering the primary flow.[5][11] Standard flow direction conventions mimic natural reading patterns, progressing from top to bottom or left to right, with arrowheads clarifying the path and open arrowheads indicating reverse flow when necessary. This orientation enhances readability by aligning with conventional text layout, though bidirectional flows may use double lines with appropriate arrowheads.[5][1] Basic layout principles emphasize a logical sequence that avoids unintentional loops, ensuring each step leads coherently to the next while minimizing crossovers and maintaining consistent spacing between elements. To prevent clutter, diagrams incorporate adequate white space, hierarchical organization for complex flows, and synchronization lines for parallel processes, all of which promote readability without compromising the diagram's integrity. While shapes like rectangles denote processes, the focus remains on these connective and directional structures to support effective visualization.[5][11][1]History
Origins
The origins of flowcharts trace back to the early 20th century within the framework of scientific management, where efforts to optimize industrial workflows laid the groundwork for graphical representations of processes. Frederick Winslow Taylor's principles of scientific management, outlined in his 1911 work, emphasized systematic analysis of work tasks to enhance efficiency, influencing subsequent developments in process documentation during the 1910s.[12] These ideas evolved into more visual tools as industrial engineers sought ways to break down and improve operations beyond mere time studies.[13] A pivotal advancement came in 1921 when industrial engineers Frank Bunker Gilbreth and Lillian Moller Gilbreth introduced process charts as a method for motion study in manufacturing. In their presentation to the American Society of Mechanical Engineers titled "Process Charts: First Steps of Finding the One Best Way to Do Work," the Gilbreths proposed using standardized symbols to depict worker tasks, operations, inspections, transports, and delays, enabling a clear visualization of workflows to identify inefficiencies.[14] This innovation built directly on Taylor's scientific management by shifting focus to motion economy, allowing engineers to map and refine physical movements in industrial settings.[15] Central to the Gilbreths' approach was their "Therbligs" system, developed around 1915 and integrated into the 1921 process charts, which divided human motions into 18 fundamental elements such as search, grasp, and transport empty. These elemental breakdowns served as precursors to modern flowchart symbols, providing a granular, symbolic language for analyzing and optimizing repetitive tasks in engineering and assembly line work.[13] By representing processes graphically, Therbligs facilitated the elimination of unnecessary motions, marking an early step toward structured workflow diagramming.[16] Flowcharts gained further traction in quality control during the mid-20th century, notably through Kaoru Ishikawa's integration of process flow diagrams into his seven basic tools of quality in the 1960s. Ishikawa, a Japanese engineering professor, promoted these tools—including flowcharts—for problem-solving in manufacturing, adapting earlier industrial charting techniques to emphasize defect prevention and process standardization.[17] This adoption solidified flowcharts as essential for visualizing and improving operational sequences in quality management contexts.[18]Evolution
In the mid-20th century, flowcharts were adapted for use in electronic computing, notably by mathematicians John von Neumann and Herman Goldstine in 1947. While working on programming the ENIAC computer and planning algorithms for the successor EDVAC at the Institute for Advanced Study, they introduced flow diagrams as a graphical notation to represent computational processes, enabling systematic planning and coding of problems for electronic instruments. This approach formalized the breakdown of mathematical problems into sequential steps, using symbols for operations, decisions, and data flows, which facilitated communication between mathematicians and machine operators.[19][20] Standardization efforts followed to ensure consistency in programming documentation. In 1963, the American National Standards Institute (ANSI) proposed a set of flowchart symbols for information processing, which was formalized as ANSI X3.5 in 1970, defining shapes for processes, decisions, inputs/outputs, and connectors to support structured representation of algorithms.[5] Internationally, the International Organization for Standardization (ISO) published ISO 1028 in 1973, establishing graphical symbols for flowcharts in information processing systems, aligning closely with ANSI standards to promote interoperability in software development documentation. These standards emphasized clarity and universality, becoming essential for documenting control flows in early programming practices.[21] By the 1980s and 1990s, the use of flowcharts in software engineering declined significantly, driven by the advent of high-level programming languages that incorporated structured constructs like loops and conditionals, reducing the reliance on manual diagramming for algorithm design. The shift toward structured programming, critiqued earlier by Edsger Dijkstra in 1968 for issues like unrestricted GOTO statements, further diminished flowcharts' role, as languages such as Pascal and C encouraged linear, hierarchical code over detailed graphical planning. This evolution prioritized code readability and maintainability, rendering traditional flowcharts less practical for complex systems.[22] Flowcharts experienced a resurgence in the 2000s, integrated into agile and visual methodologies that emphasized iterative process modeling and collaboration in software development. Digital tools enabled rapid creation and sharing of diagrams for workflow analysis, while evolutions like UML activity diagrams and BPMN built on flowchart principles for business process visualization. In the 21st century, ISO revisions in software engineering standards, such as updates to ISO/IEC 12207 (2008 and 2017) for system and software life cycle processes, incorporated diagrammatic representations to support requirements analysis and process documentation, adapting flowcharts to modern engineering needs.[23]Symbols and Standards
Standard Symbols
Standard symbols in flowcharts are defined by the international standard ISO 5807:1985, which specifies shapes and conventions for documentation in information processing, including data, program, and system flowcharts. These symbols provide a consistent notation for representing processes, decisions, data flows, and other elements, ensuring clarity and interoperability across diagrams. The standard emphasizes simplicity, with symbols designed for manual or automated creation, and includes rules for their application to avoid ambiguity. Flowcharts typically begin and end with data or process symbols to define scope, without a dedicated terminal shape.[1] The process symbol, a standard rectangle, represents any computational or operational step that transforms data, such as calculations or assignments, and contains a brief description of the action performed.[1] Decision points are indicated by a diamond shape, which has one entry point and multiple exit paths branching based on conditional logic, such as yes/no outcomes; conditions are written adjacent to the exits, but no other text appears inside the diamond itself.[1] Input and output operations use a circle to signify unspecified data exchange with external sources or destinations, like reading from a file or displaying results, with the direction of flow clarified by connecting lines. Specialized data symbols (e.g., for storage types) use variations on the circle shape.[1] Connectors, often small circles or dots, facilitate continuity by linking distant parts of a diagram, such as off-page references or modular sections, and are labeled with matching identifiers (e.g., A to A) to avoid cluttered lines. Loop limits use two-part circles with identifiers.[1] The full set of symbols in ISO 5807:1985 encompasses data, process, and line elements, as summarized below. Usage rules include ensuring process symbols connect via data symbols in flow diagrams, directing flow with arrowheads only when necessary for clarity, and pairing loop limits with identical identifiers for matching begin/end points. Note that ISO 5807:1985 remains the current standard, last reviewed in 2019, though many modern tools favor earlier ANSI conventions with ovals for terminals and parallelograms for data.[1][24]| Category | Symbol Shape | Name | Meaning and Usage |
|---|---|---|---|
| Process | Rectangle | Process | Any data transformation or operation; describe action inside. |
| Process | Rectangle with double vertical lines | Predefined Process | Subroutine or module call; reference name externally. |
| Process | Trapezoid (wider at bottom) | Manual Operation | Human-performed task; specify manual aspect. |
| Process | Hexagon | Preparation | Initialization or setup, like parameter adjustment. |
| Process | Diamond | Decision | Conditional branch; one entry, multiple labeled exits. |
| Process | Horizontal bar with vertical lines | Parallel Mode | Synchronization point for concurrent flows. |
| Process | Two-part circle with identifier | Loop Limit | Marks loop start/end; match identifiers. |
| Data | Circle | Basic Data | Unspecified data input/output; indicate flow direction. |
| Data | Circle with horizontal line | Stored Data | Persistent data storage, medium unspecified. |
| Data | Circle with two horizontal lines | Internal Storage | Data in memory or registers. |
| Data | Circle with one curved side | Sequential Access Storage | Linear access data, e.g., tape. |
| Data | Circle with two curved sides | Direct Access Storage | Random access data, e.g., disk. |
| Data | Rectangle with folded corner | Document | Human-readable output, e.g., printout. |
| Data | Trapezoid (wider at top) | Manual Input | User-entered data, e.g., via forms. |
| Data | Rectangle with notched edge | Card | Punched or data card input. |
| Data | Rectangle with holes | Punched Tape | Tape-based data. |
| Data | Circle with curved top | Display | Visual output, e.g., screen. |
| Line | Straight line (optional arrow) | Flow Line | Connects symbols; arrows show direction if needed. |
| Line | Dotted line with arrow | Control Transfer | Unconditional jump, e.g., goto. |
| Line | Jagged line | Communication Link | Off-system data transfer. |
| Line | Dashed line | Annotation or Alternative | Encloses notes or indicates optional paths. |
| Connector | Small circle or dot | Connector | Links diagram sections; label for matching. |
Specialized Symbols
In addition to the standard symbols defined by ANSI and ISO, flowcharts incorporate specialized symbols to represent domain-specific operations, particularly in data processing, manual interventions, and complex diagramming needs. These extensions build on foundational notation to address nuances in information handling and flow continuity. For instance, the document symbol, depicted as a rectangle with a top-right corner cut off, represents input/output functions involving printed documents or reports, such as generating a form or record.[5] Similarly, the manual operation symbol, shown as a trapezoid (wider at top), denotes offline processes performed by hand without automated assistance, like sorting papers or entering data manually.[5] Delays are represented using the terminal symbol (oval in ANSI conventions).[5] For data persistence, the database storage symbol—typically a cylinder—illustrates online storage media like disks or tapes where data is archived or retrieved in data flowcharts.[5] Specialized symbols also facilitate data organization in business and processing contexts. The collate symbol, rendered as a hexagon, signifies the merging, matching, or extracting of multiple inputs into ordered sets, commonly used in administrative workflows to combine reports.[5] The sort symbol, depicted as a diamond with extended sides, represents arranging items into a specific sequence, such as alphabetizing files or prioritizing tasks.[5] These symbols enhance clarity in flowcharts depicting repetitive or integrative operations. To manage complexity in large diagrams, off-page connectors serve as navigational aids. These are circular shapes labeled with letters or numbers, linking elements across multiple pages; for example, an "A" on one page connects to a matching "A" on another, ensuring seamless continuity without cluttering a single view.[5] Domain-specific extensions further adapt flowchart notation for specialized applications. In aerospace engineering, the DRAKON visual language introduces rules to improve readability and reduce errors in algorithmic representations, such as using curved arrows in loops to avoid right angles and prohibiting line intersections, with branches ordered left-to-right by temporal sequence along a central "skewer" line.[25] These conventions, developed for Soviet space programs like Buran, ensure diagrams mimic natural reading patterns while expressing any algorithm without ambiguity.[25] For business process modeling, BPMN gateways extend traditional decision diamonds with typed variants: exclusive gateways (marked "X") route to one path based on conditions; parallel gateways ("+") split or join multiple flows simultaneously; inclusive gateways ("O") allow subsets of paths; event-based gateways (circled) defer to the first triggered event; and complex gateways ("*") handle custom rules like n-of-m synchronization.[26] These elements, standardized by the Object Management Group, enable precise modeling of conditional, concurrent, and event-driven business logic beyond basic flowchart capabilities.[26]Types of Flowcharts
Process Flowcharts
Process flowcharts are diagrams that map the activities involved in a sequential business or operational workflow, visually representing the step-by-step progression of tasks to achieve a specific outcome. These diagrams emphasize the flow of activities within a process, often arranged horizontally to accommodate cross-functional teams through the use of swimlanes, which delineate responsibilities across departments or roles.[27] This structure facilitates a clear depiction of how inputs transform into outputs in operational contexts, such as production lines or customer service protocols.[3] Key features of process flowcharts include linear sequences of activities connected by arrows to indicate direction and flow, interspersed with decision branches—typically represented by diamond shapes—to account for conditional paths or exceptions in the workflow. These elements enable detailed analysis of process efficiency, making process flowcharts particularly valuable in manufacturing for assembly line optimization and in service industries for streamlining customer interactions. Unlike more abstract diagrams, they prioritize the tangible sequence of human and procedural actions, helping teams visualize handoffs and dependencies without delving into data structures or code logic.[3][28] A representative example is the order fulfillment process in e-commerce, where the flowchart begins with receiving a customer order, followed by inventory verification, item picking and packing, quality checks, and final shipping to delivery. Decision points might include branches for out-of-stock scenarios, looping back to procurement or notifying the customer of delays, while error-handling loops address issues like damaged goods returned for rework. This visualization highlights the end-to-end journey from order receipt to customer satisfaction, using standard symbols like rectangles for action steps to maintain clarity.[29][30] The primary advantages of process flowcharts lie in their capacity to reveal bottlenecks, such as delays at handoff points between teams, thereby supporting targeted interventions to reduce cycle times and enhance overall productivity. By mapping the current state of a workflow, they promote standardization and continuous improvement in operational environments. However, a notable limitation is their tendency to oversimplify human factors, such as interpersonal communications or adaptive decision-making, which can lead to incomplete representations that ignore informal processes or cultural influences within teams.[3][31][32]Data and System Flowcharts
Data flow diagrams (DFDs), a specialized type of flowchart, depict the movement and transformation of data across processes, external entities, and data stores within a system, highlighting how information is input, manipulated, and output. These diagrams use notations such as the Yourdon-DeMarco approach, originally developed for structured analysis in the late 1970s, where circles represent data-processing functions that receive inputs, perform transformations, and produce outputs, while open-ended rectangles denote data stores and arrows illustrate data flows between components.[33][34] DFDs focus on logical data dependencies in information systems rather than physical implementation or strict procedural sequences. In DFDs, external entities—such as users or other systems—are typically shown as squares or rectangles to indicate sources or destinations of data, ensuring the diagram captures the complete lifecycle of information from entry to final utilization. For instance, parallelograms may be employed to represent input/output operations in data-centric contexts, bridging user interactions with internal processing. Unlike general flowcharts that emphasize control flow with decisions and sequences, DFDs prioritize parallel data paths and transformations without built-in decision elements.[35] System flowcharts, in contrast, offer a high-level view of hardware and software interactions, mapping out system architecture including components like central processing units (CPUs), storage devices, and interfaces to illustrate control and data pathways. Standardized symbols from early computing guidelines, such as those in ANSI X3.5-1970, include rectangles for online storage under CPU control, cylinders for magnetic disks representing persistent data storage, and flowlines to connect these elements, demonstrating how operations sequence across the system.[5] These diagrams are particularly valuable for documenting complex environments where software routines interface with hardware, using predefined process symbols for subroutines and communication links for data transmission between modules.[5][36] A representative example is a database query system flowchart, where user-submitted queries (via manual input symbol) flow to a CPU for processing, triggering retrieval from a magnetic disk data store, followed by software transformation of the raw data into formatted reports output through a display interface; this visualization reveals bottlenecks in data retrieval or hardware dependencies.[36][37]| Symbol Type | Description | Example Usage in System Flowcharts |
|---|---|---|
| Online Storage | Rectangle representing storage accessible by CPU | Buffering query results before processing[5] |
| Magnetic Disk | Cylinder for persistent data I/O | Storing and retrieving database records[5] |
| Predefined Process | Double-sided rectangle for software routines | Executing query logic or data transformation[5] |
| Manual Input | Trapezoid for user-entered data | Accepting database search parameters[36] |
| Flowline | Arrow indicating direction and sequence | Connecting hardware retrieval to software output[5] |