SlideShare a Scribd company logo
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

10 Usability Heuristics explained
10 Usability Heuristics explained10 Usability Heuristics explained
10 Usability Heuristics explainedCraft Design
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Human Factors and User Interface Design
Human Factors and User Interface DesignHuman Factors and User Interface Design
Human Factors and User Interface DesignSaggitariusArrow
 
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 3e - Ch 9: Evaluation techniques
HCI 3e - Ch 9:  Evaluation techniquesHCI 3e - Ch 9:  Evaluation techniques
HCI 3e - Ch 9: Evaluation techniquesAlan Dix
 
HCI - Chapter 2
HCI - Chapter 2HCI - Chapter 2
HCI - Chapter 2Alan Dix
 
Models of Interaction
Models of InteractionModels of Interaction
Models of InteractionjbellWCT
 
Usability principles 1
Usability principles 1Usability principles 1
Usability principles 1Sameer Chavan
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15koolkampus
 
Usability Testing Methods
Usability Testing MethodsUsability Testing Methods
Usability Testing Methodsdillarja
 
Interaction Design
Interaction DesignInteraction Design
Interaction Designhcicourse
 
HCI 3e - Ch 5: Interaction design basics
HCI 3e - Ch 5:  Interaction design basicsHCI 3e - Ch 5:  Interaction design basics
HCI 3e - Ch 5: Interaction design basicsAlan Dix
 
Challenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesChallenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesAmol Kamble
 
Communication and collaboration models
Communication and collaboration modelsCommunication and collaboration models
Communication and collaboration modelsPhD Research Scholar
 
HCI 3e - Ch 15: Task analysis
HCI 3e - Ch 15:  Task analysisHCI 3e - Ch 15:  Task analysis
HCI 3e - Ch 15: Task analysisAlan Dix
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software processAlan Dix
 
HCI 3e - Ch 3: The interaction
HCI 3e - Ch 3:  The interactionHCI 3e - Ch 3:  The interaction
HCI 3e - Ch 3: The interactionAlan Dix
 
HCI - Chapter 3
HCI - Chapter 3HCI - Chapter 3
HCI - Chapter 3Alan Dix
 

What's hot (20)

10 Usability Heuristics explained
10 Usability Heuristics explained10 Usability Heuristics explained
10 Usability Heuristics explained
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Human Factors and User Interface Design
Human Factors and User Interface DesignHuman Factors and User Interface Design
Human Factors and User Interface Design
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
 
HCI 3e - Ch 9: Evaluation techniques
HCI 3e - Ch 9:  Evaluation techniquesHCI 3e - Ch 9:  Evaluation techniques
HCI 3e - Ch 9: Evaluation techniques
 
HCI - Chapter 2
HCI - Chapter 2HCI - Chapter 2
HCI - Chapter 2
 
Models of Interaction
Models of InteractionModels of Interaction
Models of Interaction
 
Usability principles 1
Usability principles 1Usability principles 1
Usability principles 1
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
 
Usability Testing Methods
Usability Testing MethodsUsability Testing Methods
Usability Testing Methods
 
Interaction Design
Interaction DesignInteraction Design
Interaction Design
 
Hci activity#3
Hci activity#3Hci activity#3
Hci activity#3
 
HCI 3e - Ch 5: Interaction design basics
HCI 3e - Ch 5:  Interaction design basicsHCI 3e - Ch 5:  Interaction design basics
HCI 3e - Ch 5: Interaction design basics
 
Challenges in HCI for Mobile Devices
Challenges in HCI for Mobile DevicesChallenges in HCI for Mobile Devices
Challenges in HCI for Mobile Devices
 
Communication and collaboration models
Communication and collaboration modelsCommunication and collaboration models
Communication and collaboration models
 
HCI 3e - Ch 15: Task analysis
HCI 3e - Ch 15:  Task analysisHCI 3e - Ch 15:  Task analysis
HCI 3e - Ch 15: Task analysis
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software process
 
HCI 3e - Ch 3: The interaction
HCI 3e - Ch 3:  The interactionHCI 3e - Ch 3:  The interaction
HCI 3e - Ch 3: The interaction
 
Hci [5]paradigm
Hci [5]paradigmHci [5]paradigm
Hci [5]paradigm
 
HCI - Chapter 3
HCI - Chapter 3HCI - Chapter 3
HCI - Chapter 3
 

Viewers also liked (16)

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
 
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
 
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
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_enMiya 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
 
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
 
Mk network programmability-03_en
Mk network programmability-03_enMk network programmability-03_en
Mk network programmability-03_en
 
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

Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativePeter Windle
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfbu07226
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxJenilouCasareno
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxJisc
 
NLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptxNLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptxssuserbdd3e8
 
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptx
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptxJose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptx
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptxricssacare
 
Benefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational ResourcesBenefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational Resourcesdimpy50
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfjoachimlavalley1
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chipsGeoBlogs
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsCol Mukteshwar Prasad
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasiemaillard
 
Basic Civil Engineering Notes of Chapter-6, Topic- Ecosystem, Biodiversity G...
Basic Civil Engineering Notes of Chapter-6,  Topic- Ecosystem, Biodiversity G...Basic Civil Engineering Notes of Chapter-6,  Topic- Ecosystem, Biodiversity G...
Basic Civil Engineering Notes of Chapter-6, Topic- Ecosystem, Biodiversity G...Denish Jangid
 
plant breeding methods in asexually or clonally propagated crops
plant breeding methods in asexually or clonally propagated cropsplant breeding methods in asexually or clonally propagated crops
plant breeding methods in asexually or clonally propagated cropsparmarsneha2
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersPedroFerreira53928
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345beazzy04
 
Industrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training ReportIndustrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training ReportAvinash Rai
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXMIRIAMSALINAS13
 
Accounting and finance exit exam 2016 E.C.pdf
Accounting and finance exit exam 2016 E.C.pdfAccounting and finance exit exam 2016 E.C.pdf
Accounting and finance exit exam 2016 E.C.pdfYibeltalNibretu
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
NLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptxNLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptx
 
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptx
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptxJose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptx
Jose-Rizal-and-Philippine-Nationalism-National-Symbol-2.pptx
 
Benefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational ResourcesBenefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational Resources
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Basic Civil Engineering Notes of Chapter-6, Topic- Ecosystem, Biodiversity G...
Basic Civil Engineering Notes of Chapter-6,  Topic- Ecosystem, Biodiversity G...Basic Civil Engineering Notes of Chapter-6,  Topic- Ecosystem, Biodiversity G...
Basic Civil Engineering Notes of Chapter-6, Topic- Ecosystem, Biodiversity G...
 
plant breeding methods in asexually or clonally propagated crops
plant breeding methods in asexually or clonally propagated cropsplant breeding methods in asexually or clonally propagated crops
plant breeding methods in asexually or clonally propagated crops
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
Industrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training ReportIndustrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training Report
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
Accounting and finance exit exam 2016 E.C.pdf
Accounting and finance exit exam 2016 E.C.pdfAccounting and finance exit exam 2016 E.C.pdf
Accounting and finance exit exam 2016 E.C.pdf
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
 

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