Under the flowchart header the graph flows top to bottom, the natural
direction for a process with decisions and branches. Everything from the
architecture grammar applies: nodes, groups, edges,
fan-out. The difference is direction and the flowchart shape vocabulary.
Flowcharts lean on a handful of classic shapes. You can name the shape directly
(rectangle, diamond, ellipse, parallelogram, hexagon) or use a role
alias that reads like the step it represents.
Role alias
Draws
Means
process
rectangle
a step or action
decision
diamond
a branch
terminator / start / end
ellipse
start or stop
data / io
parallelogram
input or output
prep / preparation
hexagon
setup
subroutine
predefined-process
a named sub-process
doc
document
a document or report
flowchart
Begin [terminator]-> Read input [data]
Read input -> Validate [decision]: valid?
Validate -> Process [process]: yes
Validate -> Report error [doc]: no
Process -> Done [terminator]
Report error -> Done
Role aliases pick the shape that matches each step.
A labelled statement labels every edge it creates. In practice, yes and no
branches each take their own line, so each carries its own label. An edge from
a node back to itself (Fetch -> Fetch : retry) draws as a small loop.
flowchart
Order received [ellipse]-> In stock [diamond]: check
In stock -> Reserve [process]: yes
In stock -> Backorder [process]: no
Reserve -> Charge [process]
Backorder -> Notify [process]
Charge -> Ship [ellipse]
Notify -> Ship