SlideShare a Scribd company logo
1 of 33
chapter 8

implementation support
Implementation support
• programming tools
– levels of services for programmers

• windowing systems
– core support for separate and simultaneous usersystem 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
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
• hard with notification

(just have extra read-event loop)
(need lots of mode flags)

– non-modal dialogue box
• hard with event-loop
• easy with notification

(very complicated main loop)
(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

move

press

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

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:
• Seeheim:
• Arch/Slinky

lexical/syntactic/semantic
presentation

dialogue

application

dialogue
func. core
adaptor

functional
core

lexical

physical
Seeheim model
lexical
USER
USER

syntactic

semantic

Presentation

Dialogue
Control

Functionality
(application
interface)

switch

APPLICATION
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

presentation

dialogue

application
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
what’s this?
Lexical
USER

Syntactic

Semantic

Presentation

Dialogue
Control

Application
Interface
Model

APPLICATION
the bypass/switch
Lexical
USER

Syntactic

Semantic

Presentation

Dialogue
Control

Application
Interface
Model

rapid semantic
feedback

APPLICATION

direct communication
between application
and presentation
but regulated by
dialogue control
more layers!

dialogue
func. core
adaptor

functional
core

lexical

physical
Arch/Slinky
• more layers! – distinguishes lexical/physical
• like a ‘slinky’ spring different layers may be
thicker (more important) in different systems
• or in different components
dialogue
func. core
adaptor

functional
core

lexical

physical
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

view

model
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
A

C

P

abstraction

A

C

P

presentation

control

A

C

P

A

C

P
Implementation of UIMS
• Techniques for dialogue controller
•
•
•
•

menu networks
grammar notations
declarative languages
graphical specification

• state transition diagrams
• event languages
• constraints

– 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)
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

More Related Content

What's hot

Advance peripheral devices
Advance peripheral devicesAdvance peripheral devices
Advance peripheral devicesRohit Jain
 
HCI 3e - Ch 2: The computer
HCI 3e - Ch 2:  The computerHCI 3e - Ch 2:  The computer
HCI 3e - Ch 2: The computerAlan Dix
 
HCI 3e - Ch 10: Universal design
HCI 3e - Ch 10:  Universal designHCI 3e - Ch 10:  Universal design
HCI 3e - Ch 10: Universal designAlan Dix
 
Iteration and prototyping
Iteration and prototypingIteration and prototyping
Iteration and prototypingHafizMImran1
 
Human Computer Interaction HCI
Human Computer Interaction HCI Human Computer Interaction HCI
Human Computer Interaction HCI Gaditek
 
evaluation techniques in HCI
evaluation techniques in HCIevaluation techniques in HCI
evaluation techniques in HCIsawsan slii
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation supportAlan Dix
 
Hci chapter-1
Hci chapter-1Hci chapter-1
Hci chapter-1devid8
 
HCI - Chapter 3
HCI - Chapter 3HCI - Chapter 3
HCI - Chapter 3Alan Dix
 
Human computer interaction -Input output channel with Scenario
Human computer interaction -Input output channel with ScenarioHuman computer interaction -Input output channel with Scenario
Human computer interaction -Input output channel with ScenarioN.Jagadish Kumar
 
Human Computer Interaction Introduction
Human Computer Interaction IntroductionHuman Computer Interaction Introduction
Human Computer Interaction IntroductionN.Jagadish Kumar
 
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
HCI 3e - Ch 20:  Ubiquitous computing and augmented realitiesHCI 3e - Ch 20:  Ubiquitous computing and augmented realities
HCI 3e - Ch 20: Ubiquitous computing and augmented realitiesAlan Dix
 

What's hot (20)

Advance peripheral devices
Advance peripheral devicesAdvance peripheral devices
Advance peripheral devices
 
HCI 3e - Ch 2: The computer
HCI 3e - Ch 2:  The computerHCI 3e - Ch 2:  The computer
HCI 3e - Ch 2: The computer
 
