By Lopes, S.F.; Silva, S.; Monteiro, J.L.
IEEE International Conference on Industrial Informatics (INDIN)
Finite state machines (FSMs) are widely used as a mean to model the behavior of systems and/or processes, but they are not supported by general purpose programming languages. To avoid implementations that are difficult to develop, and mostly maintain, frameworks have been developed for the FSM domain. Ideally, frameworks should be easy to learn and use, and provide as much support as possible. They should also enforce design rules, while keeping flexibility. However, there are tradeoffs between these aspects, and thus a balance must be found. Object-oriented frameworks that we have found in the literature do not meet this set of characteristics, but one stands out. We discuss its use to develop an example application (electric lock control), demonstrating important limitations. Based on that analysis, we propose a new framework that is small, efficient, and provides a powerful set of features for implementing FSMs. The framework is easy to learn and use, fully supports both Mealy and Moore machines, enables semantically correct state minimization, and offers conditional transitions.