Design Rules and Implementation Support
Design Rules and Implementation Support
Design Rules and Implementation Support
Learnability
usability
Flexibility
Robustness
Synthesizability
assessing the effect of past actions
Honesty when an operation changes some aspect of the internal
state, it is important that the change is seen by the user
immediate vs. eventual honesty
Task migration
passing responsibility for task execution between user and system
Example Spell-checking
sufficient training time be allotted for codes, mnemonics, and sequences of actions
21 Norman’s 7 Principles
1. Use both knowledge in the world and knowledge in the head.
provide the necessary knowledge within the environment
2. Simplify the structure of tasks.
3. Make things visible: bridge the gulfs of Execution and Evaluation.
The more visible functions are, the more likely users will be able to know
what to do next
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.
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
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
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
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)
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
Seeheim:
Arch/Slinky
presentation dialogue application
dialogue
func. core
adaptor 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!
Application
Dialogue
USER Presentation Interface APPLICATION
Control
Model
the bypass/switch
Application
Dialogue
USER Presentation Interface APPLICATION
Control
Model
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
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