The Algorithmic State
Machine (ASM) design is comparable with the design of
computer software like assembler or high level languages
like C++, Java etc.
A flowchart which describe the States
and Romps which describe the transitions will be useful
for the design and documentation.
The difference between a "normal" FSM
and an ASM could sometimes be hard to spot.