16 Dialog notation and Design
16.1 what is dialog?
	Structure of ‘conversation’ between user and system
	Lexical
	Syntactic
	Semantic

	Structured human dialogs
		Scripts
			Certain things in certain order
			Ordering at a restaurant
			Weddings
			Words, grammar, meaning
			courtroom
16.2 dialog design notations
	Dialog mixed with processing, system decisions, etc.
16.3 diagrammatic notations
	State transition networks STN
	Lines and circles and labels
	Comparable to FSA finite state automata BNF grammar regular expressions
	
	Hierarchical STN
		Break system down into parts
	Concurrent dialogs
		Combinatorial explosion of states
		Bold, Italic, underline, strike thru, subscript, superscript
		64 possible states just based on FONT
		Escapes and helps 
			Expect to return to the same state after help
	Petri nets
		Track concurrent states
		Have black ‘counters’ moving around
		e.g. one for font, one for help, etc.
		(concurrent diagrams / non-deterministic)
		You CAN even automatically convert a concurrent diagram
			To a deterministic diagram
			BUT N states in concurrent => 2^N states in deterministic
	State charts
		Form of STN
	Flow charts
		Flow charts less popular, and rarely used for dialog
	JSD (Jackson Structure Design)
		Left to right
16.4 textual dialog notations
	BNF/regular expressions
		Not concurrent
		Escape problematic
		Cannot even handle matching () {} [] <>
	Production rules
		If then rules
		Order of rules not important
		Rules applied (fire) based on specificity and recency
		Leap year (any year, /4, /100, /400)
		Can have state
		Rules increase linearly with number of switches
		OK at concurrent
		Terrible at sequential dialog
	CSP Communicating sequential Processes
		Sequence and choice
		Can run in parallel
	Parametrized and dynamic interleaved dialog structure
		Static vs dynamic screen presentation
		Static vs dynamic dialog structure
		Parametrized dialog (e.g. add a new screen)
		Static methods easier to deal with!

16.5 dialog semantics
	If part of contract, or prototype need to talk about meaning
	Notation specific semantics
	Links to programming languages
	Links to specification notations
	
	(regular expressions, 
context free languages, 
context free languages with variable and stacks)

notation specific semantics
	state transition with registers
	check and set registers
	use programming code to indicate ‘meaning’
	SPI specifying and prototyping interaction
		eventCSP
		eventISL
	pre-condition
	valid
distributed and centralized dialog Description
maximize syntactic description
		how input and output make dialog masked by surrounding code
		if application invoked by user, dialog completely under user control
16.6 dialog analysis and design
	Action properties
		Some things are not possible
		But a COMPLETE description explodes (combinatorial)
		But is shows how unforeseen events happen, valuable
		PIN at ATM:
			Correct, get money
			Incorrect, return card
			Too may wrong attempts, hold card, call police
			SEMANTIC decision
		Completeness, determinism, consistency

	State properties
		Reachability
			Can I reach this state/code?
		Fully connected
			Can I get from any one section to any other section somehow
		Reversibility (undo)
			Might not be easy
			How many steps backward?
			Might effects be left behind?
			(transaction completeness)
		Dangerous state
			Warning before (are you sure (Y/N)?)
			Easy to undo
			Might NOT want moves to dangerous states to be consistent 
				With normal patterns
	Presentations and lexical properties
		Many do functionality first, then dialog, then visual
		Early in design do not fix decisions too early (what key to use)
		If you have different modes, should be visually distinguishable
		(visibility, observability, predictability, chapter 17)

	Different interfaces have different dialog styles
		Users expect different interface style for different media
		Cell phone, youtube, portal.vsc.edu

	Physical limitations
		Digital watch or fit bit
		Limited buttons!
	Even the location of the escape button on keyboard makes a difference!