SlideShare ist ein Scribd-Unternehmen logo
1 von 48
chapter 8
       (modified)

implementation support
Introduction


how does HCI affect the programmer?

levels of abstraction
  hardware specific
            → interaction-technique specific


layers of development tools
  – windowing systems
  – interaction toolkits
  – architecture styles and frameworks
windowing systems
  device independence
  resource sharing
  application management
windowing systems
 device independence

different devices:

mouse, trackpad, joystick

keyboard layouts

screen resolution
device independence
  layers of abstraction
Application: what the user really wants to do


                       Toolkit: (e.g. Java AWT) more abstraction!

            Windowing System: abstract pointer (mouse)
              abstract display: pixels, Postscript, vector graphics


Operating System: hardware interface,
  low-level device drivers
windowing systems
 resource sharing

                 (usually)
   many         one screen     one pair of eyes
applications   one keyboard   one set of fingers
                one mouse
resource sharing


window system
  virtual terminals         abstract    abstract   abstract   abstract

  each app its own PC!     terminal 1   term. 2    term. 3    term. 4




OS:                                          resource
                                             manager
  shares disk, CPU, etc.
                                              device
                                              drivers
types of window layout


• tiled (space shared)
  – web sidebars, expanding widgets


• single app (time shared)
  – phone, early Windows


• overlapping (time and space)
  – most common for PCs
resource issues
  not just the screen!


users care about

 power management

 network utilisation
   ... especially when it costs!
windowing systems
 application management

many applications ... so
  – consistent look and feel

  – inter-application sharing
     cut & paste, drag & drop
     scripting and automation

  – UI to manage it all
        e.g. Mac Finder, Windows Explorer
     app swopping, preferences
     +extras: dashboard
Architectures of windowing
 systems
three possible software architectures
   – all assume device driver is separate
   – differ where management is implemented
                                                  early Mac & MS Windows
1. each application manages everything            assumed
                                                  ‘cooperative’ apps
   – everyone worries about synchronization
   – poor portability and robustness
                                              may be used for
   – can be efficient for low-end devices     dedicated devices
2. window mgt. tightly coupled with operating system
   – applications tied to operating system                Mac OS and
                                                          MS Windows
3. management role as separate application
   – maximum portability
                                  X Windows
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
not just the PC


phone
  – similar issues – sharing screen, keyboard, etc.
  – ‘full screen’ apps, not overlapping windows
      but Vodafone 360 had semi-open apps

web
  – browser takes role of window manager
web micro-apps       (e.g. Facebook apps)
  – access shared data, screen space
dedicated devices       (e.g. microwave control panel)
  – mostly code direct to hardware
    but appliance-oriented Java, Windows, ...
programming the application
   toolkits
   paint models
   event models
toolkits
  what they provide
interaction objects (widgets)
      e.g. menus, buttons, simple text areas, file selection
  N.B. input and output intrinsically linked



layout support
  for resizable windows



abstractions for windowing & OS services
  e.g. copy/paste, sound
toolkits
  higher level of abstraction than raw WM

promotes consistency
   – look and feel, widget interactions

easier to code
   – amenable to object-oriented programming

easier to port
   – new versions of same platform
   – cross-platform
      • e.g. Java for desktop apps, jQuery for web
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)
paint models
   what appears on the screen
   and when it happens
screen painting layers

                                                                screen
              your application
   your code             toolkit layer(s)
void main() {                                                    > cat fred.txt
Frame f = new Frame();                                           This is frd.txt
f.show()                      AWT                                > ls
}                                                                fred.txt tom.txt
                            Swing                                harry.c dick.java




                  other application(s)      > cat fred.txt
                                            This is frd.txt
                                            > ls
                                            fred.txt tom.txt
                                            harry.c dick.java
paint models
  what do you draw

direct to the screen
direct to screen via viewport
  – clipping, coordinate transformation
      e.g. raw Java AWT
separate buffer
  – double buffer to reduce flicker, retained bitmap
      option in Java Swing
display list / model
  – list of operations line, image etc.
    toolkit worries about showing these the screen
      e.g. OpenGL, ? MacOS display PDF, JS-DOM
buffering
  in toolkit and/or window manager

e.g. Mac OS X

three levels:
• nonretained
  – no buffering
• retained
  – wm buffers
    hidden parts
