Chapter 8 Implementation Support
Chapter 8 Implementation Support
ROMASANTA
Chapter 8
IMPLEMENTATION
SUPPORT
IMPLEMENTATION SUPPORT
programming tools
o levels of services for programmers
windowing systems
o core support for separate and simultaneous user-system activity
programming the application and control of dialogue
interaction toolkits
o bring programming closer to level of user perception
user interface management systems
o controls relationship between presentation and functionality
INTRODUCTION
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
ROLES OF A WINDOWING SYSTEM
ARCHITECTURES OF WINDOWING SYSTEMS
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
o input and output
intrinsically linked
move press release move
Notification based;
o AWT 1.0 – need to subclass basic widgets
o AWT 1.1 and beyond -– callback objects
Swing toolkit
o built on top of AWT – higher level features
o uses MVC architecture (see later)
USER INTERFACE MANAGEMENT
SYSTEMS (UIMS)
concerns of UIMS
o conceptual architecture
o implementation techniques
o support infrastructure
non-UIMS terms:
o UI development system (UIDS)
o UI development environment (UIDE)
e.g. Visual Basic
UIMS AS CONCEPTUAL ARCHITECTURE
linguistic: lexical/syntactic/semantic
presentation dialogue applicatio n
Seeheim: dialogue
func. core
adaptor lexical
functio nal
core physical
Arch/Slinky
SEEHEIM MODEL
Functionality
Dialogue
USER
USER Presentation (application APPLICATION
Control
interface)
switch
CONCEPTUAL VS. IMPLEMENTATION
Seeheim
o arose out of implementation experience
o but principal contribution is conceptual
o concepts part of ‘normal’ UI language
… because of Seeheim …
… we think differently!
direct communication
between application
rapid semantic and presentation
feedback but regulated by
dialogue control
MORE LAYERS!
dialogue
func. core
adaptor lexical
functio nal
core physical
ARCH/SLINKY
functio nal
core physical
MONOLITHIC VS. COMPONENTS
view
model
controller
MVC ISSUES
A P A P
C C
abstraction presentation
control
A P
A P
C
C
IMPLEMENTATION OF UIMS
Techniques for dialogue controller
• menu networks • state transition diagrams
• grammar notations • event languages
• declarative languages • constraints
• graphical specification
N.B. constraints
o instead of what happens say what should be true
o used in groupware as well as single user interfaces
(ALV - abstraction–link–view)
see chapter 16 for more details on several of these
GRAPHICAL SPECIFICATION
what it is
o draw components on screen
o set actions with script or links to program
in use
o with raw programming most popular technique
o e.g. Visual Basic, Dreamweaver, Flash
local vs. global
o hard to ‘see’ the paths through system
o focus on what can be seen on one screen
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)
SUMMARY
Levels of programming support tools
Windowing systems
o device independence
o multiple tasks
Paradigms for programming the application
o read-evaluation loop
o notification-based
Toolkits
o programming interaction objects
UIMS
o conceptual architectures for separation
o techniques for expressing dialogue
THANKS!
Any questions?
You can find me at
[email protected]