SlideShare a Scribd company logo
1 of 52
chapter 16

dialogue notations and
design
Dialogue Notations and Design
• Dialogue Notations

– Diagrammatic
• state transition networks, JSD diagrams, flow charts
– Textual
• formal grammars, production rules, CSP

• Dialogue linked to

– the semantics of the system – what it does
– the presentation of the system – how it looks

• Formal descriptions can be analysed
–
–
–
–

for
for
for
for

inconsistent actions
difficult to reverse actions
missing actions
potential miskeying errors
what is dialogue?
• conversation between two or more parties
– usually cooperative

• in user interfaces
– refers to the structure of the interaction
– syntactic level of human–computer ‘conversation’

• levels
– lexical – shape of icons, actual keys pressed
– syntactic – order of inputs and outputs
– semantic – effect on internal application/data
structured human dialogue
• human-computer dialogue very constrained
• some human-human dialogue formal too …
Minister: do you man’s name take this woman …
Man: I do
Minister: do you woman’s name take this man …
Woman: I do
Man: With this ring I thee wed
(places ring on womans finger)
Woman: With this ring I thee wed (places ring ..)
Minister: I now pronounce you man and wife
lessons about dialogue
• wedding service
–
–
–
–
–

sort of script for three parties
specifies order
some contributions fixed – “I do”
others variable – “do you man’s name …”
instructions for ring
concurrent with saying words “with this ring …”

• if you say these words are you married?
– only if in the right place, with marriage licence
– syntax not semantics
… and more
• what if woman says “I don’t”?
• real dialogues often have alternatives:
Judge: How do you plead guilty or not guilty?
Defendant: either Guilty or Not guilty
– the process of the trial depends on the defendants
response

• focus on normative responses
– doesn’t cope with judge saying “off with her head”
– or in computer dialogue user standing on keyboard!
dialogue design notations
• dialogue gets buried in the program
• in a big system can we:
– analyse the dialogue:
• can the user always get to see current shopping basket

– change platforms (e.g. Windows/Mac)
– dialogue notations helps us to
• analyse systems
• separate lexical from semantoc

• … and before the system is built
– notations help us understand proposed designs
graphical notations
state-transition nets (STN)
Petri nets, state charts
flow charts, JSD diagrams
State transition networks
(STN)
• circles - states
• arcs - actions/events

select 'circle'
Start

click on
click on centre
circumference
Circle 1
Circle 2
Finish
rubber band
draw circle

Menu
select 'line'
Line 1

click on
first point
rubber band

Line 2

double click
draw last
line

click on point
draw a line

