Command Language Interfaces
Design Goals for Any Language
- Precision
- Compactness
- Ease in writing and reading
- Speed of learning
- Simplicity to reduce errors
- Ease of retention over time
Higher Level Language Design Goals
- Close correspondence between reality and language notation
- Convenience in carrying out manipulations relevant to user tasks
- Compatibility with existing notations
- Flexibility to accommodate both novice and expert users
- Expressiveness to encourage creativity
- Visual appeal
Constraints on Language
- Capacity for human beings to record notation
- Match between the recording and the display media
- Convenience in speaking
Successful languages evolve to serve goals within the constraints.
GOMS Model for Command Language Interfaces
basic goal - speed and flexibility
basic method
Step1. Think of and enter command verb
Step2. Think of and enter next argument
Step3. if more arguments then
go to Step2
Step4. if command is incorrect then
correct the command
Step5. Signal computer to process the command.
Step6. go to Step1
What makes a command language easy to learn and use?
Easy Command Synthesis
- User can think up command by analogy from previously learned commands
- Commands conform to simple rules rather than lots of unique special cases
Command Language Organization Strategies
- Simple command set
- Commands plus arguments
- Commands plus options and arguments
- Hierarchical command structure (command action, object argument, destination)
Benefits of Structures
- Ease of learning, use, and recall
- Easy to construct guidelines documents
- Permits discussion of impact of allowing exceptions
Command Language Abbreviation Strategies
- Simple truncation
- Drop vowel and use simple truncation
- First and last letters
- Standard abbreviations from other contexts
- First letter of each work or phrase
- Phonics (e.g. XQT for execution)
- Cross product languages {verbs} x {objects}
Command Language Guidelines
- Make command terms easy to remember
- Provide easy command synthesis method and abbreviation strategy
- Provide simple, consistent command structure
- Commands should be right grain size
- Parsimony (no more commands than really needed)
- Studies show a few commands are used a lot by most users
- Provide for command reuse (replay, re-entry, macros)
- Avoid unnecessary distinctions among commands