HCI101 Week12-13 Implementation Support
HCI101 Week12-13 Implementation Support
Implementation Support
Implementation support
programming tools
– levels of services for programmers
• windowing systems
– core support for separate and simultaneous usersystem activity
• programming the application and control of
dialogue
• interaction toolkits
– bring programming closer to level of user perception
• user interface management systems
– controls relationship between presentation and
functionality
Introduction
How does HCI affect of the programmer?
Advances in coding have elevated programming
Hardware specific
→ interaction-technique specific
Layers of development tools
– windowing systems
– interaction toolkits
– user interface management systems
Using toolkits
Interaction objects
– input and output
intrinsically linked
Toolkits provide this level of abstraction
– programming with interaction objects (or
– techniques, widgets, gadgets)
– promote consistency and generalizability
– through similar look and feel
– amenable to object-oriented programming
Implementation of UIMS
Techniques for dialogue controller
• menu networks • state transition diagrams
• grammar notations • event languages
• declarative languages • constraints
• graphical specification
MVC
• model - view - controller
MVC issues
MVC is largely pipeline model:
input → control → model → view → output
• but in graphical interface
– input only has meaning in relation to output
e.g. mouse click
– need to know what was clicked
– controller has to decide what to do with click
– but view knows what is shown where!
• in practice controller ‘talks’ to view
– separation not complete
PAC model
PAC model
– abstraction – logical state of component
– presentation – manages input and output
– control – mediates between them
• manages hierarchy and multiple views
– control part of PAC objects communicate
• PAC cleaner in many ways …
but MVC used more in practice
(e.g. Java Swing)
Graphical Specification
what it is
– draw components on screen
– set actions with script or links to program
• in use
– with raw programming most popular technique
– e.g. Visual Basic, Dreamweaver, Flash
• local vs. global
– hard to ‘see’ the paths through system
– focus on what can be seen on one screen
Summary
Levels of programming support tools
• Windowing systems
– device independence
– multiple tasks
• Paradigms for programming the application
– read-evaluation loop
– notification-based
• Toolkits
– programming interaction objects
• UIMS
– conceptual architectures for separation
– techniques for expressing dialogue