• buffered
  – app/toolkit
    writes to buffer
paint models
 when do you need to draw

internal events
  – data has changed
  – application ‘knows’


external events
  – user / network does things
  – window manager ‘knows’
              … and then tells toolkit
paint models
   when do you actually draw
internal control
  – code does things when it wants
  – but what about external events?
    works OK with display list or retained bitmap
external control
  – called by the toolkit / window manager
  – but what about internal events?
      … purpose of repaint() in Java
draw once per frame (game engines)
  – variant of external control … but code rather like internal
      combined with polling model for input (check button state)
event models
  when things happen
event models – when things happen
 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
event models
   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


notification style affects the interface
  – 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
screen                       your code                              java api
                                             AWT invokes Listener

            repaint sets
                         myListener(…) {                                          user
            ‘dirty’ flag // update state
                                                                                 clicks
                                repaint();
                            }



                                                                     notices
                                                    component       dirty flag
                         paint(Graphics g) {         asked to
         g.fillRect(…)                              paint itself
                           // draw things
                         }



                                                                     waits for
                                                                    more input

                                                                       …
asynchrony ...
    things happen in any order

hard to test code
  – usually one test user at a time
  – low network load
  – fast networks and fast machines


race conditions
  – unexpected event orders
  – sometimes may seem unlikely, but ...
Birthday surprise problem

people   connections

  1           0
  2           1
  3           3
  4           6
  5         10
  6         15
  …         …
  n       n(n-1)/2
architecture and frameworks
  separation and presentation abstraction: Seeheim
  component models: MVC and PAC
origins of separation
  User Interface Management Systems
  (UIMS)

a level above toolkits (e.g. for non-programmers)
separation: application semantics and presentation
   – colours & wording different from deep functionality
improves:
   –   portability – runs on different systems
   –   reusability – components reused cutting costs
   –   multiple interfaces – accessing same functionality
   –   customizability – by designer and user

virtually extinct (!) – but the concepts live on
   – the Seeheim workshop ...
Seeheim model


             lexical      syntactic    semantic

                                      Functionality
                          Dialogue
USER
 USER      Presentation               (application    APPLICATION
                           Control
                                       interface)




                           switch
conceptual vs. implementation


Seeheim
  – arose out of implementation experience
  – but principal contribution is conceptual
  – concepts part of ‘normal’ UI language

 … because of Seeheim …
          … we think differently!
  e.g. the lower box, the switch
     • needed for implementation
                                     presentation   dialogue   application
     • 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?

          lexical      syntactic    semantic

                                   Functionality
                       Dialogue
USER
 USER   Presentation               (application    APPLICATION
                        Control
                                    interface)




                        switch
the bypass/switch

             lexical      syntactic          semantic

                                            Functionality
                          Dialogue
USER
 USER      Presentation                     (application      APPLICATION
                           Control
                                             interface)




                           switch

                                                    direct communication
        rapid semantic                               between application
                                                       and presentation
          feedback
                                      but regulated by
                                      dialogue control
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       P        A       P
                C                C



            abstraction        presentation


                          control


        A       P
            C                        A       P
                                         C
... and on the web
on the web
      salami sliced Seeheim

     between browser and server
      NOT the obvious split

          presentation   dialogue   semantics


browser




                                                web server
on the web
      salami sliced Seeheim

     between browser and server
                                                data updated on
                                                page (esp. AJAX)
          presentation        dialogue     semantics


browser                        links and
            css and           javascript
            browser
             styling
                                            updating
                               server       backend
                                           databases   web server
                               scripts


            templates, XLST
on the web
       salami sliced Seeheim

      between pages/scripts
           – consistency and control?

            presentation     dialogue            semantics

script 1

script 2

script 3

script 4
              CSS and      dialogue flow        business logic
             templates
                                    maintaining state
Summary


Levels of programming support tools
• Windowing systems
  – device independence, resource sharing
  – managing multiple user tasks and applications
• Toolkits
  – programming interaction objects
• Programming the application
  – event paradigms: read-evaluation vs. notification
  – paint paradigms
• Architecture
  – conceptual architectures for separation
  – need to think about dialogue and state

Weitere ähnliche Inhalte

Was ist angesagt?

Vb6.0 Introduction
Vb6.0 IntroductionVb6.0 Introduction
Vb6.0 IntroductionTennyson
 
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
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application DevelopmentSyed Absar
 
