Mat Bennion

Case Study:

Software State Machines

The team was using commercial, off-the-shelf telephony hardware that plugged into a standard PC to create a highly-specified digital telephone exchange.  A key goal of the project was to make a fully configurable system, easily adaptable to different customer needs.

Telephony systems traditionally rely heavily on state machines, so we decided to create a "soft" state machine that could be reconfigured without modifying any code.  With design assistance from my team leader, I created a state machine language and processor for advanced state machines.  Another colleague created a graphical user interface for designing and debugging these state machines.

I demonstrated the system to an important customer, showing how the fundamental operation of the telephony system could be reconfigured with a few mouse clicks.

This experience showed me the benefits (and pitfalls) of replacing traditional techniques with configurable, soft implementations.