Finish
State transition networks events
• arc labels a bit cramped because:
– notation is `state heavy‘
– the events require most detail

select 'circle'
Start

click on
click on centre
circumference
Circle 1
Circle 2
Finish
rubber band
draw circle

Menu
select 'line'
Line 1

click on
first point
rubber band

Line 2

double click
draw last
line

click on point
draw a line

Finish
State transition networks states
• labels in circles a bit uninformative:
– states are hard to name
– but easier to visualise

click on
circumference

click on centre
Circle 1
select 'circle'
Start

Circle 2
rubber band

Menu

select 'line'

... ... ...

Finish
draw circle
Hierarchical STNs
• managing complex dialogues
• named sub-dialogues
select ‘graphics’

Main
Menu

select ‘text’

Graphics Submenu

Text Submenu

Paint Submenu
select ‘paint’
Concurrent dialogues - I
simple dialogue box

Text Style
bold
example

italic
underline
Concurrent dialogues - II
three toggles - individual STNs
NO

click on ‘bold’

bold

NO

click on ‘italic’

italic

NO
u’line

click on ‘underline’

bold

bold

italic

italic

u’line

underline
Concurrent dialogues - III
bold and italic combined

Text Style
NO

click on ‘bold’

style

only

click
on
‘italic’

click
on
‘italic’

italic
only

bold

click on ‘bold’

bold
italic

example

bold
italic
underline
Concurrent dialogues - IV

all together - combinatorial explosion
Text Style
NO

‘bold’

bold

style

only

example

‘underline’

‘underline’

‘italic’

‘italic’
u’line

‘bold’

only

bold
u’line

‘italic’
italic

‘bold’

only

‘underline’

‘underline’
italic
u’line

‘italic’

bold
italic

‘bold’

bold
italic
u’line

bold
italic
underline
escapes
• ‘back’ in web, escape/cancel keys
– similar behaviour everywhere
– end up with spaghetti of identical behaviours

• try to avoid this

select ‘graphics’

Graphics Submenu

ESC
normal

e.g. on high level diagram
‘normal’ exit for
each submenu

finish

Main
Menu

select ‘text’

Text Submenu

ESC
normal

plus separate
escape arc active
‘everywhere’ in submenu

finish
Paint Submenu
select ‘paint’

ESC
normal
finish
help menus
• similar problems
–
–
–
–

nearly the same everywhere
but return to same point in dialogue
could specify on STN … but very messy
usually best added at a ‘meta’ level
from
Menu

Circle 1

click on centre
rubber band
press HELP
button

Help Subsystem

Circle 2

click on circumference
draw circle
press HELP
button

Help Subsystem

Finish
Petri nets
• one of the oldest notations in computing!
• flow graph:
– places
– transitions
– counters

– a bit like STN states
– a bit like STN arcs
– sit on places (current state)

• several counters allowed
– concurrent dialogue states

• used for UI specification
– tool support – Petshop

(ICO at Toulouse)
Petri net example
Bold On

user presses
‘Bold’

T1

T2

Bold Off
user actions
represented
as a new counter

transition ‘fires’
when all input
places have counters

Italic On

T3

user presses
‘Italic’

T4

Italic Off
State charts
• used in UML
• extension to STN
– hierarchy
– concurrent sub-nets
– escapes
• OFF always active

Standby

ON

OFF
RESET

Channel

Sound

– history
• link marked H
goes back to last
state on re-entering
subdialogue

1
SEL

On
2

MUTE

SEL

SEL

Off

3
SEL

4

H
Flowcharts
• familiar to
programmers
• boxes
- process/event
- not state

Delete

D1

Please enter
employee no.: ____

C1
read record

Delete

D2

Delete

Name: Alan Dix
Dept: Computing
delete? (Y/N): _

• use for dialogue

C2

(not internal algorithm)

Name: Alan Dix
Dept: Computing
delete? (Y/N): _
Please enter Y or N

other

answer?

Y

N

C3
delete record

Finish

D3

Finish
it works!
• formal notations – too much work?
• COBOL transaction processing
– event-driven – like web interfaces
– programs structure
≠ dialogue structure

Delete

• used dialogue flow charts
–
–
–
–

discuss with clients
transform to code
systematic testing
1000% productivity gain

• formalism saves time!!

D1

Please enter
employee no.: ____

C1
read record

Delete

D2

Delete

Name: Alan Dix
Dept: Computing
delete? (Y/N): _

C2
answer?

Y

other

N

Finish

C3
delete record

Finish

D3

delete? (Y/N): _
Please enter Y or N
JSD diagrams
• for tree structured dialogues
– less expressive

Personnel
Record
System

– greater clarity

login

add
employee
record

transaction

change
employee
record

*

logout

display
employee
record

delete
employee
record
textual notations
grammars
production rules
CSP and event algebras
Textual - Grammars
• Regular expressions
sel-line click click* dble-click

• compare with JSD
• same computational model
• different notation

• BNF
expr ::= empty
| atom expr
| '(' expr ')' expr

• more powerful than regular exp. or STNs
• Still NO concurrent dialogue
Production rules
• Unordered list of rules:

if condition then action
– condition based on state or pending events
– every rule always potentially active

• Good for concurrency
• Bad for sequence
Event based production rules
Sel-line → first
C-point first → rest
C-point rest → rest
D-point rest → < draw line >

• Note:
– events added to list of pending events
– ‘first’ and ‘rest’ are internally generated events

• Bad at state!
Prepositional Production System
• State based
• Attributes:
Mouse: { mouse-off, select-line, click-point, double-click }
Line-state: { menu, first, rest }

• Rules (feedback not shown):
select-line → mouse-off first
click-point first → mouse-off rest
click-point rest → mouse-off
double-click rest → mouse-off menu

• Bad at events!
CSP and process algebras
• used in Alexander's SPI, and Agent notation
• good for sequential dialogues
Bold-tog = select-bold? → bold-on → select-bold? →
bold-off → Bold-tog
Italic-tog = . . .
Under-tog = . . .

• and concurrent dialogue
Dialogue-box = Bold-tog || Italic-tog || Under-tog

• but causality unclear
Dialogue Notations Summary
• Diagrammatic
• STN, JSD, Flow charts

• Textual
• grammars, production rules, CSP

• Issues
•
•
•
•

event base vs. state based
power vs. clarity
model vs. notation
sequential vs. concurrent
Semantics Alexander SPI (i)
• Two part specication:
• EventCSP - pure dialogue order
• EventISL - target dependent semantics

• dialogue description

-

centralised

• syntactic/semantic trade-off

-

tollerable
Semantics Alexander SPI (ii)
• EventCSP
Login = login-mess -> get-name -> Passwd
Passwd = passwd-mess -> (invalid -> Login [] valid -> Session)

• EventISL
event: login-mess
prompt: true
out: “Login:”
event: get-name
uses: input
set: user-id = input
event: valid
uses: input, user-id, passwd-db
wgen: passwd-id = passwd-db(user-id)
Semantics - raw code
• event loop for word processor
• dialogue description
- very distributed
• syntactic/semantic trade-off
- terrible!

switch ( ev.type ) {
case button_down:
if ( in_text ( ev.pos ) ) {
mode = selecting;
mark_selection_start(ev.pos);
}
...

case button_up:
if ( in_text ( ev.pos )
&& mode == selecting ) {
mode = normal;
mark_selection_end(ev.pos);
}
...

case mouse_move:
if (mode == selecting ) {
extend_selection(ev.pos);
}
...

} /* end of switch */
Action properties
• completeness

• missed arcs
• unforeseen circumstances

• determinism

• several arcs for one action
• deliberate: application decision
• accident: production rules

• nested escapes
• consistency

• same action, same effect?
• modes and visibility
Checking properties (i)
• completeness
– double-click in circle states?
double
click

select 'circle'
Start

?

click on
click on centre
circumference
Circle 1
Circle 2
Finish
rubber band
draw circle

Menu
select 'line'
Line 1

click on
first point
rubber band

Line 2

double click
draw last
line

click on point
draw a line

Finish
Checking properties (ii)
select 'circle'
Start

• Reversibility:

... ... ...

Menu

select 'line'
Line 1

click on
first point
rubber band

– to reverse select `line'

