I am wondering what the current state of the EA executable state machine generation is - is it really possible to implement non-trivial state machines and code generate them?
Some background on my needs: I am doing radio communications protocol development - think cellular, or trunked radio like public safety work. Currently I am advising a customer on setting up a project team to design such a system, and I need to advise them on how to actually implement the protocol parts of the work. Now, I've done this in the past using SDL and SDL tools, and I really found that doing model driven development was The Way To Go.
I'd like to be able to recommend using a tool like EA, and doing the modeling using UML state charts, rather than using SDL tools, but I am now starting to wonder if EA is really up to the task of generating a real-time protocol. I am trying to prepare a simple example to show my customer how it's done, and I've been running into some issues:
I don't see how to have the state machine send signals back to the entity generating the event - or for that matter, just sending a signal to the environment and letting it figure out the routine. It looks like that's not easy in the state chart, and that I'd have to embed an activity chart to do that. But then, can I set up a simulation of an executable state machine with an activity chart in it?
I don't see a graceful way to do timeouts, or timers in general.
I don't see how to take a Message Sequence Chart and use that to create a simulation environment to verify the state machine correctly implements the MSC.
I'm getting very close to changing my advice to the customer, and telling them to use a different tool - but a) that tool is a lot more expensive than EA and b) I would rather not have to change my advice.