Begins early on in the design process
Uses techniques such as task analysis to model (error-free)
interaction
User interface specification mocked up:
Screen shots
Input/Output sequences (dialogue)
Widget behaviour
Single-layer models
Simple command mappings to actions
Multi-layered models
HTAs
Formal grammars used to specify syntax (BNF)