double click
Line 2

draw last
line

click on point
draw a line

Graphics Sub-menu

select 'graphics'

Main
Menu

select 'text'

select 'paint'

... ... ...
... ... ...

Finish
Checking properties (ii)
select 'circle'
Start

• Reversibility:

... ... ...

Menu

select 'line'
Line 1

click on
first point
rubber band

– to reverse select `line'

double click
Line 2

draw last
line

click on point
draw a line

– click

Graphics Sub-menu

select 'graphics'

Main
Menu

select 'text'

select 'paint'

... ... ...
... ... ...

Finish
Checking properties (ii)
select 'circle'
Start

• Reversibility:

... ... ...

Menu

select 'line'
Line 1

click on
first point
rubber band

– to reverse select `line'

double click
Line 2

draw last
line

click on point
draw a line

– click - double click

Graphics Sub-menu

select 'graphics'

Main
Menu

select 'text'

select 'paint'

... ... ...
... ... ...

Finish
Checking properties (ii)
select 'circle'
Start

• Reversibility:

... ... ...

Menu

select 'line'
Line 1

click on
first point
rubber band

– to reverse select `line'

double click
Line 2

draw last
line

click on point

– click - double click - select `graphics'

draw a line

– (3 actions)
Graphics Sub-menu

• N.B. not undo

select 'graphics'

Main
Menu

select 'text'

select 'paint'

... ... ...
... ... ...

