WEEK 12 -13
Implementation Support
HCI101 - INTRODUCTION TO HUMAN COMPUTER INTERACTION
WEEK 12 - 13 – 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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 2
WEEK 12 - 13 – Implementation Support
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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 3
WEEK 12 - 13 – Implementation Support
Elements of windowing systems
Device independence
-programming the abstract terminal device drivers
image models for output and (partially) input
• pixels
• PostScript (MacOS X, NextStep)
• Graphical Kernel System (GKS)
• Programmers' Hierarchical Interface to Graphics
(PHIGS)
-Resource sharing
achieving simultaneity of user tasks
window system supports independent processes
isolation of individual applications
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 4
WEEK 12 - 13 – Implementation Support
Roles of a windowing system
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 5
WEEK 12 - 13 – Implementation Support
Architectures of windowing systems
Three possible software architectures
1. each application manages all processes
– everyone worries about synchronization
– reduces portability of applications
2. management role within kernel of operating system
– applications tied to operating system
3. management role as separate application
maximum portability
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 6
WEEK 12 - 13 – Implementation Support
The client-server architecture
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 7
WEEK 12 - 13 – Implementation Support
System Style Affects The Interfaces
– modal dialogue box
• easy with event-loop (just have extra read-event loop)
• hard with notification (need lots of mode flags)
– non-modal dialogue box
• hard with event-loop (very complicated main loop)
• easy with notification (just add extra handler)
beware!
if you don’t explicitly design it will just happen
implementation should not drive design
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 8
WEEK 12 - 13 – Implementation Support
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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 9
WEEK 12 - 13 – Implementation Support
User Interface Management Systems (UIMS)
separation between application semantics and
presentation
• improves:
– portability – runs on different systems
– reusability – components reused cutting costs
– multiple interfaces – accessing same functionality
– customizability – by designer and user
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 10
WEEK 12 - 13 – Implementation Support
Implementation of UIMS
Techniques for dialogue controller
• menu networks • state transition diagrams
• grammar notations • event languages
• declarative languages • constraints
• graphical specification
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 11
WEEK 12 - 13 – Implementation Support
MVC
• model - view - controller
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 12
WEEK 12 - 13 – Implementation Support
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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 13
WEEK 12 - 13 – Implementation Support
PAC
• presentation - abstraction - control
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 14
WEEK 12 - 13 – Implementation Support
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)
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 15
WEEK 12 - 13 – Implementation Support
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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 16
WEEK 12 - 13 – Implementation Support
The drift of dialogue control
internal control
(e.g., read-evaluation loop)
• external control
(independent of application semantics or presentation)
• presentation control
(e.g., graphical specification)
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 17
WEEK 12 - 13 – Implementation Support
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
HCI101 – INTRODUCTION TO HUMAN COMPUTER INTERACTION 18