cosc 3461 user interfaces

37
COSC 3461 User Interfaces Instructor (Section A): Maurice Masliah //www.cs.yorku.ca/course_archive/2001-02/S/

Upload: orla-greene

Post on 03-Jan-2016

50 views

Category:

Documents


1 download

DESCRIPTION

http://www.cs.yorku.ca/course_archive/2001-02/S/3461/. COSC 3461 User Interfaces. Instructor (Section A): Maurice Masliah. What will COSC 3461 cover?. 1.How to design a user interface 2.How to realize user interfaces (programming in Java Swing in homework assignments). Thanks. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: COSC 3461 User Interfaces

COSC 3461User Interfaces

Instructor (Section A):

Maurice Masliah

http://www.cs.yorku.ca/course_archive/2001-02/S/3461/

Page 2: COSC 3461 User Interfaces

3461A

What will COSC 3461 cover?

1. How to design a user interface

2. How to realize user interfaces (programming in Java Swing in homework assignments)

Page 3: COSC 3461 User Interfaces

3461A

Thanks

For slides and other course materials to:– Wolfgang Stuerzlinger (York, original course professor)

– Scott MacKenzie (York)– James Landay (Berkeley)– Bowden Wise (RPI)– Sarah Douglas (UOregon)– Richard Paige (York) for revisions

Page 4: COSC 3461 User Interfaces

3461A

The Simple View of the User Interface

UserUserInterface

ComputerProgram

The User Interface is the junction between the User and the Computer.

Page 5: COSC 3461 User Interfaces

3461A

The More Complex View

A well designed user interface is much more than a layer slapped between the user and the computer.

A well design user interface incorporates an understanding of– the user– the task and task flow– the environment

Page 6: COSC 3461 User Interfaces

3461A

User

Issues involved in designing a user interface for even a simple task can be complex– there are lots of ways to design an interface

to do the same task

Page 7: COSC 3461 User Interfaces

3461A

Usable for Whom?

User Population

MS Windows70%

Assembler code0.01%

program (any language)1%

C++ code0.1%

Linux15%

Usability

Television98%

Page 8: COSC 3461 User Interfaces

3461A

Possible Usability Issues?

Page 9: COSC 3461 User Interfaces

3461A

How it appears to a child

Page 10: COSC 3461 User Interfaces

3461A

Bug’s Life Example

Consider who the users are Breaks user’s expectations (have to launch

the program to uninstall it) I find myself having to reinstall this program

every other week.

Page 11: COSC 3461 User Interfaces

3461A

Good or Bad?

Page 12: COSC 3461 User Interfaces

3461A

Good or Bad?

How do you cancel?

Page 13: COSC 3461 User Interfaces

3461A

What is the User Interface (UI)?

Different actors perceive it very differently! Developer View

– Application functionality is separate from UI– UI often seen as an add-on

User View– Usually doesn’t see distinction between the UI and

the entire application– If the UI is well designed and usable, then entire

application may appear usable

Credo: The interface IS the computer!

Page 14: COSC 3461 User Interfaces

3461A

What is the UI? (continued) UI includes all aspects of the system that influence

the interaction with its users The UI includes:

– conceptual model (how UI objects correspond to objects in the real world)

– a metaphor, to help the user (e.g., desktop)– controls and their behaviour– means for navigation within and flow between screens– integration among different applications– visual design of the screens

Page 15: COSC 3461 User Interfaces

3461A

Technology Trends

Trends in technology have increased the need for improved UIs and UI design practices: – Network/distributed systems allow access in remote

locations, or across an enterprise. – Greater memory and faster processing are available

at ever decreasing costs. – More people have access to computing power – People are “on the move” (mobile computing)

Technology now exists for improved UIs and UI designs.

Page 16: COSC 3461 User Interfaces

3461A

New Technology is NOT Enough!

New interface technology alone does not produce usable interfaces!– Graphical user interfaces (GUIs) are not

intrinsically more usable than traditional character-based user interfaces (CUIs)

– GUIs can be less usable if they are poorly designed

Usable user interfaces require good design and a great deal of effort in their manufacture

Page 17: COSC 3461 User Interfaces

3461A

User Interfaces: Code/Cost/Effort Different Statistics

– UI is 47% - 60% of the total code– GUI is minimally 29% of the software

development project budget – GUI may take as much 40% of the

development effort

Page 18: COSC 3461 User Interfaces

3461A

80% percent of software life cycle costs occur after the product is released, in the maintenance phase– Of that work, 80% is due to unmet or unseen user

requirements

– Only 20% of this is due to bugs or reliability problems

(Source: Karat, C. Usability engineering in dollars and cents. IEEE Software, May 1993, p 89.)

An Interesting Stat

Page 19: COSC 3461 User Interfaces

3461A

High Quality UIs are in Demand

A good UI is vital for a quality software product. – UIs that do not work well make it impossible for

users to access the functionality they require; i.e., users become less productive