Finish
State properties
• reachability
• can you get anywhere from anywhere?
• and how easily

• reversibility
• can you get to the previous state?
• but NOT undo

• dangerous states
• some states you don't want to get to
Dangerous States
• word processor: two modes and exit
F1
F2
Esc

- changes mode
- exit (and save)
- no mode change
Esc

edit

F1

menu

F2

but ... Esc resets autosave

exit
Dangerous States (ii)
• exit with/without save ⇒ dangerous states
• duplicate states - semantic distinction
edit

F1

any
update

edit
F1-F2 - exit with save
F1-Esc-F2 - exit with no save

menu

F2

exit

Esc
F1

menu
Esc

F2

exit
Lexical Issues
• visibility

• differentiate modes and states
• annotations to dialogue

• style

• command - verb noun
• mouse based - noun verb

• layout

• not just appearance ...
layout matters
• word processor - dangerous states
edit

F1

any
update

• old keyboard - OK
Esc
tab
F1

F2

F3

F4

...

...

...

edit

menu

...

exit

Esc
F1

menu

Esc

1

F2

F2

exit
layout matters
• new keyboard layout
Esc

F1

intend F1-F2 (save)
finger catches Esc

F2

F3

...
edit

F1

any
update
edit

menu

F2

exit

Esc
F1

menu

Esc

F2

exit
layout matters
• new keyboard layout
Esc

F1

F2

intend F1-F2 (save)
finger catches Esc
F1-Esc-F2 - disaster!

F3

...
edit

F1

any
update
edit

menu

F2

exit

Esc
F1

menu

Esc

F2

exit
Dialogue Analysis - Summary
• Semantics and dialogue

• attaching semantics
• distributed/centralised dialogue description
• maximising syntactic description

• Properties of dialogue

• action properties: completeness, determinism,
consistency
• state properties: reachability, reversibility, dangerous
states

• Presentation and lexical issues
• visibility, style, layout
• N.B. not independent of dialogue
Dialogue Analysis - Summary
• Semantics and dialogue

• attaching semantics
• distributed/centralised dialogue description
• maximising syntactic description

• Properties of dialogue

• action properties: completeness, determinism,
consistency
• state properties: reachability, reversibility, dangerous
states

• Presentation and lexical issues
• visibility, style, layout
• N.B. not independent of dialogue
Digital watch – User
Instructions
Time display

• two main modes

Stop watch

SMTWTFS

SMTWTFS

A

STP

• limited interface
- 3 buttons
A

• button A
changes mode

A

SMTWTFS

Depress
button A
for 2 seconds

SMTWTFS

SET

A

ALM
AM

Time setting

Alarm setting
Digital watch – User
Instructions
Time display

Stop watch

SMTWTFS

SMTWTFS

• dangerous states

A

STP

• guarded
… by two second hold
A

• completeness
• distinguish depress A
and release A
• what do they do
in all modes?

A

SMTWTFS

Depress
button A
for 2 seconds

SMTWTFS

SET

A

ALM
AM

Time setting

Alarm setting
Digital watch – Designers
instructions
Time display
SMTWTFS

Stop watch
SMTWTFS

STP

and ...

Depress A
Release A

that’s just
one button

Release A

SMTWTFS

SMTWTFS

STP

Depress A

Release A

2 seconds

SMTWTFS

2 seconds

SMTWTFS

SET

Depress A

Release A
ALM
AM

Time setting

Alarm setting

More Related Content

Viewers also liked (9)

Ch13
Ch13Ch13
Ch13
 
E3 chap-01
E3 chap-01E3 chap-01
E3 chap-01
 
Ch10 file system interface
Ch10   file system interfaceCh10   file system interface
Ch10 file system interface
 
E3 chap-08
E3 chap-08E3 chap-08
E3 chap-08
 
Ch7
Ch7Ch7
Ch7
 
Ch5 process synchronization
Ch5   process synchronizationCh5   process synchronization
Ch5 process synchronization
 
Presentasi Pemrograman Berbasis Objek
Presentasi Pemrograman Berbasis ObjekPresentasi Pemrograman Berbasis Objek
Presentasi Pemrograman Berbasis Objek
 