HCI 3e - Ch 10: Universal design
HCI 3e - Ch 10:  Universal designHCI 3e - Ch 10:  Universal design
HCI 3e - Ch 10: Universal design
 
Iteration and prototyping
Iteration and prototypingIteration and prototyping
Iteration and prototyping
 
Human Computer Interaction HCI
Human Computer Interaction HCI Human Computer Interaction HCI
Human Computer Interaction HCI
 
evaluation techniques in HCI
evaluation techniques in HCIevaluation techniques in HCI
evaluation techniques in HCI
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
 
drag and drop.pdf
drag and drop.pdfdrag and drop.pdf
drag and drop.pdf
 
Hci chapter-1
Hci chapter-1Hci chapter-1
Hci chapter-1
 
HCI - Chapter 3
HCI - Chapter 3HCI - Chapter 3
HCI - Chapter 3
 
Human computer interaction -Input output channel with Scenario
Human computer interaction -Input output channel with ScenarioHuman computer interaction -Input output channel with Scenario
Human computer interaction -Input output channel with Scenario
 
Hci activity#3
Hci activity#3Hci activity#3
Hci activity#3
 
Introduction To HCI
Introduction To HCIIntroduction To HCI
Introduction To HCI
 
Chapter 4 interaction design
Chapter 4 interaction designChapter 4 interaction design
Chapter 4 interaction design
 
Prototyping
PrototypingPrototyping
Prototyping
 
Human Computer Interaction Introduction
Human Computer Interaction IntroductionHuman Computer Interaction Introduction
Human Computer Interaction Introduction
 
Hypertext, multimedia and www
Hypertext, multimedia and wwwHypertext, multimedia and www
Hypertext, multimedia and www
 
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
HCI 3e - Ch 20:  Ubiquitous computing and augmented realitiesHCI 3e - Ch 20:  Ubiquitous computing and augmented realities
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
 
The interaction HCI
The interaction HCIThe interaction HCI
The interaction HCI
 
Rasberry pi
 Rasberry pi Rasberry pi
Rasberry pi
 

Viewers also liked (17)

E3 chap-16
E3 chap-16E3 chap-16
E3 chap-16
 
Ch5 process synchronization
Ch5   process synchronizationCh5   process synchronization
Ch5 process synchronization
 
Ch10 file system interface
Ch10   file system interfaceCh10   file system interface
Ch10 file system interface
 
E3 chap-01
E3 chap-01E3 chap-01
E3 chap-01
 
E3 chap-02
E3 chap-02E3 chap-02
E3 chap-02
 
Ch8
Ch8Ch8
Ch8
 
Hci [5]paradigm
Hci [5]paradigmHci [5]paradigm
Hci [5]paradigm
 
Rekayasa perankat lunak jilit 1
Rekayasa perankat lunak jilit 1Rekayasa perankat lunak jilit 1
Rekayasa perankat lunak jilit 1
 
E3 chap-21
E3 chap-21E3 chap-21
E3 chap-21
 
Presentasi Pemrograman Berbasis Objek
Presentasi Pemrograman Berbasis ObjekPresentasi Pemrograman Berbasis Objek
Presentasi Pemrograman Berbasis Objek
 
Ch21
Ch21Ch21
Ch21
 
Ch7
Ch7Ch7
Ch7
 
Ch4 threads
Ch4   threadsCh4   threads
Ch4 threads
 
Peluang bersyarat
Peluang bersyaratPeluang bersyarat
Peluang bersyarat
 
Ch5
Ch5Ch5
Ch5
 
Ch13
Ch13Ch13
Ch13
 
E3 chap-13
E3 chap-13E3 chap-13
E3 chap-13
 

Similar to E3 chap-08

Re-structuring of a swing-based application into an Eclipse RCP
Re-structuring of a swing-based application into an Eclipse RCPRe-structuring of a swing-based application into an Eclipse RCP
Re-structuring of a swing-based application into an Eclipse RCPgustavoeliano
 
