Flowchart
A flowchart is a graphical representation of the definition, analysis, or method of solution of a problem in which symbols are used to represent operations, data, flow, equipment, and other elements, with lines connecting the symbols to illustrate the sequence and relationships.[1] These diagrams visually depict stages of a process, workflow, computer algorithm, or system, employing shapes such as ovals for terminals, rectangles for processes, and diamonds for decisions, connected by arrows to show directional flow and decision points.[2] Flowcharts are widely utilized across fields like engineering, business, and computer science to document, analyze, plan, and optimize procedures, reducing ambiguity and facilitating communication among stakeholders.[3] The origins of flowcharts trace back to the early 20th century in industrial engineering, where Frank and Lillian Gilbreth introduced the concept of the Flow Process Chart in 1921 to the American Society of Mechanical Engineers (ASME) as a tool for optimizing workflows and eliminating inefficiencies in manufacturing.[2] This foundational work evolved through further refinements by engineers, leading to ASME's standardization of flowchart symbols in 1947.[2] By the late 1940s, flowcharts gained prominence in computing when John von Neumann and Herman Goldstine adapted them in 1947 to represent algorithms for early electronic computers, positioning them as essential blueprints for programming and problem-solving in the emerging field of computer science.[4] In the mid-20th century, flowcharts became integral to software development, serving multiple roles: as design aids for translating complex logic into structured code, communication tools bridging analysts and programmers, and documentation methods for post-implementation review.[4] Standardization efforts advanced with the American Standards Association's 1963 conventions and the American National Standards Institute (ANSI)'s conventions published in 1965, with formal standard X3.5 approved in 1970, which were later adopted internationally by the International Organization for Standardization (ISO), adopting similar conventions in 1973 and publishing ISO 5807 in 1985.[4][5] These standards defined core symbols for data (e.g., parallelograms for input/output), processes (e.g., rectangles for operations), and flow (e.g., arrows for direction), ensuring interoperability in information processing documentation across industries.[5][1] While flowcharts peaked in popularity during the 1950s and 1960s for algorithmic representation, their use declined in the late 1970s with the rise of structured programming paradigms and interactive terminals, which favored textual pseudocode over visual diagrams.[4] Modern evolutions include integrations with tools like Unified Modeling Language (UML) activity diagrams from the 1990s and Business Process Model and Notation (BPMN) codified in 2005 by the Business Process Management Initiative, extending flowchart principles to more sophisticated digital process modeling.[2] Today, flowcharts remain a foundational tool in quality management, as endorsed by organizations like the American Society for Quality, for mapping processes sequentially to identify bottlenecks and improve efficiency.[3]Fundamentals
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] |