Skip to content

Example debugging scenario

Leon Starr edited this page Apr 20, 2026 · 6 revisions

Here is a simple debugging scenario for the Elevator Case Study models.

...inject
1) UI >|| EVMAN : Stop request -> ASLEV <S1-3>
...running
2) EVMAN >|| UI : XFER<S1> Set destination( Floor=3 )
3) EVMAN >|| TRANS : Cabin<S1> Go to floor( Floor=3 )
...delay 7 sec
...inject
4) TRANS >|| EVMAN : Arrived at floor -> Cabin<S1>
...running
5) EVMAN ~|| UI, SIO : Door<S1> [ OPENING ]
...delay 3 sec
...inject
6) SIO >|| EVMAN : Door opened -> Door<S1>
...completed

We start with this inject action:

UI >|| EVMAN : Stop request -> ASLEV <S1-3>

The action type is signal
The source actor is UI
The target actor is EVMAN:ASLEV<S1-3>
The name of the action is Stop request

A Scenario consists of multiple steps and a Step is characterized as either a Stimulus or a Condition. A Step is associated with an Action. A Stimulus has a delay specified. This is an interval that must pass before injecting the Action.

Let’s move on to the next Step which happens to be a Condition. A Condition is an Action we are interested in. When a Condition occurs we can react by printing some kind of notification or some other task. So the opposite of injecting is to react in some way.

EVMAN >|| UI : XFER<S1> Set destination( Floor=3 )

The action is external event
The source actor is EVMAN:XFER<S1>~UI
The target actor is UI
The name of the action is Set destination
There is a parameter: Floor=3

EVMAN ~|| UI, SIO : Door<S1> [ OPENING ]

The action is bridgeable condition state entry
The source is EVMAN:Door<S1>
The targets are [ UI, SIO ]
The name is OPENING

This last one is interesting for two reasons.

  1. The action is not just state entry since the system is actually communicating the condition across domain boundaries (this means that for every bridgeable condition we may define a separate MDB action
  2. There are multiple targets

Populating Actor/Roles

...inject
1) UI >|| EVMAN : Stop request -> ASLEV <S1-3>
...running
2) EVMAN >|| UI : XFER<S1> Set destination( Floor=3 )
3) EVMAN >|| TRANS : Cabin<S1> Go to floor( Floor=3 )
...delay 7 sec
...inject
4) TRANS >|| EVMAN : Arrived at floor -> Cabin<S1>
...running
5) EVMAN ~|| UI, SIO : Door<S1> [ OPENING ]
...delay 3 sec
...inject
6) SIO >|| EVMAN : Door opened -> Door<S1>
...completed

Interaction

Number Action type Name
1 signal instance Stop request
2 external event Set destination
3 external event Go to floor
4 signal instance Arrived at floor
5 bridgeable condition state entry OPENING
6 signal instance Door opened

System Input

Number Target actor Target role Delay
1 EVMAN:ASLEV R1 0 sec
4 EVMAN:Cabin R1 7 sec
6 EVMAN:Door R1 3 sec

System Output

Number Source actor Source role
2 EVMAN:XFER R1
3 EVMAN:Cabin R1
5 EVMAN:Door R1

Supplied Parameter

Name Interaction Value
Floor 2 3
Floor 3 3

Actor

Address
EVMAN:ASLEV
UI
EVMAN:XFER
TRANS
EVMAN:Cabin
EVMAN:Door
SIO

Role

Actor Interaction Role
EVMAN:ASLEV 1 R1
UI 1 R1
EVMAN:XFER 2 R1
UI 2 R1
TRANS 3 R1
EVMAN:Cabin 3 R1
TRANS 4 R1
EVMAN:Cabin 4 R1
EVMAN:Door 5 R1
UI 5 R1
SIO 5 R1
SIO 6 R1
EVMAN:Door 6 R1

Input Source

Actor Role Interaction
EVMAN:ASLEV R1 1
TRANS R1 4
SIO R1 6

Input Target

Actor Role Interaction
UI R1 1
EVMAN:Cabin R1 4
EVMAN:Door R1 6

Output Source

Actor Role Interaction
EVMAN:XFER R1 2
TRANS R1 3
EVMAN:Door R1 5

Output Target

Actor Role Interaction
UI R1 2
EVMAN:Cabin R1 3
UI R1 5
SIO R1 5

Clone this wiki locally