E3 chap-02
E3 chap-02E3 chap-02
E3 chap-02
 
E3 chap-13
E3 chap-13E3 chap-13
E3 chap-13
 

Similar to E3 chap-16

Similar to E3 chap-16 (20)

HCI 3e - Ch 16: Dialogue notations and design
HCI 3e - Ch 16:  Dialogue notations and designHCI 3e - Ch 16:  Dialogue notations and design
HCI 3e - Ch 16: Dialogue notations and design
 
Formal 5 – Dialogue models – what to do when
Formal 5 – Dialogue models – what to do whenFormal 5 – Dialogue models – what to do when
Formal 5 – Dialogue models – what to do when
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
Functional solid
Functional solidFunctional solid
Functional solid
 
e3-chap-03 (1).ppt
e3-chap-03 (1).ppte3-chap-03 (1).ppt
e3-chap-03 (1).ppt
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
Unit ii design process
Unit ii design processUnit ii design process
Unit ii design process
 
Quality code 2019
Quality code 2019Quality code 2019
Quality code 2019
 
E3 chap-03
E3 chap-03E3 chap-03
E3 chap-03
 
ch3-interaction.pdf
ch3-interaction.pdfch3-interaction.pdf
ch3-interaction.pdf
 
ch3-interaction.pdf
ch3-interaction.pdfch3-interaction.pdf
ch3-interaction.pdf
 
E3 chap-03
E3 chap-03E3 chap-03
E3 chap-03
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)
 
e3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst ratee3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst rate
 
e3-chap-03.ppt
e3-chap-03.ppte3-chap-03.ppt
e3-chap-03.ppt
 
Continuous Platformization
Continuous PlatformizationContinuous Platformization
Continuous Platformization
 
Distributed processing of large graphs in python
Distributed processing of large graphs in pythonDistributed processing of large graphs in python
Distributed processing of large graphs in python
 
Agile Engineering for Managers Workshop
Agile Engineering for Managers WorkshopAgile Engineering for Managers Workshop
Agile Engineering for Managers Workshop
 

Recently uploaded

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Recently uploaded (20)

NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 