HCI 3e - Ch 14: Communication and collaboration models
HCI 3e - Ch 14:  Communication and collaboration modelsHCI 3e - Ch 14:  Communication and collaboration models
HCI 3e - Ch 14: Communication and collaboration modelsAlan Dix
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rulesAlan Dix
 
HCI 3e - Ch 17: Models of the system
HCI 3e - Ch 17:  Models of the systemHCI 3e - Ch 17:  Models of the system
HCI 3e - Ch 17: Models of the systemAlan Dix
 
Models of Interaction
Models of InteractionModels of Interaction
Models of InteractionjbellWCT
 
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
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android StudioSuyash Srijan
 
CS8079 Human Computer Interaction
CS8079 Human Computer InteractionCS8079 Human Computer Interaction
CS8079 Human Computer InteractionThanga Durai
 
HCI 3e - Ch 4: Paradigms
HCI 3e - Ch 4:  ParadigmsHCI 3e - Ch 4:  Paradigms
HCI 3e - Ch 4: ParadigmsAlan Dix
 
Interaction styles
Interaction stylesInteraction styles
Interaction stylesDavid Lamas
 
HCI 3e - Ch 10: Universal design
HCI 3e - Ch 10:  Universal designHCI 3e - Ch 10:  Universal design
HCI 3e - Ch 10: Universal designAlan Dix
 
HCI 3e - Ch 13: Socio-organizational issues and stakeholder requirements
HCI 3e - Ch 13:  Socio-organizational issues and stakeholder requirementsHCI 3e - Ch 13:  Socio-organizational issues and stakeholder requirements
HCI 3e - Ch 13: Socio-organizational issues and stakeholder requirementsAlan Dix
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2REHAN IJAZ
 
Human Computer Interaction (HCI)
Human Computer Interaction (HCI)Human Computer Interaction (HCI)
Human Computer Interaction (HCI)Lahiru Danushka
 

Was ist angesagt? (20)

Vb6.0 Introduction
Vb6.0 IntroductionVb6.0 Introduction
Vb6.0 Introduction
 
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
 
E3 chap-08
E3 chap-08E3 chap-08
E3 chap-08
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
The computer HCI
The computer HCIThe computer HCI
The computer HCI
 
HCI 3e - Ch 14: Communication and collaboration models
HCI 3e - Ch 14:  Communication and collaboration modelsHCI 3e - Ch 14:  Communication and collaboration models
HCI 3e - Ch 14: Communication and collaboration models
 
HCI 3e - Ch 7: Design rules
HCI 3e - Ch 7:  Design rulesHCI 3e - Ch 7:  Design rules
HCI 3e - Ch 7: Design rules
 
HCI 3e - Ch 17: Models of the system
HCI 3e - Ch 17:  Models of the systemHCI 3e - Ch 17:  Models of the system
HCI 3e - Ch 17: Models of the system
 
Mobile 2.0
Mobile 2.0Mobile 2.0
Mobile 2.0
 
Models of Interaction
Models of InteractionModels of Interaction
Models of Interaction
 
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
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 
CS8079 Human Computer Interaction
CS8079 Human Computer InteractionCS8079 Human Computer Interaction
CS8079 Human Computer Interaction
 
HCI 3e - Ch 4: Paradigms
HCI 3e - Ch 4:  ParadigmsHCI 3e - Ch 4:  Paradigms
HCI 3e - Ch 4: Paradigms
 
Interaction styles
Interaction stylesInteraction styles
Interaction styles
 
HCI 3e - Ch 10: Universal design
HCI 3e - Ch 10:  Universal designHCI 3e - Ch 10:  Universal design
HCI 3e - Ch 10: Universal design
 
HCI 3e - Ch 13: Socio-organizational issues and stakeholder requirements
HCI 3e - Ch 13:  Socio-organizational issues and stakeholder requirementsHCI 3e - Ch 13:  Socio-organizational issues and stakeholder requirements
HCI 3e - Ch 13: Socio-organizational issues and stakeholder requirements
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2
 
C sharp
C sharpC sharp
C sharp
 
Human Computer Interaction (HCI)
Human Computer Interaction (HCI)Human Computer Interaction (HCI)
Human Computer Interaction (HCI)
 

Andere mochten auch

