Dialog Design: Introduction and Command Languages - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Dialog Design: Introduction and Command Languages

Description:

s Deletes the current character and goes into insertion mode. ... Does not delete the line. p Places the line in the buffer after the current cursor position. ... – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 32
Provided by: jeffp8
Category:

less

Transcript and Presenter's Notes

Title: Dialog Design: Introduction and Command Languages


1
Dialog Design Introduction and Command Languages
  • This presentation has been developed by the
    Georgia Tech HCI faculty over a period of years.
    Contributors include Gregory Abowd, Jim Foley,
    Diane Gromala, Elizabeth Mynatt, Jeff Pierce,
    Colin Potts, Chris Shaw, John Stasko and Bruce
    Walker

2
Agenda
  • Dialogue design styles and issues
  • Command languages
  • Advantages, disadvantages
  • Design guidelines

3
Dialog Styles
  • 1. Command languages
  • 2. WIMP - Window, Icon, Menu, Pointer
  • 3. Direct manipulation
  • 4. Speech/Natural language
  • 5. Gesture, pen

4
Dialog Design - Humor
  • How does a user interact with the interface?

5
General Issues in Choosing Dialogue Style
  • Who is in control - user or computer
  • Initial training required
  • Learning time to become proficient
  • Speed of use
  • Generality/flexibility/power
  • Special skills - typing
  • Gulf of evaluation / gulf of execution
  • Screen space required
  • Computational resources required

6
Command Languages
  • Earliest UI interaction paradigms
  • Examples
  • MS-DOS shell
  • UNIX shell
  • dBase

7
CL Characteristics
  • Little or nothing is visible so
  • Work primarily by recall, not recognition
  • Heavy memory load
  • Poor choice for novices but...

8
CL Advantages
  • Advantages for experts
  • ?

