Statecharts: A visual formalism for complex systems
Science of Computer Programming
Programming perl
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
MOODS: models for object-oriented design of state
Pattern languages of program design 2
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Component Programming - a Fresh Look at Software Components
Proceedings of the 5th European Software Engineering Conference
Facilitating Program Comprehension via Generic Components for State Machines
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Graph-based structural analysis for telecommunication systems
Graph transformations and model-driven engineering
A metric towards evaluating understandability of state machines: An empirical study
Information and Software Technology
Hi-index | 0.00 |
State transition mechanisms are widely used in software engineering to implement state/event-dependent behavior. In C/C++, the implementation of state machines using 'switch/case' or 'if' statements causes problems in readability, understandability, maintainability, and modification. We have developed both a source code pattern searching tool capable of searching for state machine occurrences and a design pattern to replace state machines with C++ generic components. With 'ESPaRT' (Enhanced String Pattern Recognition Tool) we search for state machines in the source code. Examples of patterns for state machine detection are given in the paper. The state machine information is extracted and the state machine code is replaced by generic components following the 'generic Harel State Machine Engine' (HSME) design pattern.