“…In particular, generating code from state machine diagrams constitutes one of the most challenging tasks due to their dynamic nature and because many of the state machine specification concepts are not directly supported by the object-oriented programming languages [6][7][8][9][10][11] (such as events [8], states [8,7], history pseudostates [8], or fork pseudostates [7]). Therefore, it is not surprising that there are a wide number of proposals in the literature devoted to studying the implementation of state machine specifications in different programming languages in a wide variety of application contexts such as distributed control systems [12], decentralization of production control systems [13,14], e-voting systems [15][16][17], or even NASA space missions [18][19][20]. This number could grow in the foreseeable future because, if the Model-Driven Development (MDD) approach [1,2] overcomes its challenges [21], it will likely be increasingly applied to the development of software systems.…”