Interaction Design
Interaction DesignInteraction Design
Interaction Designhcicourse
 
The Human: Sound and hearing
The Human: Sound and hearingThe Human: Sound and hearing
The Human: Sound and hearinghcicourse
 
Introducing Human Computer Interaction
Introducing Human Computer InteractionIntroducing Human Computer Interaction
Introducing Human Computer Interactionhcicourse
 
The Human: Eye and vision
The Human: Eye and visionThe Human: Eye and vision
The Human: Eye and visionhcicourse
 
Information visualisation
Information visualisationInformation visualisation
Information visualisationhcicourse
 
The Human perception & Overview
The Human perception & OverviewThe Human perception & Overview
The Human perception & Overviewhcicourse
 
The Human: Memory
The Human: MemoryThe Human: Memory
The Human: Memoryhcicourse
 

Andere mochten auch (9)

Emotion
EmotionEmotion
Emotion
 
Interaction Design
Interaction DesignInteraction Design
Interaction Design
 
The Human: Sound and hearing
The Human: Sound and hearingThe Human: Sound and hearing
The Human: Sound and hearing
 
Introducing Human Computer Interaction
Introducing Human Computer InteractionIntroducing Human Computer Interaction
Introducing Human Computer Interaction
 
The Human: Eye and vision
The Human: Eye and visionThe Human: Eye and vision
The Human: Eye and vision
 
Evaluation
EvaluationEvaluation
Evaluation
 
Information visualisation
Information visualisationInformation visualisation
Information visualisation
 
The Human perception & Overview
The Human perception & OverviewThe Human perception & Overview
The Human perception & Overview
 
The Human: Memory
The Human: MemoryThe Human: Memory
The Human: Memory
 

Ähnlich wie HCI Implementation Support

Shape12 6
Shape12 6Shape12 6
Shape12 6pslulli
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is nearBartlomiej Filipek
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development Naresh Kumar
 
cse581_03_EventProgramming.ppt
cse581_03_EventProgramming.pptcse581_03_EventProgramming.ppt
cse581_03_EventProgramming.ppttadudemise
 
Tutorial 37 API Coding
Tutorial 37 API CodingTutorial 37 API Coding
Tutorial 37 API CodingMax Kleiner
 
Hacking Windows IPC
Hacking Windows IPCHacking Windows IPC
Hacking Windows IPCgueste041bc
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginnerAjailal Parackal
 
Criando jogos para o windows 8
Criando jogos para o windows 8Criando jogos para o windows 8
Criando jogos para o windows 8José Farias
 
Windows programming ppt
Windows programming pptWindows programming ppt
Windows programming pptSAMIR CHANDRA
 
Lecture 08 virtual machine ii
Lecture 08 virtual machine iiLecture 08 virtual machine ii
Lecture 08 virtual machine ii鍾誠 陳鍾誠
 
Win32/Flamer: Reverse Engineering and Framework Reconstruction
Win32/Flamer: Reverse Engineering and Framework ReconstructionWin32/Flamer: Reverse Engineering and Framework Reconstruction
Win32/Flamer: Reverse Engineering and Framework ReconstructionAlex Matrosov
 
Matrosov, rodionov win32 flamer. reverse engineering and framework reconstr...
Matrosov, rodionov   win32 flamer. reverse engineering and framework reconstr...Matrosov, rodionov   win32 flamer. reverse engineering and framework reconstr...
Matrosov, rodionov win32 flamer. reverse engineering and framework reconstr...DefconRussia
 
introduction to_mfc
 introduction to_mfc introduction to_mfc
introduction to_mfctuttukuttu
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java MEwiradikusuma
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanicselliando dias
 

Ähnlich wie HCI Implementation Support (20)

Shape12 6
Shape12 6Shape12 6
Shape12 6
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is near
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Oopp Lab Work
Oopp Lab WorkOopp Lab Work
Oopp Lab Work
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
 
Stuxnet dc9723
Stuxnet dc9723Stuxnet dc9723
Stuxnet dc9723
 
cse581_03_EventProgramming.ppt
cse581_03_EventProgramming.pptcse581_03_EventProgramming.ppt
cse581_03_EventProgramming.ppt
 
Tutorial 37 API Coding
Tutorial 37 API CodingTutorial 37 API Coding
Tutorial 37 API Coding
 
