SlideShare a Scribd company logo
CHAPTER 6
IMPLEMENTATION
SUPPORT
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
How does HCI affect of the programmer?
Advances in coding have elevated programming
hardware specific
 interaction-technique specific
Layers of development tools
• windowing systems
• interaction toolkits
• user interface management systems
ELEMENTS OF WINDOWING
SYSTEMS
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
There are three 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
X WINDOWS ARCHITECTURE
X WINDOWS ARCHITECTURE (CTD)
• 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
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
• 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
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
move press release move
INTERFACES IN JAVA
• Java toolkit – AWT (abstract windowing toolkit)
• Java classes for buttons, menus, etc.
• 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
• separation between application semantics
and presentation
• 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
SEEHEIM MODEL
Presentation
Dialogue
Control
Functionality
(application
interface)
USERUSER APPLICATION
switch
lexical syntactic semantic
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
• but not conceptual
SEMANTIC FEEDBACK
• different kinds of feedback:
• lexical – movement of mouse
• syntactic – menu highlights
• semantic – sum of numbers changes
• semantic feedback often slower
• use rapid lexical/syntactic feedback
• but may need rapid semantic feedback
• freehand drawing
• highlight trash can or folder when file dragged
MONOLITHIC VS. COMPONENTS
• Seeheim has big components
• often easier to use smaller ones
• esp. if using object-oriented toolkits
• Smalltalk used MVC – model–view–controller
• model – internal logical state of component
• view – how it is rendered on screen
• controller – processes user input
MVC
MODEL - VIEW - CONTROLLER
model
view
controller
MVC ISSUES
• MVC is largely pipeline model:
input  control  model  view  output
• but in graphical interface
• input only has meaning in relation to output
e.g. mouse click
• need to know what was clicked
• controller has to decide what to do with click
• but view knows what is shown where!
• in practice controller ‘talks’ to view
• separation not complete
PAC MODEL
• PAC model closer to Seeheim
• abstraction – logical state of component
• presentation – manages input and output
• control – mediates between them
• manages hierarchy and multiple views
• control part of PAC objects communicate
• PAC cleaner in many ways …
but MVC used more in practice
(e.g. Java Swing)
PAC
PRESENTATION - ABSTRACTION - CONTROL
abstraction presentation
control
A P
C
A P
C
A P
C A P
C
IMPLEMENTATION OF UIMS
• Techniques for dialogue controller
• menu networks • state transition diagrams
• grammar notations • event languages
• declarative languages • constraints
• graphical specification
• for most of these see chapter 16
• 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)
see chapter 16 for more details on several of these
GRAPHICAL SPECIFICATION
• 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
• local vs. global
• hard to ‘see’ the paths through system
• 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)

More Related Content

PPT
HCI 3e - Ch 6: HCI in the software process
PPT
HCI - Chapter 3
PPT
HCI - Chapter 6
PPT
HCI - Chapter 4
PPT
HCI 3e - Ch 10: Universal design
PPT
HCI 3e - Ch 5: Interaction design basics
PPT
HCI 3e - Ch 15: Task analysis
PPT
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
HCI 3e - Ch 6: HCI in the software process
HCI - Chapter 3
HCI - Chapter 6
HCI - Chapter 4
HCI 3e - Ch 10: Universal design
HCI 3e - Ch 5: Interaction design basics
HCI 3e - Ch 15: Task analysis
HCI 3e - Ch 20: Ubiquitous computing and augmented realities

What's hot (20)

PPT
HCI 3e - Ch 4: Paradigms
PPT
HCI 3e - Ch 8: Implementation support
PPT
HCI - Chapter 2
PPT
HCI 3e - Ch 19: Groupware
PPTX
Hci in-the-software-process-1
PPT
HCI 3e - Ch 3: The interaction
PPT
HCI 3e - Ch 7: Design rules
PPT
HCI 3e - Ch 2: The computer
PPT
HCI - Chapter 1
PPTX
Hci in software process
PPT
HCI 3e - Ch 16: Dialogue notations and design
PDF
The Mobile Ecosystem
PPT
HCI 3e - Ch 14: Communication and collaboration models
PDF
Introduction to Interaction Design
PDF
Human Computer Interaction Chapter 2
PPTX
evaluation techniques in HCI
PPT
HCI 3e - Ch 9: Evaluation techniques
PPTX
User Centered Design
PPT
Design rules Human computer interaction.ppt
PPTX
Human Computer Interaction - Interaction Design
HCI 3e - Ch 4: Paradigms
HCI 3e - Ch 8: Implementation support
HCI - Chapter 2
HCI 3e - Ch 19: Groupware
Hci in-the-software-process-1
HCI 3e - Ch 3: The interaction
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 2: The computer
HCI - Chapter 1
Hci in software process
HCI 3e - Ch 16: Dialogue notations and design
The Mobile Ecosystem
HCI 3e - Ch 14: Communication and collaboration models
Introduction to Interaction Design
Human Computer Interaction Chapter 2
evaluation techniques in HCI
HCI 3e - Ch 9: Evaluation techniques
User Centered Design
Design rules Human computer interaction.ppt
Human Computer Interaction - Interaction Design
Ad

Similar to Chapter 6 implementation support (20)