E3 chap-16

  • 2. Dialogue Notations and Design • Dialogue Notations – Diagrammatic • state transition networks, JSD diagrams, flow charts – Textual • formal grammars, production rules, CSP • Dialogue linked to – the semantics of the system – what it does – the presentation of the system – how it looks • Formal descriptions can be analysed – – – – for for for for inconsistent actions difficult to reverse actions missing actions potential miskeying errors
  • 3. what is dialogue? • conversation between two or more parties – usually cooperative • in user interfaces – refers to the structure of the interaction – syntactic level of human–computer ‘conversation’ • levels – lexical – shape of icons, actual keys pressed – syntactic – order of inputs and outputs – semantic – effect on internal application/data
  • 4. structured human dialogue • human-computer dialogue very constrained • some human-human dialogue formal too … Minister: do you man’s name take this woman … Man: I do Minister: do you woman’s name take this man … Woman: I do Man: With this ring I thee wed (places ring on womans finger) Woman: With this ring I thee wed (places ring ..) Minister: I now pronounce you man and wife
  • 5. lessons about dialogue • wedding service – – – – – sort of script for three parties specifies order some contributions fixed – “I do” others variable – “do you man’s name …” instructions for ring concurrent with saying words “with this ring …” • if you say these words are you married? – only if in the right place, with marriage licence – syntax not semantics
  • 6. … and more • what if woman says “I don’t”? • real dialogues often have alternatives: Judge: How do you plead guilty or not guilty? Defendant: either Guilty or Not guilty – the process of the trial depends on the defendants response • focus on normative responses – doesn’t cope with judge saying “off with her head” – or in computer dialogue user standing on keyboard!
  • 7. dialogue design notations • dialogue gets buried in the program • in a big system can we: – analyse the dialogue: • can the user always get to see current shopping basket – change platforms (e.g. Windows/Mac) – dialogue notations helps us to • analyse systems • separate lexical from semantoc • … and before the system is built – notations help us understand proposed designs
  • 8. graphical notations state-transition nets (STN) Petri nets, state charts flow charts, JSD diagrams
  • 9. State transition networks (STN) • circles - states • arcs - actions/events select 'circle' Start click on click on centre circumference Circle 1 Circle 2 Finish rubber band draw circle Menu select 'line' Line 1 click on first point rubber band Line 2 double click draw last line click on point draw a line Finish
  • 10. State transition networks events • arc labels a bit cramped because: – notation is `state heavy‘ – the events require most detail select 'circle' Start click on click on centre circumference Circle 1 Circle 2 Finish rubber band draw circle Menu select 'line' Line 1 click on first point rubber band Line 2 double click draw last line click on point draw a line Finish
  • 11. State transition networks states • labels in circles a bit uninformative: – states are hard to name – but easier to visualise click on circumference click on centre Circle 1 select 'circle' Start Circle 2 rubber band Menu select 'line' ... ... ... Finish draw circle
  • 12. Hierarchical STNs • managing complex dialogues • named sub-dialogues select ‘graphics’ Main Menu select ‘text’ Graphics Submenu Text Submenu Paint Submenu select ‘paint’
  • 13. Concurrent dialogues - I simple dialogue box Text Style bold example italic underline
  • 14. Concurrent dialogues - II three toggles - individual STNs NO click on ‘bold’ bold NO click on ‘italic’ italic NO u’line click on ‘underline’ bold bold italic italic u’line underline
  • 15. Concurrent dialogues - III bold and italic combined Text Style NO click on ‘bold’ style only click on ‘italic’ click on ‘italic’ italic only bold click on ‘bold’ bold italic example bold italic underline
  • 16. Concurrent dialogues - IV all together - combinatorial explosion Text Style NO ‘bold’ bold style only example ‘underline’ ‘underline’ ‘italic’ ‘italic’ u’line ‘bold’ only bold u’line ‘italic’ italic ‘bold’ only ‘underline’ ‘underline’ italic u’line ‘italic’ bold italic ‘bold’ bold italic u’line bold italic underline
  • 17. escapes • ‘back’ in web, escape/cancel keys – similar behaviour everywhere – end up with spaghetti of identical behaviours • try to avoid this select ‘graphics’ Graphics Submenu ESC normal e.g. on high level diagram ‘normal’ exit for each submenu finish Main Menu select ‘text’ Text Submenu ESC normal plus separate escape arc active ‘everywhere’ in submenu finish Paint Submenu select ‘paint’ ESC normal finish
  • 18. help menus • similar problems – – – – nearly the same everywhere but return to same point in dialogue could specify on STN … but very messy usually best added at a ‘meta’ level from Menu Circle 1 click on centre rubber band press HELP button Help Subsystem Circle 2 click on circumference draw circle press HELP button Help Subsystem Finish
  • 19. Petri nets • one of the oldest notations in computing! • flow graph: – places – transitions – counters – a bit like STN states – a bit like STN arcs – sit on places (current state) • several counters allowed – concurrent dialogue states • used for UI specification – tool support – Petshop (ICO at Toulouse)
  • 20. Petri net example Bold On user presses ‘Bold’ T1 T2 Bold Off user actions represented as a new counter transition ‘fires’ when all input places have counters Italic On T3 user presses ‘Italic’ T4 Italic Off
  • 21. State charts • used in UML • extension to STN – hierarchy – concurrent sub-nets – escapes • OFF always active Standby ON OFF RESET Channel Sound – history • link marked H goes back to last state on re-entering subdialogue 1 SEL On 2 MUTE SEL SEL Off 3 SEL 4 H
  • 22. Flowcharts • familiar to programmers • boxes - process/event - not state Delete D1 Please enter employee no.: ____ C1 read record Delete D2 Delete Name: Alan Dix Dept: Computing delete? (Y/N): _ • use for dialogue C2 (not internal algorithm) Name: Alan Dix Dept: Computing delete? (Y/N): _ Please enter Y or N other answer? Y N C3 delete record Finish D3 Finish
  • 23. it works! • formal notations – too much work? • COBOL transaction processing – event-driven – like web interfaces – programs structure ≠ dialogue structure Delete • used dialogue flow charts – – – – discuss with clients transform to code systematic testing 1000% productivity gain • formalism saves time!! D1 Please enter employee no.: ____ C1 read record Delete D2 Delete Name: Alan Dix Dept: Computing delete? (Y/N): _ C2 answer? Y other N Finish C3 delete record Finish D3 delete? (Y/N): _ Please enter Y or N
  • 24. JSD diagrams • for tree structured dialogues – less expressive Personnel Record System – greater clarity login add employee record transaction change employee record * logout display employee record delete employee record
  • 26. Textual - Grammars • Regular expressions sel-line click click* dble-click • compare with JSD • same computational model • different notation • BNF expr ::= empty | atom expr | '(' expr ')' expr • more powerful than regular exp. or STNs • Still NO concurrent dialogue
  • 27. Production rules • Unordered list of rules: if condition then action – condition based on state or pending events – every rule always potentially active • Good for concurrency • Bad for sequence
  • 28. Event based production rules Sel-line → first C-point first → rest C-point rest → rest D-point rest → < draw line > • Note: – events added to list of pending events – ‘first’ and ‘rest’ are internally generated events • Bad at state!
  • 29. Prepositional Production System • State based • Attributes: Mouse: { mouse-off, select-line, click-point, double-click } Line-state: { menu, first, rest } • Rules (feedback not shown): select-line → mouse-off first click-point first → mouse-off rest click-point rest → mouse-off double-click rest → mouse-off menu • Bad at events!
  • 30. CSP and process algebras • used in Alexander's SPI, and Agent notation • good for sequential dialogues Bold-tog = select-bold? → bold-on → select-bold? → bold-off → Bold-tog Italic-tog = . . . Under-tog = . . . • and concurrent dialogue Dialogue-box = Bold-tog || Italic-tog || Under-tog • but causality unclear
  • 31. Dialogue Notations Summary • Diagrammatic • STN, JSD, Flow charts • Textual • grammars, production rules, CSP • Issues • • • • event base vs. state based power vs. clarity model vs. notation sequential vs. concurrent
  • 32. Semantics Alexander SPI (i) • Two part specication: • EventCSP - pure dialogue order • EventISL - target dependent semantics • dialogue description - centralised • syntactic/semantic trade-off - tollerable
  • 33. Semantics Alexander SPI (ii) • EventCSP Login = login-mess -> get-name -> Passwd Passwd = passwd-mess -> (invalid -> Login [] valid -> Session) • EventISL event: login-mess prompt: true out: “Login:” event: get-name uses: input set: user-id = input event: valid uses: input, user-id, passwd-db wgen: passwd-id = passwd-db(user-id)
  • 34. Semantics - raw code • event loop for word processor • dialogue description - very distributed • syntactic/semantic trade-off - terrible! switch ( ev.type ) { case button_down: if ( in_text ( ev.pos ) ) { mode = selecting; mark_selection_start(ev.pos); } ... case button_up: if ( in_text ( ev.pos ) && mode == selecting ) { mode = normal; mark_selection_end(ev.pos); } ... case mouse_move: if (mode == selecting ) { extend_selection(ev.pos); } ... } /* end of switch */
  • 35. Action properties • completeness • missed arcs • unforeseen circumstances • determinism • several arcs for one action • deliberate: application decision • accident: production rules • nested escapes • consistency • same action, same effect? • modes and visibility
  • 36. Checking properties (i) • completeness – double-click in circle states? double click select 'circle' Start ? click on click on centre circumference Circle 1 Circle 2 Finish rubber band draw circle Menu select 'line' Line 1 click on first point rubber band Line 2 double click draw last line click on point draw a line Finish
  • 37. Checking properties (ii) select 'circle' Start • Reversibility: ... ... ... Menu select 'line' Line 1 click on first point rubber band – to reverse select `line' double click Line 2 draw last line click on point draw a line Graphics Sub-menu select 'graphics' Main Menu select 'text' select 'paint' ... ... ... ... ... ... Finish
  • 38. Checking properties (ii) select 'circle' Start • Reversibility: ... ... ... Menu select 'line' Line 1 click on first point rubber band – to reverse select `line' double click Line 2 draw last line click on point draw a line – click Graphics Sub-menu select 'graphics' Main Menu select 'text' select 'paint' ... ... ... ... ... ... Finish
  • 39. Checking properties (ii) select 'circle' Start • Reversibility: ... ... ... Menu select 'line' Line 1 click on first point rubber band – to reverse select `line' double click Line 2 draw last line click on point draw a line – click - double click Graphics Sub-menu select 'graphics' Main Menu select 'text' select 'paint' ... ... ... ... ... ... Finish
  • 40. Checking properties (ii) select 'circle' Start • Reversibility: ... ... ... Menu select 'line' Line 1 click on first point rubber band – to reverse select `line' double click Line 2 draw last line click on point – click - double click - select `graphics' draw a line – (3 actions) Graphics Sub-menu • N.B. not undo select 'graphics' Main Menu select 'text' select 'paint' ... ... ... ... ... ... Finish
  • 41. State properties • reachability • can you get anywhere from anywhere? • and how easily • reversibility • can you get to the previous state? • but NOT undo • dangerous states • some states you don't want to get to
  • 42. Dangerous States • word processor: two modes and exit F1 F2 Esc - changes mode - exit (and save) - no mode change Esc edit F1 menu F2 but ... Esc resets autosave exit
  • 43. Dangerous States (ii) • exit with/without save ⇒ dangerous states • duplicate states - semantic distinction edit F1 any update edit F1-F2 - exit with save F1-Esc-F2 - exit with no save menu F2 exit Esc F1 menu Esc F2 exit
  • 44. Lexical Issues • visibility • differentiate modes and states • annotations to dialogue • style • command - verb noun • mouse based - noun verb • layout • not just appearance ...
  • 45. layout matters • word processor - dangerous states edit F1 any update • old keyboard - OK Esc tab F1 F2 F3 F4 ... ... ... edit menu ... exit Esc F1 menu Esc 1 F2 F2 exit
  • 46. layout matters • new keyboard layout Esc F1 intend F1-F2 (save) finger catches Esc F2 F3 ... edit F1 any update edit menu F2 exit Esc F1 menu Esc F2 exit
  • 47. layout matters • new keyboard layout Esc F1 F2 intend F1-F2 (save) finger catches Esc F1-Esc-F2 - disaster! F3 ... edit F1 any update edit menu F2 exit Esc F1 menu Esc F2 exit
  • 48. Dialogue Analysis - Summary • Semantics and dialogue • attaching semantics • distributed/centralised dialogue description • maximising syntactic description • Properties of dialogue • action properties: completeness, determinism, consistency • state properties: reachability, reversibility, dangerous states • Presentation and lexical issues • visibility, style, layout • N.B. not independent of dialogue
  • 49. Dialogue Analysis - Summary • Semantics and dialogue • attaching semantics • distributed/centralised dialogue description • maximising syntactic description • Properties of dialogue • action properties: completeness, determinism, consistency • state properties: reachability, reversibility, dangerous states • Presentation and lexical issues • visibility, style, layout • N.B. not independent of dialogue
  • 50. Digital watch – User Instructions Time display • two main modes Stop watch SMTWTFS SMTWTFS A STP • limited interface - 3 buttons A • button A changes mode A SMTWTFS Depress button A for 2 seconds SMTWTFS SET A ALM AM Time setting Alarm setting
  • 51. Digital watch – User Instructions Time display Stop watch SMTWTFS SMTWTFS • dangerous states A STP • guarded … by two second hold A • completeness • distinguish depress A and release A • what do they do in all modes? A SMTWTFS Depress button A for 2 seconds SMTWTFS SET A ALM AM Time setting Alarm setting
  • 52. Digital watch – Designers instructions Time display SMTWTFS Stop watch SMTWTFS STP and ... Depress A Release A that’s just one button Release A SMTWTFS SMTWTFS STP Depress A Release A 2 seconds SMTWTFS 2 seconds SMTWTFS SET Depress A Release A ALM AM Time setting Alarm setting