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 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
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)
USER
USER 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
what’s this?
the bypass/switch
rapid semantic
feedback
direct communication
between application
and presentation
but regulated by
dialogue control
more layers!
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
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)
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

Similar to e3-chap-08.ppt

e3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst ratee3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst rateseidmohammed44
 
e3-chap-03.ppt
e3-chap-03.ppte3-chap-03.ppt
e3-chap-03.pptKingSh2
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationSalocin Dot TEN
 
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
 
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
 
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
 
2014 - Lumina DE Overview
2014 - Lumina DE Overview2014 - Lumina DE Overview
2014 - Lumina DE OverviewKen Moore
 
Slide 4 - User Interface Design.pptx interface rather than its functionality ...
Slide 4 - User Interface Design.pptx interface rather than its functionality ...Slide 4 - User Interface Design.pptx interface rather than its functionality ...
Slide 4 - User Interface Design.pptx interface rather than its functionality ...DennisAnaafi1
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 
Accessibility in pattern libraries
Accessibility in pattern librariesAccessibility in pattern libraries
Accessibility in pattern librariesRuss Weakley
 
eRCP Overview and Update '06
eRCP Overview  and Update '06eRCP Overview  and Update '06
eRCP Overview and Update '06Gorkem Ercan
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009marcelesser
 

Similar to e3-chap-08.ppt (20)

e3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst ratee3-chap-03.power point presentaion on interst rate
e3-chap-03.power point presentaion on interst rate
 
e3-chap-03.ppt
e3-chap-03.ppte3-chap-03.ppt
e3-chap-03.ppt
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 Documentation
 
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
 
Gui
GuiGui
Gui
 
Authoring metaphors
Authoring metaphorsAuthoring metaphors
Authoring metaphors
 
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
 
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.
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Epc 3.ppt
Epc 3.pptEpc 3.ppt
Epc 3.ppt
 
2014 - Lumina DE Overview
2014 - Lumina DE Overview2014 - Lumina DE Overview
2014 - Lumina DE Overview
 
Slide 4 - User Interface Design.pptx interface rather than its functionality ...
Slide 4 - User Interface Design.pptx interface rather than its functionality ...Slide 4 - User Interface Design.pptx interface rather than its functionality ...
Slide 4 - User Interface Design.pptx interface rather than its functionality ...
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Accessibility in pattern libraries
Accessibility in pattern librariesAccessibility in pattern libraries
Accessibility in pattern libraries
 
Interaction.pptx
Interaction.pptxInteraction.pptx
Interaction.pptx
 
eRCP Overview and Update '06
eRCP Overview  and Update '06eRCP Overview  and Update '06
eRCP Overview and Update '06
 
Chapter 1-Note.docx
Chapter 1-Note.docxChapter 1-Note.docx
Chapter 1-Note.docx
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 

More from nazimsattar

Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptxnazimsattar
 
vehiculr networks.ppt
vehiculr networks.pptvehiculr networks.ppt
vehiculr networks.pptnazimsattar
 
ad-hoc 16 4 2018.ppt
ad-hoc 16 4 2018.pptad-hoc 16 4 2018.ppt
ad-hoc 16 4 2018.pptnazimsattar
 
Cellular Wireless Networks p1 chap 2.pptx
Cellular Wireless Networks p1 chap 2.pptxCellular Wireless Networks p1 chap 2.pptx
Cellular Wireless Networks p1 chap 2.pptxnazimsattar
 
Cellular Wireless Networks part2.pptx
Cellular Wireless Networks part2.pptxCellular Wireless Networks part2.pptx
Cellular Wireless Networks part2.pptxnazimsattar
 
parallel programming.ppt
parallel programming.pptparallel programming.ppt
parallel programming.pptnazimsattar
 

More from nazimsattar (20)

Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptx
 
ch10.ppt
ch10.pptch10.ppt
ch10.ppt
 
vehiculr networks.ppt
vehiculr networks.pptvehiculr networks.ppt
vehiculr networks.ppt
 
ad-hoc 16 4 2018.ppt
ad-hoc 16 4 2018.pptad-hoc 16 4 2018.ppt
ad-hoc 16 4 2018.ppt
 
Cellular Wireless Networks p1 chap 2.pptx
Cellular Wireless Networks p1 chap 2.pptxCellular Wireless Networks p1 chap 2.pptx
Cellular Wireless Networks p1 chap 2.pptx
 
Cellular Wireless Networks part2.pptx
Cellular Wireless Networks part2.pptxCellular Wireless Networks part2.pptx
Cellular Wireless Networks part2.pptx
 
slides11.ppt
slides11.pptslides11.ppt
slides11.ppt
 
types of DS.ppt
types of DS.ppttypes of DS.ppt
types of DS.ppt
 
parallel programming.ppt
parallel programming.pptparallel programming.ppt
parallel programming.ppt
 
slides10.ppt
slides10.pptslides10.ppt
slides10.ppt
 
slides9.ppt
slides9.pptslides9.ppt
slides9.ppt
 
slides8.ppt
slides8.pptslides8.ppt
slides8.ppt
 
slides7.ppt
slides7.pptslides7.ppt
slides7.ppt
 
slides6.ppt
slides6.pptslides6.ppt
slides6.ppt
 
slides5.ppt
slides5.pptslides5.ppt
slides5.ppt
 
slides4.ppt
slides4.pptslides4.ppt
slides4.ppt
 
slides2.ppt
slides2.pptslides2.ppt
slides2.ppt
 
chap2.ppt
chap2.pptchap2.ppt
chap2.ppt
 
351101835.pptx
351101835.pptx351101835.pptx
351101835.pptx
 
351101042.ppt
351101042.ppt351101042.ppt
351101042.ppt
 

Recently uploaded

(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...ranjana rawat
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptxVanshNarang19
 
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...Amil baba
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130Suhani Kapoor
 
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk GurgaonCheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk GurgaonDelhi Call girls
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxjanettecruzeiro1
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...Pooja Nehwal
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsCharles Obaleagbon
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girlsmodelanjalisharma4
 
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
SCRIP Lua HTTP PROGRACMACION PLC  WECON CASCRIP Lua HTTP PROGRACMACION PLC  WECON CA
SCRIP Lua HTTP PROGRACMACION PLC WECON CANestorGamez6
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfParomita Roy
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Roomdivyansh0kumar0
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130Suhani Kapoor
 
Cosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable BricksCosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable Bricksabhishekparmar618
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...Call girls in Ahmedabad High profile
 

Recently uploaded (20)

young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptx
 
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...
NO1 Trending kala jadu Love Marriage Black Magic Punjab Powerful Black Magic ...
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
 
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk GurgaonCheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Iffco Chowk Gurgaon
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past Questions
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
 
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
SCRIP Lua HTTP PROGRACMACION PLC  WECON CASCRIP Lua HTTP PROGRACMACION PLC  WECON CA
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
 
Cosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable BricksCosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable Bricks
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...
Night 7k to 12k Call Girl Price Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gi...
 
B. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdfB. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdf
 

e3-chap-08.ppt

  • 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 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
  • 22. the bypass/switch rapid semantic feedback direct communication between application and presentation but regulated by dialogue control
  • 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
  • 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 model view 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 abstraction presentation control A P C A P C A P C A P C
  • 30. 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
  • 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