Is there any visual programming tool for modeling statecharts representing multi-modal user interfaces? I want to build an android and windows metro app which receives input from touch and voice. The application guides the user through a questionaire to be used for screening in a healthcare scenario. The user can input the text in a textbox or generate an event by either touching a button or speaking.
I found that statecharts are used for modeling reactive system behavior such as avionics systems as originally used bu its creator David Harel with the complex task of designing software for the LAVI fighter, built by Israel Aircraft Industries; IAI to clearly and precisely specifying aircraft control behavior. He wanted to specify behavior in a manner which is intuitively clear and mathematically rigorous. Since then, statecharts have evolved from merely being a specification language to become executable, compilable and analyzable.
Since the app I want to build has complex healthcare logic and consists of a hierarchy of screenflows which changes on the input from the interacting user, sends actions to external webservices and receives asynchronous events from external web-services- all maintaining responsiveness in the user interface, I thought of modeling the app logic with statecharts. However, there are no programming tools that I could find which can enable me to separately author the application business logic and the UI(not just the screen interface components) separately. For example if I want to represent the UI ins html5/mxml and the business logic in scxml.
There are couple of tools I found, but none corresponding to the application requirements I have. Mainly there are no example of the design of such an app with a clear separation of the behavior in statecharts and the UI representation in some form of markup language. My findings:
- IBM Rational Statemate is a graphical design, simulation and prototyping tool for the rapid development of complex embedded systems
- IBM Rational Rhapsody - a modeling environment based on UML, it is a visual development environment for systems engineers and has UML statecharts
- Apache scxml editor: a Gsoc project for only modeling scxml
- Qt State Machine Framework, but doesn't have separation of statecharts for behavior and ui
- The W3C Multimodal Architecture had some design ideas as well with scxml+xhtml
You should really have a look at http://www.statecharts.org. It comes with an editor, validations, several generators for different target languages and a nice working simulation environment.
The semantics are close to the theoretical work of David Harel and it is open source.
Some time ago and based on YAKINDU SCT Version 1 (current version is 2.6.2) i did my bachelor thesis with a similar topic. Find the following introduction of the thesis: https://vimeo.com/13440814
Further find the following video of YAKINDU SCT version 2 for an feature overview: https://www.youtube.com/watch?v=uO6MASCBPrg Further you will find an extensive set of tutorials an youtube: https://www.youtube.com/watch?v=bhru1n3ZsFo&list=PLmHMvhX5wK_aohX5sOeAMogFDwlc3gJYR
Downside from your point of view might be that SCT currently does not support SCXML and uses its own format. But as it is open source and it is based on eclipse modeling technologies (EMF) it might not be a big deal to replace the serialization and persist into an SCXML format.