The design, implementation, integration and evaluation of a Statechart service. By Xin Bai Feb 7, 2002
Why use statecharts? Statechart extends the classical state transition diagram. It saves the number of the state and arrow in the diagram. Most importantly it supports concurrency.
Backgrounds: David Harel invented this language in 1983. The STATEMATE system by I-Logix Israel., Ltd. has implemented statechart language.
Statecharts extend classical state transition diagrams Depth, hierarchy or modularity support No Yes Number of transition arrows Uneconomical Economical Number of states Grow exponentially Concurrency Support No (sequential in nature)
From state transition diagrams to statecharts B D e f h g[c] A C B g[c] e f h States: A, B, C, D Events: e, f, g Condition: c D = A XOR C g[c] triggers the transition from A to C if and when g occurs, but only if c is true at that time
History entrance to a state overrides the default arrow B H f C D
AND decomposition, actions and chain reaction B C A f/g E G F I J m/e n/f H D e k n g
Objectives: Design a textual expression for a simplified statechart just like blueprint. Implement a statechart service so that users can use this textual expression to develop concurrent application. Implement a sample application
Literature: D. Harel, Statecharts: A Visual Formalism for Complex Systems, Science of Computer Programming 8 (1987), pp. 231-274 D. Harel, A. Pnueli, J.P. Schmidt, and R. Sherman, On the Formal Semantics of Statecharts, in Proc. 2nd Symp. on Logic in Computer Science (LICS 87), pages 54-64. IEEE Computer Society Press, 1987
Thank you!