SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
hci in software development process
hci in software development processhci in software development process
hci in software development processKainat Ilyas
 
Software Measurement : Function Point
Software Measurement : Function PointSoftware Measurement : Function Point
Software Measurement : Function PointDendie Sanjaya
 
Cost estimation using cocomo model
Cost estimation using cocomo modelCost estimation using cocomo model
Cost estimation using cocomo modelNitesh Bichwani
 
Empathy map watch videos on smartphones
Empathy map   watch videos on smartphonesEmpathy map   watch videos on smartphones
Empathy map watch videos on smartphonesRobin Wagner
 
HCI 3e - Ch 19: Groupware
HCI 3e - Ch 19:  GroupwareHCI 3e - Ch 19:  Groupware
HCI 3e - Ch 19: GroupwareAlan Dix
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
 
Objects and classes in Visual Basic
Objects and classes in Visual BasicObjects and classes in Visual Basic
Objects and classes in Visual BasicSangeetha Sg
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android FragmentsSergi Martínez
 
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
 
The Singleton Pattern Presentation
The Singleton Pattern PresentationThe Singleton Pattern Presentation
The Singleton Pattern PresentationJAINIK PATEL
 

La actualidad más candente (20)

Modul praktikum pbo java swing
Modul praktikum pbo java swingModul praktikum pbo java swing
Modul praktikum pbo java swing
 
Clean Code - Formatting Code
Clean Code - Formatting CodeClean Code - Formatting Code
Clean Code - Formatting Code
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Universal design HCI
Universal design HCIUniversal design HCI
Universal design HCI
 
hci in software development process
hci in software development processhci in software development process
hci in software development process
 
Software Measurement : Function Point
Software Measurement : Function PointSoftware Measurement : Function Point
Software Measurement : Function Point
 
Hci activity#3
Hci activity#3Hci activity#3
Hci activity#3
 
Cost estimation using cocomo model
Cost estimation using cocomo modelCost estimation using cocomo model
Cost estimation using cocomo model
 
Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile apps
 
SQL DASAR.ppt
SQL DASAR.pptSQL DASAR.ppt
SQL DASAR.ppt
 
Empathy map watch videos on smartphones
Empathy map   watch videos on smartphonesEmpathy map   watch videos on smartphones
Empathy map watch videos on smartphones
 
Conceptual model
Conceptual modelConceptual model
Conceptual model
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
HCI 3e - Ch 19: Groupware
HCI 3e - Ch 19:  GroupwareHCI 3e - Ch 19:  Groupware
HCI 3e - Ch 19: Groupware
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 
Pertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptxPertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptx
 
Objects and classes in Visual Basic
Objects and classes in Visual BasicObjects and classes in Visual Basic
Objects and classes in Visual Basic
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android Fragments
 
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
 
The Singleton Pattern Presentation
The Singleton Pattern PresentationThe Singleton Pattern Presentation
The Singleton Pattern Presentation
 

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Último

Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 

Último (20)

Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 

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

Notas del editor

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