Pipecut - slides from presentation at MeetBSD California 2014
Pipecut - slides from presentation at MeetBSD California 2014Pipecut - slides from presentation at MeetBSD California 2014
Pipecut - slides from presentation at MeetBSD California 2014david_w_maxwell
 
eRCP Overview and Update '06
eRCP Overview  and Update '06eRCP Overview  and Update '06
eRCP Overview and Update '06Gorkem Ercan
 
Attach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkAttach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkJean Vanderdonckt
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectureselliando dias
 
Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.Nagasuri Bala Venkateswarlu
 
Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0DivyaR219113
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_enMiya Kohno
 
Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Miya Kohno
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimicsKalica Wadhwa
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Designghayour abbas
 
software-tools-part-1.ppt
software-tools-part-1.pptsoftware-tools-part-1.ppt
software-tools-part-1.pptSadiaZar1
 

Similar to E3 chap-08 (20)

e3-chap-08.ppt
e3-chap-08.ppte3-chap-08.ppt
e3-chap-08.ppt
 
Chapter 6 implementation support
Chapter 6 implementation supportChapter 6 implementation support
Chapter 6 implementation support
 
E3 chap-08
E3 chap-08E3 chap-08
E3 chap-08
 
Gui
GuiGui
Gui
 
Re-structuring of a swing-based application into an Eclipse RCP
Re-structuring of a swing-based application into an Eclipse RCPRe-structuring of a swing-based application into an Eclipse RCP
Re-structuring of a swing-based application into an Eclipse RCP
 
Pipecut - slides from presentation at MeetBSD California 2014
Pipecut - slides from presentation at MeetBSD California 2014Pipecut - slides from presentation at MeetBSD California 2014
Pipecut - slides from presentation at MeetBSD California 2014
 
eRCP Overview and Update '06
eRCP Overview  and Update '06eRCP Overview  and Update '06
eRCP Overview and Update '06
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Authoring metaphors
Authoring metaphorsAuthoring metaphors
Authoring metaphors
 
Attach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you WorkAttach Me, Detach Me, Assemble Me like you Work
Attach Me, Detach Me, Assemble Me like you Work
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectures
 
Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.Swift: A parallel scripting for applications at the petascale and beyond.
Swift: A parallel scripting for applications at the petascale and beyond.
 
Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_en
 
Declarative Programming and a form of SDN
Declarative Programming and a form of SDN Declarative Programming and a form of SDN
Declarative Programming and a form of SDN
 
A Peek in to Elm Architecture
A Peek in to Elm ArchitectureA Peek in to Elm Architecture
A Peek in to Elm Architecture
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimics
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Design
 
software-tools-part-1.ppt
software-tools-part-1.pptsoftware-tools-part-1.ppt
software-tools-part-1.ppt
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
 

Recently uploaded

Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 

Recently uploaded (20)

Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 

E3 chap-08

  • 2. Implementation support • programming tools – levels of services for programmers • windowing systems – core support for separate and simultaneous usersystem 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 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 • hard with notification (just have extra read-event loop) (need lots of mode flags) – non-modal dialogue box • hard with event-loop • easy with notification (very complicated main loop) (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 move press 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 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: • Seeheim: • Arch/Slinky lexical/syntactic/semantic presentation dialogue application dialogue func. core adaptor functional core lexical physical
  • 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 presentation dialogue application
  • 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
  • 24. Arch/Slinky • more layers! – distinguishes lexical/physical • like a ‘slinky’ spring different layers may be thicker (more important) in different systems • or in different components dialogue func. core adaptor functional core lexical physical
  • 25. 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
  • 26. MVC model - view - controller view model controller
  • 27. 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
  • 28. 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)
  • 29. PAC presentation - abstraction - control A C P abstraction A C P presentation control A C P A C P
  • 30. Implementation of UIMS • Techniques for dialogue controller • • • • menu networks grammar notations declarative languages graphical specification • state transition diagrams • event languages • constraints – 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
  • 31. 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
  • 32. 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)
  • 33. 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