D. Harel and H. Kugler
We describe the semantics of statecharts as implemented in the current version of the Rhapsody tool. In its original 1996 version this was among the first executable semantics for object-oriented statecharts, and many of its fundamentals have been adopted in the Unified Modeling Language (UML). Due to the special challenges of object-oriented behavior, the semantics of statecharts in Rhapsody differs from the original semantics of statecharts in Statemate. Two of the main differences are: (i) in Rhapsody, changes made in a given step are to take effect in the current step and not in the next step; (ii) in Rhapsody, a step can take more than zero time. This paper constitutes the first description of the executable semantics of Rhapsody, highlighting the differences from the Statemate semantics and making an effort to explain the issues clearly but rigorously, including the motivation for some of the design decisions taken.
|Published in||Integration of Software Specification Techniques for Applications in Engineering|