chapter 8
implementation support
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
Elements of windowing systems
Device independence
programming the abstract terminal device drivers
image models for output and (partially) input
Resource sharing
achieving simultaneity of user tasks
window system supports independent processes
isolation of individual applications
roles of a windowing system
Architectures of windowing systems
three possible software architectures
1. each application manages all processes
2. management role within kernel of operating system
3. management role as separate application� maximum portability
The client-server architecture
X Windows architecture
X Windows architecture (ctd)
Programming the application - 1�read-evaluation loop
repeat
read-event(myevent)
case myevent.type
type_1:
do type_1 processing
type_2:
do type_2 processing
...
type_n:
do type_n processing
end case
end repeat
Programming the application - 1�notification-based
void main(String[] args) {
Menu menu = new Menu();
menu.setOption(“Save”);
menu.setOption(“Quit”);
menu.setAction(“Save”,mySave)
menu.setAction(“Quit”,myQuit)
...
}
int mySave(Event e) {
// save the current file
}
int myQuit(Event e) {
// close down
}
going with the grain
beware!
if you don’t explicitly design it will just happen �implementation should not drive design
Using toolkits
Interaction objects
Toolkits provide this level of abstraction
move
press
release
move
interfaces in Java
User Interface Management Systems (UIMS)
UIMS as conceptual architecture
UIMS tradition – interface layers / logical components
Seeheim model
Presentation
Dialogue
Control
Functionality
(application
interface)
USER
USER
APPLICATION
switch
lexical
syntactic
semantic
conceptual vs. implementation
Seeheim
e.g. the lower box, the switch
semantic feedback
what’s this?
the bypass/switch
rapid semantic feedback
direct communication�between application�and presentation
but regulated by
dialogue control
�more layers!
Arch/Slinky
monolithic vs. components
MVC�model - view - controller
model
view
controller
MVC issues
PAC model
PAC�presentation - abstraction - control
abstraction
presentation
control
A
P
C
A
P
C
A
P
C
A
P
C
Implementation of UIMS
• menu networks • state transition diagrams
• grammar notations • event languages
• declarative languages • constraints
• graphical specification
see chapter 16 for more details on several of these
graphical specification
The drift of dialogue control
(e.g., read-evaluation loop)
(independent of application semantics or presentation)
(e.g., graphical specification)
Summary
Levels of programming support tools