Chapter 6
Chapter 6
Chapter 6
increasing generality
increasing generality
specific design rules
high authority and limited application
measurable
Standar ds
e.g. use color RGB #1010D0 on home links
Guidelines
lower authority increasing authority
increasing authority
more general application
advice on how to achieve principles
e.g. use color to highlight links
Design Rules 1/29/2017
5 Principles to support usability
Learnability
usability
Flexibility
Robustness
Task migration
passing responsibility for task execution between user and system
Example Spell-checking
Characteristics of patterns
capture design practice not theory
capture the essential common properties of good examples
of design
represent design knowledge at varying levels: social,
organisational, conceptual, detailed
are not neutral but embody values within their rationale.
are intuitive and readable and can therefore be used for
communication between all stakeholders
a pattern language should be generative and assist in the
development of complete designs.
Implementation support
• programming tools
– levels of services for programmers
• windowing systems
– core support for separate and simultaneous user-system 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
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
three possible software architectures
– all assume device driver is separate
– differ in how multiple application management is implemented
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
– input and output
intrinsically linked
• Notification based;
– AWT 1.0 – need to subclass basic widgets
– AWT 1.1 and beyond -– callback objects
• Swing toolkit
– built on top of AWT – higher level features
– uses MVC architecture (see later)
User Interface Management Systems
(UIMS)
• UIMS add another level above toolkits
– toolkits too difficult for non-programmers
• concerns of UIMS
– conceptual architecture
– implementation techniques
– support infrastructure
• non-UIMS terms:
– UI development system (UIDS)
– UI development environment (UIDE)
• e.g. Visual Basic
UIMS as conceptual architecture
• improves:
– portability – runs on different systems
– reusability – components reused cutting costs
– multiple interfaces – accessing same functionality
– customizability – by designer and user
UIMS tradition – interface layers / logical
components
• linguistic: lexical/syntactic/semantic
lexical
functional
core physical
Seeheim model
Functionality
Dialogue
USER
USER Presentation (application APPLICATION
Control
interface)
switch
conceptual vs. implementation
Seeheim
– arose out of implementation experience
– but principal contribution is conceptual
– concepts part of ‘normal’ UI language
… because of Seeheim …
… we think differently!
e.g. the lower box, the switch
• needed for implementation
presentation dialogue application
• but not conceptual
semantic feedback
direct communication
rapid semantic between application
and presentation
feedback but regulated by
dialogue control
more layers!
dialogue
func. core
adaptor lexical
functional
core physical
Arch/Slinky
functional
core physical
monolithic vs. components
view
model
controller
MVC issues
A P A P
C C
abstraction presentation
control
A P
C A P
C
Implementation of UIMS
• N.B. constraints
– instead of what happens say what should be true
– used in groupware as well as single user interfaces
(ALV - abstraction–link–view)
• 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
• internal control
(e.g., read-evaluation loop)
• external control
(independent of application semantics or presentation)
• presentation control
(e.g., graphical specification)
Summary