Human capital is more expensive Therefore need UIs and systems that are:

– Learnable, Efficient, Memorable– Not error prone – Satisfactory for the user

Page 20: COSC 3461 User Interfaces

3461A

Example for Bad UI

Power Point:

Word:

Last entryin list

First entryin list

Page 21: COSC 3461 User Interfaces

3461A

Example for Bad UI (2)

7 8 9

4 5 6

1 2 3

0

13672

+ + + +

- - - -

1 4 7 2

An accidental key pressand the dose can be outby a factor of ten!

Page 22: COSC 3461 User Interfaces

3461A

Bad UIs Lead to Major Problems

A $3 million application for an insurance company to be used by independent agents to support them in selling their company’s products. However, agents refused to use the application because the system was “un-learnable” and “unusable”

In a customer service organization, training on the system took 6 months, but employees typically had a tenure of only 18 months in that department.

Extensive and expensive functionality in a Human Resources system was not used at all because users forgot how to access it a mere week after training

Page 23: COSC 3461 User Interfaces

3461A

Good Designs => Usable Systems

Work the way the user thinks they should (intuitive) – Allows the user to focus on task at hand and not worry

about the underlying technology and interaction technology

Easier to use than previous technology More efficient than, e.g., manual systems Minimize user errors Promote user satisfaction (users should feel that they

are accomplishing more with the system than without the system)

Page 24: COSC 3461 User Interfaces

3461A

Benefits of Good UI Design

Reduced errors on the part of the user Lower support costs Lower initial training costs Less productivity costs for system introduction User efforts focused on the task to be done Reduced rework to meet user requirements High transfer skills across applications Fuller utilization of application functionality

Page 25: COSC 3461 User Interfaces

3461A

Buxton’s Observation

Computer ProcessingPower

Human ProcessingPower

time time

Page 26: COSC 3461 User Interfaces

3461A

Human-computer interaction Human-computer interaction is a discipline concerned

with the design, implementation, and evaluation of interactive systems for human use and with the study of major phenomena surrounding them.

Design

Prototype

Evaluate

The HCI lifecycle is an iterative cycle that involves designing and evaluating with “users” as much as possible.

Page 27: COSC 3461 User Interfaces

3461A

Multidisciplinary nature of HCI

Human side:– cognitive psychology– ergonomics and human factors – sociology and anthropology – linguistics – communication theory – social and organizational psychology – graphic and industrial design

Page 28: COSC 3461 User Interfaces

3461A

Multidisciplinary nature of HCI

Machine side: – computer science – engineering – computer graphics – operating systems – programming languages – software engineering – development environments – artificial intelligence

Page 29: COSC 3461 User Interfaces

3461A

Why are Good UIs hard to build? 50% of design, implementation, maintenance,

code size, ... Multiprocessing: UIs are inherently concurrent!

– multiple inputs, redraws– synchronization, deadlock prevention

Must deal with abort, undo, redo anytime (this requires lots of state info to be kept)

Real-time requirements Must be robust (users do lots of odd things!)

Page 30: COSC 3461 User Interfaces

3461A

Why are Good UIs hard to build? (2) API & UI logic complexity Reactive instead of proactive: the user dictates

what the system should do Hard to modularize (OO user interface design) Exhaustive testing of UIs is hard – how to ensure

robustness? Evaluation with users is time consuming ...

Page 31: COSC 3461 User Interfaces

3461A

Where do we go from here?

Implementation of User interfaces– Widgets, UIMS– Event-driven programming– Model-View Controller

Human-Computer Interaction (HCI)– User interface design – Evaluation of user interfaces (usability and

heuristic analysis)

Page 32: COSC 3461 User Interfaces

3461A

UI Implementation

Mechanics– Event Driven Programming – Model-View-Controller Concept

Graphical User Interfaces (GUI’s)– Window Systems, Toolkits, Frameworks– GUI Builders

Character User Interfaces (CUI’s)– Command Line and Natural Language Interfaces

Page 33: COSC 3461 User Interfaces

3461A

UI Implementation (2)

UI Prototyping

Interaction Devices (Input & Output Devices)– User Interfaces for Virtual Environments

Page 34: COSC 3461 User Interfaces

3461A

Design of UIs

Designing with users: focus on how users work.– User-centered design (COSC 4341)– Participatory design (COSC 4341)

Designing without users– Task-centered design (COSC 4341)– UI design notations (COSC 4341)– Usability heuristics– Guidelines

Page 35: COSC 3461 User Interfaces

3461A

Evaluation of User Interfaces

Evaluation with user testing Evaluation with usability inspection

methods– heuristic evaluation– cognitive walk-through

Page 36: COSC 3461 User Interfaces

3461A

Let’s look at some code

http://java.sun.com/

DemoLargestConsole.java DemoLargestGUI.java DemoHelloWorld.java DemoHelloWorld2.java DemoSwing.java

Page 37: COSC 3461 User Interfaces

3461A

Thank you!