Hacking Windows IPC
Hacking Windows IPCHacking Windows IPC
Hacking Windows IPC
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
Criando jogos para o windows 8
Criando jogos para o windows 8Criando jogos para o windows 8
Criando jogos para o windows 8
 
Windows programming ppt
Windows programming pptWindows programming ppt
Windows programming ppt
 
Lecture 08 virtual machine ii
Lecture 08 virtual machine iiLecture 08 virtual machine ii
Lecture 08 virtual machine ii
 
Win32/Flamer: Reverse Engineering and Framework Reconstruction
Win32/Flamer: Reverse Engineering and Framework ReconstructionWin32/Flamer: Reverse Engineering and Framework Reconstruction
Win32/Flamer: Reverse Engineering and Framework Reconstruction
 
Matrosov, rodionov win32 flamer. reverse engineering and framework reconstr...
Matrosov, rodionov   win32 flamer. reverse engineering and framework reconstr...Matrosov, rodionov   win32 flamer. reverse engineering and framework reconstr...
Matrosov, rodionov win32 flamer. reverse engineering and framework reconstr...
 
introduction to_mfc
 introduction to_mfc introduction to_mfc
introduction to_mfc
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java ME
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanics
 
GNURAdioDoc-8
GNURAdioDoc-8GNURAdioDoc-8
GNURAdioDoc-8
 

Kürzlich hochgeladen

Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
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
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 

Kürzlich hochgeladen (20)

Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
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...
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 

