1) Describe the envisioned behavior in common language.
2) Decompose each behavior into a concept, reusing concepts as possible.
3) Identify useful states in a concept.
4) Identify the cause of every change in a concept and create a symbol for it.
5) Determine the effect of each symbol on each state.
6) Implement the state entry function.