• 1 reply
  • Latest Post - ‏2013-08-19T12:59:19Z by AE91_SHINJI_KANAI
5 Posts

Pinned topic History Connectors

‏2013-08-16T19:25:40Z |

Greetings, I have just started working with Rhapsody and am confused with History connectors work. If the branch goes true to a state than... the state goes back to a previous state? I am thinking that if the history branch goes true the state it is connected to is now the current state.. I'm really confused. the users guide does not do this one justice. Could anyone explain this?


Thanks !


    158 Posts

    Re: History Connectors



    My suggestion is to study Rhapsody samples and understand how History connector is intended to be used. It is also good idea to run those samples under animation and see the effect of History connector visibly. My two recommended samples are Tetris (class: Tetris) and Dishwasher (class: Dishwasher).  

    UML 2 specification defines two types of History Connector, deep and shallow. History Connector in Rhapsody is Deep History, and it is defined in UML specification as below:

    "deepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate (e.g., the state configuration that was active when the composite state was last exited). A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the implicit direct path from the deep history to the innermost state(s) represented by a deep history are performed. The entry action is preformed only once for each state in the active state configuration being restored." (ref: UML Superstructure v2.4.1)

    The difference of Shallow and Deep history is nicely explained in the following video:

    I hope above information will guide you to a right direction. Please reply back to my comment if you want to carry on the discussion based on the information provided above.