My colleague Marco Brambilla has just presented our tool demo (Marco Brambilla, Jordi Cabot, and Michael Grossniklaus. Tools for Modeling and Generating Safe Interface Interactions in Web Applications ) at the ICWE’10 conference .
In this WORK we argue that the Web has evolved FROM a platform FOR navigating hypertext documents TO a platform FOR implementing complex business applications AND thus the original interaction paradigm OF the Web based ON static content pages that ARE browsed by hyperlinks IS, therefore, NOT valid anymore. Browsers themselves, that still provide the traditional features OF Back AND Forward page navigation along the browsing history, ARE inadequate FOR dealing WITH the complexity OF CURRENT applications (e.g. the Amazon bug: after adding a product TO the shopping cart many users will try TO cancel the addition by pressing the back button ON the browser AND will assume that the product has been removed FROM the cart)
Therefore, we propose TO evolve the interaction paradigm by moving the Web (AND the supporting browsers) FROM the browsing paradigm based ON Pages, WITH related Back AND Forward actions, TO a FULL-fledged interactive application paradigm, based ON the concept OF State, that features Undo AND Redo capabilities, AND transactional properties. This results IN a safer interaction environment WHERE users can navigate freely through Web applications AND undo/redo their actions without experiencing unexpected application behaviour, including the side effects generated by the USER interactions. Safety OF the interfaces IS therefore increased WITH respect TO possible wrong OR unexpected behaviours OF the USER, that IS granted TO always navigate among correct application states.
To this END, we have defined a modeling framework AND toolset FOR specifying AND generating these state-based applications. Our prototype code generator automatically produces prototypical safe applications FROM the models by, among other services, automatically computing the NEXT/previous state OF the application based ON the CURRENT
state, the USER event AND the application state machine model.