HCI Implementation Support

  • 1. chapter 8 (modified) implementation support
  • 2. Introduction how does HCI affect the programmer? levels of abstraction hardware specific → interaction-technique specific layers of development tools – windowing systems – interaction toolkits – architecture styles and frameworks
  • 3. windowing systems device independence resource sharing application management
  • 4. windowing systems device independence different devices: mouse, trackpad, joystick keyboard layouts screen resolution
  • 5. device independence layers of abstraction Application: what the user really wants to do Toolkit: (e.g. Java AWT) more abstraction! Windowing System: abstract pointer (mouse) abstract display: pixels, Postscript, vector graphics Operating System: hardware interface, low-level device drivers
  • 6. windowing systems resource sharing (usually) many one screen one pair of eyes applications one keyboard one set of fingers one mouse
  • 7. resource sharing window system virtual terminals abstract abstract abstract abstract each app its own PC! terminal 1 term. 2 term. 3 term. 4 OS: resource manager shares disk, CPU, etc. device drivers
  • 8. types of window layout • tiled (space shared) – web sidebars, expanding widgets • single app (time shared) – phone, early Windows • overlapping (time and space) – most common for PCs
  • 9. resource issues not just the screen! users care about power management network utilisation ... especially when it costs!
  • 10. windowing systems application management many applications ... so – consistent look and feel – inter-application sharing cut & paste, drag & drop scripting and automation – UI to manage it all e.g. Mac Finder, Windows Explorer app swopping, preferences +extras: dashboard
  • 11. Architectures of windowing systems three possible software architectures – all assume device driver is separate – differ where management is implemented early Mac & MS Windows 1. each application manages everything assumed ‘cooperative’ apps – everyone worries about synchronization – poor portability and robustness may be used for – can be efficient for low-end devices dedicated devices 2. window mgt. tightly coupled with operating system – applications tied to operating system Mac OS and MS Windows 3. management role as separate application – maximum portability X Windows
  • 13. 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
  • 14. not just the PC phone – similar issues – sharing screen, keyboard, etc. – ‘full screen’ apps, not overlapping windows but Vodafone 360 had semi-open apps web – browser takes role of window manager web micro-apps (e.g. Facebook apps) – access shared data, screen space dedicated devices (e.g. microwave control panel) – mostly code direct to hardware but appliance-oriented Java, Windows, ...
  • 15. programming the application toolkits paint models event models
  • 16. toolkits what they provide interaction objects (widgets) e.g. menus, buttons, simple text areas, file selection N.B. input and output intrinsically linked layout support for resizable windows abstractions for windowing & OS services e.g. copy/paste, sound
  • 17. toolkits higher level of abstraction than raw WM promotes consistency – look and feel, widget interactions easier to code – amenable to object-oriented programming easier to port – new versions of same platform – cross-platform • e.g. Java for desktop apps, jQuery for web
  • 18. 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)
  • 19. paint models what appears on the screen and when it happens
  • 20. screen painting layers screen your application your code toolkit layer(s) void main() { > cat fred.txt Frame f = new Frame(); This is frd.txt f.show() AWT > ls } fred.txt tom.txt Swing harry.c dick.java other application(s) > cat fred.txt This is frd.txt > ls fred.txt tom.txt harry.c dick.java
  • 21. paint models what do you draw direct to the screen direct to screen via viewport – clipping, coordinate transformation e.g. raw Java AWT separate buffer – double buffer to reduce flicker, retained bitmap option in Java Swing display list / model – list of operations line, image etc. toolkit worries about showing these the screen e.g. OpenGL, ? MacOS display PDF, JS-DOM
  • 22. buffering in toolkit and/or window manager e.g. Mac OS X three levels: • nonretained – no buffering • retained – wm buffers hidden parts • buffered – app/toolkit writes to buffer
  • 23. paint models when do you need to draw internal events – data has changed – application ‘knows’ external events – user / network does things – window manager ‘knows’ … and then tells toolkit
  • 24. paint models when do you actually draw internal control – code does things when it wants – but what about external events? works OK with display list or retained bitmap external control – called by the toolkit / window manager – but what about internal events? … purpose of repaint() in Java draw once per frame (game engines) – variant of external control … but code rather like internal combined with polling model for input (check button state)
  • 25. event models when things happen
  • 26. event models – when things happen 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
  • 27. event models 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 }
  • 28. going with the grain notification style affects the interface – 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
  • 29. screen your code java api AWT invokes Listener repaint sets myListener(…) { user ‘dirty’ flag // update state clicks repaint(); } notices component dirty flag paint(Graphics g) { asked to g.fillRect(…) paint itself // draw things } waits for more input …
  • 30. asynchrony ... things happen in any order hard to test code – usually one test user at a time – low network load – fast networks and fast machines race conditions – unexpected event orders – sometimes may seem unlikely, but ...
  • 31. Birthday surprise problem people connections 1 0 2 1 3 3 4 6 5 10 6 15 … … n n(n-1)/2
  • 32. architecture and frameworks separation and presentation abstraction: Seeheim component models: MVC and PAC
  • 33. origins of separation User Interface Management Systems (UIMS) a level above toolkits (e.g. for non-programmers) separation: application semantics and presentation – colours & wording different from deep functionality improves: – portability – runs on different systems – reusability – components reused cutting costs – multiple interfaces – accessing same functionality – customizability – by designer and user virtually extinct (!) – but the concepts live on – the Seeheim workshop ...
  • 34. Seeheim model lexical syntactic semantic Functionality Dialogue USER USER Presentation (application APPLICATION Control interface) switch
  • 35. 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 presentation dialogue application • but not conceptual
  • 36. 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
  • 37. what’s this? lexical syntactic semantic Functionality Dialogue USER USER Presentation (application APPLICATION Control interface) switch
  • 38. the bypass/switch lexical syntactic semantic Functionality Dialogue USER USER Presentation (application APPLICATION Control interface) switch direct communication rapid semantic between application and presentation feedback but regulated by dialogue control
  • 39. 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
  • 40. MVC model - view - controller view model controller
  • 41. 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
  • 42. 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)
  • 43. PAC presentation - abstraction - control A P A P C C abstraction presentation control A P C A P C
  • 44. ... and on the web
  • 45. on the web salami sliced Seeheim between browser and server NOT the obvious split presentation dialogue semantics browser web server
  • 46. on the web salami sliced Seeheim between browser and server data updated on page (esp. AJAX) presentation dialogue semantics browser links and css and javascript browser styling updating server backend databases web server scripts templates, XLST
  • 47. on the web salami sliced Seeheim between pages/scripts – consistency and control? presentation dialogue semantics script 1 script 2 script 3 script 4 CSS and dialogue flow business logic templates maintaining state
  • 48. Summary Levels of programming support tools • Windowing systems – device independence, resource sharing – managing multiple user tasks and applications • Toolkits – programming interaction objects • Programming the application – event paradigms: read-evaluation vs. notification – paint paradigms • Architecture – conceptual architectures for separation – need to think about dialogue and state

Hinweis der Redaktion

  1. http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CoreAppArchitecture/CoreAppArchitecture.html