Human-Computer Interaction 3e Dix, Finlay, Abowd, Beale
This exercise is based on the nuclear reactor scenario on the web at: www.hcibook.com/e3/scenario/nuclear/. You will need to refer to this while completing the exercise.
The exercise is in four parts, but you will probably find it easier to work on them in parallel. As you try to define actions you will find state elements you have missed and as you work through the scenarios you will probably find problems that you need to go back and change in the state and actions.
(a) Complete the following partial description of the state of the nuclear control panel.
________________________________________________________________ | Alarm_State: {Green, Amber, TempRed, Red} | Confirm_Needed: Boolean [ that is true or false] | Target_Pressure: Nat [ that is { 0, 1, 2, } ] | Target_Temp: Nat | Target_Flow: Nat | Manual_Override_Value: Nat | ... ________________________________________________________________
(b) Here is a description of the state
change for two actions: when a digit is pressed on
the keypad and when the '-' key is pressed.
Note we have not written it in 'proper' Z, but in
a form of pseudo code.
keypad_digit(d) ________________________________________________________________ | add d to the right-hand end of Manual_Override_Value ________________________________________________________________ alarm_lower [minus key is pressed] ________________________________________________________________ | if ( Alarm_State is Red or Alarm State is TempRed ) | then set Alarm_State to Amber | if ( Alarm_State is Amber or Alarm_State is Green ) | then set Alarm_State to Green ________________________________________________________________
Using these to guide you, complete the following two partial descriptions of the state changes for the CONFIRM and CANCEL buttons on the Emergency Confirm control panel
confirm ________________________________________________________________ | set Confirm_Needed to false | if ( Alarm_State is TempRed ) | then set Alarm_State to Red | ... something about emergency shutdown too | ... ________________________________________________________________ cancel ________________________________________________________________ set Confirm_Needed to false | if ( Alarm_State is TempRed ) | then set Alarm_State to Amber | ... something about emergency shutdown too | ... ________________________________________________________________
(c) Produce descriptions of the state change for the following actions:
(i) alarm_higher
- the '+' key is pressed on the Alarm Control panel
(ii) shutdown -
the IMMEDIATE SHUTDOWN COMMENCE button has been pressed
on the Emergency Shutdown panel
(iii) select_target(targ)
- the target pulldown has been used on theManual Override
panel. targ is one of
{Pressure, Temp, Flow}
(iv) set_target_value
- the SET button has been pressed on the Manual Override
panel
(d) Check your state and actions by running through the scenario and annotating each action with the current state. Use the following example of the first few steps as a guide to the appropriate level of detail.
Initial state: | Alarm_State is Green |
Confirm_Needed is false | |
etc. ... | |
Steps 1, 2 | no system actions |
Step 3 | press '+' twice
|
Step 4 | button glows because Confirm_Needed = True |
Step 5 | no system action |
etc |
answer available for tutors only
Other exercises in this chapter
ex.17.1 (ans), ex.17.2 (ans), ex.17.3 (ans), ex.17.4 (ans), ex.17.5 (tut), ex.17.6 (tut), ex.17.7 (tut), ex.17.8 (tut), ex.17.9 (tut)
all exercises for this chapter