PPT
E3 chap-08
PPT
e3-chap-08.ppt
PPS
Vp all slides
PPTX
User interface software tools past present and future
PPT
software-tools-part-1.ppt
PPTX
INTERACTION AND INTERFACES MODEL OF THE INTERACTION
PDF
User interface & structure
PDF
SWE-401 - 8. Software User Interface Design
PPTX
HCI_Unit 5.pptxcxxsabc.sbc/,sabc,sajcsl/lkc bxsl/'ck
PPTX
Preliminary Software Design and Development User Interface Considerations
PPTX
User Interface Layer.pptx
PPTX
User interface design elements.pptx fyiiyyj
PPTX
HCI Presentation
PPT
Implementation
PPTX
HUMAN COMPUTER INTERACTION.pptx
PPTX
Class1
PPT
Software Architecture and Design Details Module
PPT
Hci lecture set_03_00
E3 chap-08
e3-chap-08.ppt
Vp all slides
User interface software tools past present and future
software-tools-part-1.ppt
INTERACTION AND INTERFACES MODEL OF THE INTERACTION
User interface & structure
SWE-401 - 8. Software User Interface Design
HCI_Unit 5.pptxcxxsabc.sbc/,sabc,sajcsl/lkc bxsl/'ck
Preliminary Software Design and Development User Interface Considerations
User Interface Layer.pptx
User interface design elements.pptx fyiiyyj
HCI Presentation
Implementation
HUMAN COMPUTER INTERACTION.pptx
Class1
Software Architecture and Design Details Module
Hci lecture set_03_00
Ad

More from MLG College of Learning, Inc (20)

PPTX
PPTX
PC111-lesson1.pptx
PPTX
PC LEESOON 6.pptx
PPTX
PC 106 PPT-09.pptx
PPTX
PPTX
PPTX
PPTX
PC 106 Slide no.02
PPTX
PPTX
PPTX
PC 106 Slide 1.pptx
PDF
Db2 characteristics of db ms
PDF

Recently uploaded (20)

PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Classroom Observation Tools for Teachers
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
RMMM.pdf make it easy to upload and study
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
GDM (1) (1).pptx small presentation for students
PPTX
Cell Types and Its function , kingdom of life
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Classroom Observation Tools for Teachers
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Microbial diseases, their pathogenesis and prophylaxis
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
RMMM.pdf make it easy to upload and study
Supply Chain Operations Speaking Notes -ICLT Program
102 student loan defaulters named and shamed – Is someone you know on the list?
human mycosis Human fungal infections are called human mycosis..pptx
VCE English Exam - Section C Student Revision Booklet
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
STATICS OF THE RIGID BODIES Hibbelers.pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
GDM (1) (1).pptx small presentation for students
Cell Types and Its function , kingdom of life

Chapter 6 implementation support

  • 2. 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
  • 3. INTRODUCTION How does HCI affect of the programmer? Advances in coding have elevated programming hardware specific  interaction-technique specific Layers of development tools • windowing systems • interaction toolkits • user interface management systems
  • 4. ELEMENTS OF WINDOWING SYSTEMS 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
  • 5. ROLES OF A WINDOWING SYSTEM
  • 6. ARCHITECTURES OF WINDOWING SYSTEMS There are three 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
  • 9. X WINDOWS ARCHITECTURE (CTD) • 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
  • 10. 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
  • 11. 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 }
  • 12. 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
  • 13. USING TOOLKITS Interaction objects • input and output intrinsically linked 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 move press release move
  • 14. INTERFACES IN JAVA • Java toolkit – AWT (abstract windowing toolkit) • Java classes for buttons, menus, etc. • 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)
  • 15. 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
  • 16. UIMS AS CONCEPTUAL ARCHITECTURE • separation between application semantics and presentation • improves: • portability – runs on different systems • reusability – components reused cutting costs • multiple interfaces – accessing same functionality • customizability – by designer and user
  • 17. UIMS TRADITION – INTERFACE LAYERS / LOGICAL COMPONENTS • linguistic: lexical/syntactic/semantic • Seeheim: • Arch/Slinky
  • 19. 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 • but not conceptual
  • 20. SEMANTIC FEEDBACK • different kinds of feedback: • lexical – movement of mouse • syntactic – menu highlights • semantic – sum of numbers changes • semantic feedback often slower • use rapid lexical/syntactic feedback • but may need rapid semantic feedback • freehand drawing • highlight trash can or folder when file dragged
  • 21. MONOLITHIC VS. COMPONENTS • Seeheim has big components • often easier to use smaller ones • esp. if using object-oriented toolkits • Smalltalk used MVC – model–view–controller • model – internal logical state of component • view – how it is rendered on screen • controller – processes user input
  • 22. MVC MODEL - VIEW - CONTROLLER model view controller
  • 23. MVC ISSUES • MVC is largely pipeline model: input  control  model  view  output • but in graphical interface • input only has meaning in relation to output e.g. mouse click • need to know what was clicked • controller has to decide what to do with click • but view knows what is shown where! • in practice controller ‘talks’ to view • separation not complete
  • 24. PAC MODEL • PAC model closer to Seeheim • abstraction – logical state of component • presentation – manages input and output • control – mediates between them • manages hierarchy and multiple views • control part of PAC objects communicate • PAC cleaner in many ways … but MVC used more in practice (e.g. Java Swing)
  • 25. PAC PRESENTATION - ABSTRACTION - CONTROL abstraction presentation control A P C A P C A P C A P C
  • 26. IMPLEMENTATION OF UIMS • Techniques for dialogue controller • menu networks • state transition diagrams • grammar notations • event languages • declarative languages • constraints • graphical specification • for most of these see chapter 16 • 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) see chapter 16 for more details on several of these
  • 27. GRAPHICAL SPECIFICATION • 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 • local vs. global • hard to ‘see’ the paths through system • focus on what can be seen on one screen
  • 28. 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)