9
CL Advantages for Experts
  • Speed, conciseness
  • ls (hard to beat
  • Can express actions beyond a limited set
  • Flags, piping one command to another
  • Repetition, extensibility
  • Scripting, macros
  • Easier implementation, less overhead
  • Power
  • Abstraction, wild cards

10
CL Disadvangates
  • Make a list if you are by yourself or in a small
    group
  • Or suggest some to the class

11
Next.
  • Listed all you can think of? Go on to the next
    page..

12
CL Disadvantages
  • Error-prone
  • Harder to learn
  • Requires typing
  • With added power, comes added responsibility and
    danger
  • UNIX
  • rm -r f
  • Deletes every file that youhave, provides no
    feedback,and you cant get them back

13
Unix Shell CL Disadvantages
  • Learning takes a long time
  • Hard to remember command names
  • Some command names dont make sense, so have to
    memorize
  • No in-progress feedback - how much longer?
  • System state is invisible, and have to know which
    commands to use to get which information
  • Hard to make sense of outputs, such as with ls -
    no headings, no code interpretations
  • No look
  • No warning if bad things are going to happen
  • No universal Undo to reverse a command, have to
    know the inverse command (create directory,
    delete directory)
  • Have to use man command to find desired command
  • How to get help?
  • Because commands are short, typos can lead to
    incorrect command
  • Inconsistent flag meanings
  • Inconsistent parameter orders
  • Have to type a lot - touch typing needed

14
CL Reflection
  • Command languages are often maligned (for good
    reason)
  • But increased functionality can win out over bad
    UI (e.g., UNIX)
  • Try to get both
  • Avoid excess functionality (comes at cost)

15
CL Design Goals
  • Consistency
  • Good naming and abbreviations
  • Doing your homework in design can help alleviate
    some of the negatives

16
CL Consistency
  • Provide a consistent syntax
  • In general Have options and arguments expressed
    the same way everywhere
  • UNIX fails!
  • Commands were developed by lots of different
    people at different organizations
  • No guidelines provided
  • If commands long, have simple consistent
    abbreviations

17
CL Syntax Be Consistent!
  • Simple command list
  • e.g, vi, minimize keystrokes
  • Commands plus arguments
  • realistic, can provide keyword parameters
  • cp fromfoo tobar
  • Commands plus options plus arguments
  • what you usually see

18
CL Order
  • English SVO subject verb object
  • you is assumed as the subject - imperative!
  • CL S assumed (you)
  • Is VO or OV better?
  • delete file or file delete
  • V dO iO vs. V iO dO
  • print file calvin
  • lpr -Pcalvin file
  • Which is better?

19
CL Ordering
  • Keep ordering consistent
  • VO (Verb Object) seems to be the most natural
  • Typically need to pick where options go
  • Example
  • ln -s file1 file2
  • Think of cp file1 file2

20
CL Terminology
  • Keep terminology consistent
  • Same concept expressed with same options
  • Useful to provide symmetric (congruent) pairings
  • forward/backward
  • next/prev
  • control/meta

21
CL Example of Congruent Pairs
  • vi text editor
  • w - forward word
  • b - backward word
  • Wouldnt f be better for forward?
  • f already used
  • How about fw and bw?
  • Extra keystrokes

22
CL Names and Abbreviations
  • Specificity versus Generality
  • General words
  • More familiar, easier to accept
  • Specific (typically better)
  • More descriptive, meaningful, distinctive
  • (Nonsense does surprisingly well for small set of
    commands)

23
CL Abbreviations
  • Abbreviations allow for faster actions
  • Expert performance begins to be dominated by
    motor times such as of keystrokes
  • Not good idea for novices
  • (Allow but dont require)

24
CL Abbreviation Strategies
  • Simple truncation (works best, but conflicts)
  • Vowel drop plus truncation (avoid conflicts)
  • First and last letters
  • First letters of words in a phrase
  • Standard abbrev from other contexts
  • qty, rm, bldg
  • Phonics
  • xqt

25
CL Abbreviation Guidelines
  • Use single primary rule (with single fallback for
    conflicts)
  • Use fallback as little as possible
  • Mark use of fallback in documentation
  • Truncation is good but generates conflicts
  • Fixed length is better than variable length
  • Dont use abbrevs. in system output
  • Can use auto-completion as alternative to
    abbreviations

26
CL Abbreviations Matter...
27
CL Design Affects Performance
  • Terse CL Wordy CL
  • Find/tooth/ -1 backward to tooth
  • List/ko list all lines with ko
  • Rs/ko/,/ok/ change ko to ok
  • User type task completed wrong commands
  • (8 of each) Terse Wordy Terse Wordy
  • Inexperienced 28 42 19 11
  • Familiar 43 63 18 6.4
  • Experienced 74 84 9.9 5.6

All command words can be abbreviated with a
single letter.
Ledgard et al, The Natural Language of
Interactive Systems, CACM, October 1980 556-563
see also subsequent letters to the editor.
28
Design New Set of Commands for vi Navigation
29
All vi Commands
  • Text Insertion Commands
  • a Appends text after cursor.
  • A Appends text at the end of the line.
  • i Inserts text before cursor.
  • I Inserts text at the beginning of the line.
  • o Opens new line below the current line for text
    insertion.
  • O Opens new line above the current line for text
    insertion.
  • DEL Overwrites last character during text
    insertion.
  • ESC Stops text insertion.
  • Text Deletion Commands
  • x Deletes current character.
  • dd Deletes current line.
  • dw Deletes the current word.
  • d) Deletes the rest of the current sentence.
  • D, d Deletes from cursor to end of line.
  • P Puts back text from the previous delete.
  • Changing Commands
  • cw Changes characters of current word until ESC.
  • c Changes text up to the end of the line.
  • Undo Command
  • u undo the last command.
  • Screen Commands
  • CTL/l Reprints current screen.
  • CTL/L Exposes one more line at top of screen.
  • CTL/E Exposes one more line at bottom of screen.
  • CTL/F Pages forward one screen.
  • CTL/B Pages back one screen.
  • CTL/D Pages down half screen.
  • CTL/U Pages up half screen.
  • Cursor Positioning Commands
  • j Moves cursor down one line, same column.
  • k Moves cursor up one line, same column.
  • h Moves cursor back one character.
  • l Moves cursor forward one character.
  • RET Moves cursor to beginning of next line.
  • 0 Moves cursor to beginning of current line.
  • Moves cursor to end of current line.
  • SPACE Moves cursor forward one character.

30
Vi Navigation Commands
  • j Moves cursor down one line, same column.
  • k Moves cursor up one line, same column.
  • h Moves cursor back one character.
  • l Moves cursor forward one character.
  • RET Moves cursor to beginning of next line.
  • 0 Moves cursor to beginning of current line.
  • Moves cursor to end of current line.
  • SPACE Moves cursor forward one character.
  • nG Moves cursor to beginning of line n.
  • 0 Moves the cursor to the first character of
    the line.
  • n Moves cursor to beginning of line n.
  • b Moves the cursor back to the beginning of the
    prev. word.
  • e Moves the cursor backward to the end of the
    prev. word.
  • w Moves the cursor forward to the next word.
  • /pattern Moves cursor forward to next occurrence
    of pattern.
  • ?pattern Moves cursor backward to next
    occurrence of pattern.
  • n Repeats last / or ? pattern search.

31
The End
Write a Comment
User Comments (0)
About PowerShow.com