38
5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems 5.2.2. Interaction Techniques 5.2.3. Interaction Styles 5.2.4. User Interface Management Systems 5.2.5. User Interface Description Languages 5.3. User Interface Software Tools 5.3.1. Window Systems 5.3.2. Toolkits 5.3.3. UIMS 5.4. Future Directions

5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

Embed Size (px)

Citation preview

Page 1: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-1

5. Computer Science and Human-Computer Interaction

5.1. Motivation 5.2. User Interface Software Concepts

5.2.1. Design Process for Interactive Systems 5.2.2. Interaction Techniques 5.2.3. Interaction Styles 5.2.4. User Interface Management Systems 5.2.5. User Interface Description Languages

5.3. User Interface Software Tools 5.3.1. Window Systems 5.3.2. Toolkits 5.3.3. UIMS

5.4. Future Directions

Page 2: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-2

5.1. Motivation

Easier to use, but harder to program [Myers] Multiprogramming Real-time programming Robustness Testability Modularization

Need to support iterative design and testing Software tools

Page 3: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-3

5.2. User Interface Software Concepts

Dialogue independence Interface (syntax) vs. application (semantics, business

logic) Model-View-Controller architecture

Interaction techniques Basic interaction styles Design levels: conceptual, semantic, syntactic,

lexical Generate UI from abstract description Early research in user interface management

system (UIMS) and user interface description languages (UIDL)

User interface software tools New interaction styles (non-WIMP)

Page 4: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-4

5.2.1. Design Process for Interactive Systems

Partition into Four Levels [Foley & Wallace]

Conceptual Semantic

Syntactic Lexical

Page 5: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-5

5.2.2. Interaction Techniques

Interaction task Interaction device Interaction technique

A way of using a device to perform a generic HCI task Widget in a toolkit

Two information processors communicating via constrained interface [Tufte]

Goal: Increase bandwidth across channel

Page 6: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-6

5.2.3. Interaction Styles: Current

Command Language

Question and Answer

Form-based

Menu

Natural Language

Direct Manipulation

Page 7: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-7

Virtual and augmented reality

Tangible interfaces

Ubiquitous, pervasive, handheld

Lightweight, tacit, passive, non-

command, context-aware

Affective computing

Multi-modal interfaces

Reality-based interfaces

Brain-computer interaction

Interaction Styles: Emerging

Page 8: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-8

Dialogue Independence [Hartson & Hix] User Interface Management System (UIMS)

Approach [Olsen] Before

After

Levels of design: Conceptual [Johnson & Henderson], Semantic, Syntactic, Lexical

5.2.4. User Interface Management Systems Research

Application and its own

User Interface USER

USER UIMS Application

(Syntactic+Lexical) (Semantic)

Page 9: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-9

Classes of Programmers and Tool Users

RuntimeApplication

End User UIMS

UIMS Tools

UserInterfaceDesigner

ApplicationProgrammer

(UIDL)

Page 10: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-10

Same UIMS for many applications

Different interfaces to same application

Interface to null application (rapid prototyping)

Dialogue Independence

USERApplication

1

Application2

Application3

UIMS

UserInterface

1

UserInterface

2

UserInterface

3

ApplicationUSER

Page 11: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-11

5.2.5. User Interface Description Languages

How does the user interface designer describe the desired user interface to the UIMS or toolkit?

Layout Behavior

With a User Interface Description Language (UIDL)

May be interactive Generate UI from abstract description

UIDL describes user-visible behavior, but not implementation

More in Section 5.3.3 Other uses of UIDL (evaluation)

Page 12: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-12

Goal: Support dialogue independence and separation of programming roles [Foley, van Dam, Feiner, & Hughes]

5.3. User Interface Software Tools

Toolkit

Application

Window system/graphics package

Operating system

Hardware

UIMS

Page 13: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-13

5.3.1. Window Systems Manage shared resources (pixels, keyboard,

mouse), provide clipping, translation Tells client when exposed, resized, or other

damage Could implement in different places Single built-in window manager or allow separate Dispatcher

(N.B. Security classifications shown are simulated only.)

