Download Implementation support Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Computer cluster wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Go (programming language) wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Design Patterns wikipedia , lookup

Structured programming wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Application Interface Specification wikipedia , lookup

Transcript
Implementation support
Overview
• programming tools provide levels of services for
programmers
• windowing systems as core support for separate
and simultaneous user-system threads
• programming the application and control of
dialogue
• interaction toolkits bring programming closer to
level of user perception
• user interface management systems help to
control relationship between presentation and
functionality of objects
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
Introduction
Up to now, our concern has been slanted away from
concerns of the actual programmer.
Advances in coding have elevated programming
from hardware-specific to interaction techniquespecific.
Layers of development tools
• windowing systems
• interaction toolkits
• user interface management systems
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(1)
Elements of windowing systems
Device independence
programming the abstract terminal
device drivers
image models for output and (partially) input
• pixels
• Graphical Kernel System (GKS)
• Programmers' Hierarchical Interface to
Graphics (PHIGS)
• PostScript
Resource sharing
achieving simultaneity of user tasks
window system supports independent
processes
isolation of individual applications
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(2)
The roles of a windowing system
application
program
Windowing
System
application
program
application
program
multiple
application
control
device
independence
Window
2
mouse
Window
1
keyboard
Window
n
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(3)
Architectures of windowing systems
3 possible software architectures
all assume device driver is separate
differ in how multiple application management is
implemented
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
the client-server architecture
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(4)
The client-server architecture
Clients
Client
Application
1
Client
Application
2
Client
Application
n
Abstract
Terminal
1
Abstract
Terminal
2
Abstract
Terminal
n
Server
Resource
Manager
Device
Driver
Window
2
Devices
mouse
Window
1
keyboard
Window
n
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(5)
The X Window System architecture
application
client
X11 server
window
manager
client
device drivers
mouse
keyboard
pixel imaging model with some pointing mechanism
X protocol defines server-client communication
separate window manager client enforces policies
for input/output:
• how to change input focus
• tiled vs. overlapping windows
• inter-client data transfer
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(6)
Programming the application
2 programming paradigms
1.
read-evaluation loop
Client
Application
start
read input
Device
Server
process input
no
quit?
yes
end
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
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(7)
Programming the application (cont'd)
2.
notification-based
Application
Notifier
start
register
callbacks
with notifier
call
notifier
read input
end
process event
send to
appropriate
callback
callback
request
quit?
no
yes
see Figure 10.6 for sample program
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(8)
Using toolkits
Interaction objects
input and output intrinsically linked
click
Button
Button
Button
move
press
Button
release
Button
move
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
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10
(9)
User Interface Management Systems
UIMS add another level above toolkits
toolkits too difficult for non-programmers
alternatively:
UI development system (UIDS)
UI development environment (UIDE)
As a conceptual architecture
provides separation between application
semantics and presentation, improving:
portability
reusability
multiple interfaces
customizability
identifies roles (e.g., Seeheim)
presentation component
dialogue control
application interface model
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10 (10)
Implementation of UIMS
Techniques for dialogue controller
menu networks
grammar notations
state transition diagrams
event languages
declarative languages
constraints
graphical specification
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)
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10 (11)
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
Human–Computer Interaction, Prentice Hall
A. Dix, J. Finlay, G. Abowd and R. Beale © 1993
Implementation support
Chapter 10 (12)