AccessWindowMouseEvent (Event *e) { . . .

FileWindowMouseEvent (Event *e) { If (e->type==MS_LEFT) . . .

Page 14: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-14

5.3.2. Toolkits

Library of reusable routines for implementing human-computer interface features

Basic components Set of widgets "Intrinsics"

Does not try to describe or support user interface as a whole

Standard look and feel Encourage consistency But imposes limits on interaction style

Page 15: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-15

Toolkits (cont'd)

Examples Visual Studio (Windows) Interface Builder (Macintosh) GTK (X/Unix/Linux)

Based on controls or "widgets"

(N.B. Security classifications shown are simulated only.)

AccessCheckBox (Boolean val)

ClassifTypein (char *val)

DisplayMsgFile ()

Page 16: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-16

5.3.3. UIMS

Higher level than procedure library May include main program, provide external

control of application Call semantics/business logic as subroutines Message to component software

Design time, run time, and evaluation time tools [Myers]

Module partitioning: Runtime vs. interface design time partitioning

Page 17: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-17

Model-View-Controller

Design pattern, originally Smalltalk Found, in some form, in most UI toolkits Matches dialogue independence,

syntactic/semantic split Extend to web browser

USER Model

Controller

View

Page 18: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-18

User Interface Description Language

Designer creates it, UIMS executes it Specific language or technique suitable for describing user

interfaces Describe user-visible behavior, but not implementation

Goal: Generate a UI from high-level, abstract description

Platform-independent if possible (Windows, Mac, X) Platform-type-independent if possible (desktop, cellphone,

voice)! Model-based UI development [Paterno; Jacob, Limbourg, &

Vanderdonckt] Current GUI practice

Has evolved from general purpose UIDL into small, stable set of widgets and classes

Change with new UI styles, portability needs Choice of design language at heart of UIMS

Page 19: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-19

Based on techniques for specifying static languages

Both can be modified for interactive languages BNF

send-cmd::= SEND DRAFTNAME RECIPNAME

State Transition Diagram

Alternate Form of State Transition Diagramstart: SEND ->getdr

getdr: DRAFTNAME ->getre

getre: RECIPNAME ->end

Basic Classes of UIDLs

start getdr getre endSEND DRAFTNAME RECIPNAME

Page 20: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-20

Early UIMS/UIDL Research Language-based

Menu Network [Kasik] BNF, grammar-based [Olsen] State transition diagram [Newman] Event language Declarative

Non-language-based Interactive builder (bottom up)

Current state of practice, use GUI techniques to specify GUI Plug together components with pre-defined interactive behavior

Automatic generation (top down) [Foley] By demonstration [Myers]

Other categories Constraint-based [Hudson] User-oriented [Moran]

Page 21: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-21

Example: Visual Programming for UI

Layout vs. Behavior UIMS, with state diagrams for behavior

[Jacob, “A state transition diagram language...”]

Visual Basic, pre-programmed behavior

Page 22: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-22

Example: State Diagram as UIDL

Command-driven Graphical Report Editor

[Jacob, “Using formal specifications...”]

Page 23: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-23

UI Evaluation

Directly from UIDL Evaluate interface without building system Emerging area, but lack underlying formal knowledge

of UI design Analyze user interface to detect specific properties

[Darlington et al.] Apply human performance models [Card] Automated screen design critique [Tullis] Prove safety-critical properties

Screen mockup, prototyping tools “Slide show" of canned screens based on user inputs UIMS sans application (use stubs for semantics) Visual Basic, Powerpoint, plain HTML also used this

way

Page 24: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-24

UI Tools: Standardization Early:

Many desktop platforms No standardization

Current: ~3 major platforms, standard widgets Settled into stable toolkits, widget libraries, GUI class

libraries UIMS seems like overkill

Emerging: Mobile, automobile Diverse platforms, no standardization Wider range of interaction techniques Model-based development, UIMS redux

Future: Same issue for new non-WIMP interaction styles Still wider range of possible interactions

Page 25: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-25

UI Tools: Trends

UI toolkits, libraries Become important, integral part of software

development tool sets e.g., Macintosh Cocoa UI features are well integrated

Good uptake despite unusual programming language

Web browser as UI platform Cloud computing Chrome-only OS New tools for web UIs, but still clumsy, poorly

integrated Making cross platform toolkits less significant

Page 26: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-26

UI Tools: Mobile Devices Basic HCI development and design principles

Largely GUI, not new interaction style + gestures, GPS, ... Use context: Full attention or not?

Development tools Early: Clumsy tools, restricted UI designs

Much like early GUIs, function key-driven (pre-mouse) GUI Current: UIs and tools very similar to standard GUI

iPhone: Interface Builder (Mac, Objective C) Droid: Java + Swing (minor differences)

UI Consistency Low level consistency High level models, UIDL could help Example: IMAP mail clients

Page 27: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-27

5.4. Future Directions: Emerging Interaction Style

Parallel, Highly-interactive (non-WIMP) Lightweight, Context-aware, Non-command Continuous (+ Discrete) Tangible Interfaces

Microprocessors, 3D forms Ubicomp, Pervasive, Context-aware

Sensors, networks Reality-based Interaction Brain-computer Interaction

Page 28: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-28

Implications for Software

Current Future Single thread I/O Parallel, asynchronous

dialogues; may be interrelated

Discrete tokens Continuous inputs and responses (plus discrete)

Precise tokens Probabilistic input, not easily tokenized

Sequence, not time Real-time requirements, deadline-based

Explicit user commands

Passive monitoring of user

Page 29: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-29

Reality-Based Interaction Connects several emerging interaction styles

Understand together as a new generation of HCI through RBI [Jacob et al., “Reality-Based Interaction...”]

Computer interaction more like rest of world Exploit skills and expectations user already has about

simple, everyday, non-digital world Reality + extensions

Design tradeoffs:

Page 30: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-30

Tangible User Interfaces

Simple, transparent mechanical structures

Use knowledge of physical world to operate

Augment physical objects with digital meaning

Combine physical + digital representations

Exploit advantages of each

[Jacob et al., “A Tangible Interface...”]

[Zigelbaum et al., The Tangible Video Editor...”]

Page 31: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-31

Technology for TUI

Sensors Produce signal in response to change in surroundings

Actuators Produce physical change in response to signal

Microcontroller Communicates with devices and with main computer

Other technologies RFID Computer vision ...

Wider range of I/O events than GUI Development methodology, tools

None!

Page 32: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-32

A Visual Language for Modeling Tangible User Interfaces [Shaer]

TAC paradigm Each TUI consists of token

within a constraint Same object may

sometimes be token, sometimes constraint

Two tier model fits well Dialogue (states,

storyboard) Interaction (especially

continuous)

TUIML

Page 33: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-33

Conclusions: 1. Research Background

Background for following current research in user interface software

Interaction styles Dialogue independence Four levels of design User interface management system (UIMS) User interface description language (UIDL) Goal: Generate UI from abstract description Types of software tools New interaction styles (non-WIMP) and requirements Easier to use, harder to program?

Page 34: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-34

Conclusions: 2. Practice

What research ideas can be applied in building user interfaces today?

Separate interface from application programming Model-View-Controller architecture Use specialized tools (UIMS) for leverage Use specialized languages (UIDL) for perspicuity and

portability

Page 35: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-35

Sources Textbooks

Olsen Foley, van Dam, Feiner, & Hughes Shneiderman, Plaisant, Cohen, & Jacobs

History Early UIMS research [Buxton et al.; Foley and Wallace; Jacob;

Kasik; Newman; Olsen] Classic surveys: ACM Transactions on Computer-Human

Interaction [Myers, Hudson, & Pausch], Computing Surveys [Hartson & Hix]

Current research ACM UIST Conference on User Interface Software and

Technology (annual conference) ACM EICS Symposium on Engineering Interactive Computing

Systems (conference) CADUI Conference on Computer-Aided Design of User

Interfaces (conference) ACM Transactions on Computer-Human Interaction (journal) interactions (ACM magazine)

Page 36: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

5-36

ReferencesW. Buxton, M.R. Lamb, D. Sherman, and K.C. Smith, ''Towards a Comprehensive User Interface Management

System,'' Computer Graphics 17(3) pp. 35-42 (1983).

S.K. Card, T.P. Moran, and A. Newell, ''The Keystroke-Level Model for User Performance Time with Interactive Systems,'' Comm. ACM 23 pp. 396-410 (1980).

J. Darlington, W. Dzida, and S. Herda, ''The Role of Excursions in Interactive Systems,'' International Journal of Man-Machine Studies 18 pp. 101-112 (1983).

J. Foley, W.C. Kim, S. Kovacevic, and K. Murray, ''Defining Interfaces at a High Level of Abstraction,'' IEEE Software 6(1) pp. 25-32 (January 1989).

J.D. Foley, A. van Dam, S.K. Feiner, and J.F. Hughes, Computer Graphics: Principles and Practice, Addison-Wesley, Reading, Mass. (1990).

J.D. Foley and V.L. Wallace, ''The Art of Graphic Man-Machine Conversation,'' Proceedings of the IEEE 62(4) pp. 462-471 (1974).

H.R. Hartson and D. Hix, ''Human-computer Interface Development: Concepts and Systems for its Management,'' Computing Surveys 21(1) pp. 5-92 (1989).

S.E. Hudson, ''Graphical Specification of Flexible User Interface Displays,'' Proc. ACM CHI'89 Human Factors in Computing Systems Conference pp. 105-114 (1989).

R.J.K. Jacob, "A Specification Language for Direct Manipulation User Interfaces," ACM Transactions on Graphics, Vol. 5(4) pp. 283-317 (1986) http://www.cs.tufts.edu/~jacob/papers/tog.pdf].

R.J.K. Jacob, ''A State Transition Diagram Language for Visual Programming,'' IEEE Computer 18(8) pp. 51-59 (1985) [http://www.cs.tufts.edu/~jacob/papers/ieeecomputer.pdf].

R.J.K. Jacob, "Using Formal Specifications in the Design of a Human-Computer Interface," Communications of the ACM, Vol. 26(4) pp. 259-264 (1983) [http://www.cs.tufts.edu/~jacob/papers/cacm.pdf].

R.J.K. Jacob, A. Girouard, L.M. Hirshfield, M.S. Horn, O. Shaer, E.T. Solovey, and J. Zigelbaum, "Reality-Based Interaction: A Framework for Post-WIMP Interfaces," Proc. ACM CHI 2008 Human Factors in Computing Systems Conference pp. 201-210, ACM Press (2008) [http://www.cs.tufts.edu/~jacob/papers/chi08.pdf].

Page 37: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

R.J.K. Jacob, H. Ishii, G. Pangaro, and J. Patten, "A Tangible Interface for Organizing Information Using a Grid," Proc. ACM CHI 2002 Human Factors in Computing Systems Conference pp. 339-346, ACM Press (2002) [http://www.cs.tufts.edu/~jacob/papers/chi02.pdf].

R.J.K. Jacob, Q. Limbourg, and J. Vanderdonckt (Eds.), Computer- Aided Design of User Interfaces IV, Kluwer Academic Publishers, Dordrecht (2005).

J. Johnson and A. Henderson, "Conceptual Models: Begin by Designing What to Design," interactions, Vol. 9(1) pp. 25-32 (January 2002).

D.J. Kasik, ''A User Interface Management System,'' Computer Graphics 16(3) pp. 99-106 (1982).

T.P. Moran, ''The Command Language Grammar: A Representation for the User Interface of Interactive Computer Systems,'' International Journal of Man-Machine Studies 15 pp. 3-50 (1981).

B.A. Myers, ''User Interface Software Tools,'' ACM Transactions on Computer-Human Interaction 2(1) pp. 64-103 (March 1995).

B.A. Myers, Creating User Interfaces by Demonstration, Academic Press, Boston (1988).

B. Myers, S.E. Hudson, and R. Pausch, "Past, Present, and Future of User Interface Software Tools," ACM Transactions on Computer- Human Interaction, Vol. 7(1) pp. 3-28 (March 2000). Also reprinted in Human-Computer Interaction in the New Millenium, ed. J.M. Carroll, Addison-Wesley/ACM Press, Reading, Mass., 2002, pp. 213-233.

W.M. Newman, ''A System for Interactive Graphical Programming,'' Proc. Spring Joint Computer Conference pp. 47-54, AFIPS (1968).

D.R. Olsen, Building Interactive Systems: Principles for Human-Computer Interaction, Course Technology Inc. (2009).

D.R. Olsen, User Interface Management Systems: Models and Algorithms, Morgan Kaufmann, San Mateo, Calif. (1992).

F. Paterno, Model-Based Design and Evaluation of Interactive Applications,, Springer-Verlag, London (2000).

O. Shaer and R.J.K. Jacob, "A Specification Paradigm for the Design and Implementation of Tangible User Interfaces," ACM Transactions on Computer-Human Interaction (2009) [http://www.cs.tufts.edu/~jacob/papers/tochi.shaer.pdf].

B. Shneiderman, C. Plaisant, M. Cohen, and S. Jacobs, Designing the User Interface: Strategies for Effective Human-Computer Interaction, Addison-Wesley, Reading, Mass. (2009).

E.R. Tufte, ''Visual Design of the User Interface,'' IBM Corporation, Armonk, N.Y. (1989).

5-37

Page 38: 5-1 5. Computer Science and Human-Computer Interaction 5.1. Motivation 5.2. User Interface Software Concepts 5.2.1. Design Process for Interactive Systems

T.S. Tullis, ''A Computer-Based Tool for Evaluating Alphanumeric Displays,'' Proc. INTERACT '84 Conference, B. Shackel, ed. (1984).

J. Zigelbaum, M. Horn, O. Shaer, and R.J.K. Jacob, "The Tangible Video Editor: Collaborative Video Editing with Active Tokens," Proc. TEI 2007 First International Conference on Tangible and Embedded Interaction pp. 43-46 (2007) [http://www.cs.tufts.edu/~jacob/papers/tei07.zigelbaum.pdf].

5-38