Brad Myers Advanced User Interface Software Spring, 2017

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

INFO3315 HCI Human-Computer Interaction Introduction Part 2.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 11 Designing for Usability I.
Automating Tasks With Macros
Class 6 LBSC 690 Information Technology Human Computer Interaction and Usability.
Lecture 7 Date: 23rd February
User Interface Design: Methods of Interaction. Accepted design principles Interface design needs to consider the following issues: 1. Visual clarity 2.
Ch 7 & 8 Interaction Styles page 1 CS 368 Designing the Interaction Interaction Design The look and feel (appearance and behavior) of interaction objects.
User Interface Design. Overview The Developer’s Responsibilities Goals and Considerations of UI Design Common UI Methods A UI Design Process Guidelines.
Chapter 13: Designing the User Interface
The Internet & The World Wide Web Notes
1 Lecture 1: Course organization; Why are user interfaces hard to design and implement? and Types of User Interfaces Brad Myers Advanced User Interface.
Computer for Health Sciences
Lesson 4 Computer Software
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
1 Lecture 2: Why are User Interfaces Hard to Design and Implement? and Types of User Interfaces Brad Myers Advanced User Interface Software.
Ch 6 - Menu-Based and Form Fill-In Interactions Yonglei Tao School of Computing & Info Systems GVSU.
System Design: Designing the User Interface Dr. Dania Bilal IS582 Spring 2009.
Computer –the machine the program runs on –often split between clients & servers Human-Computer Interaction (HCI) Human –the end-user of a program –the.
11.10 Human Computer Interface www. ICT-Teacher.com.
User Interface Styles A method for getting information from the user or interfacing with a user. Usually, interfaces provide more than one style: Command.
User interface design. Recap OOD is an approach to design so that design components have their own private state and operations Objects should have constructor.
CSC 480 Software Engineering Lecture 19 Nov 11, 2002.
SWE205 Review Spring Why is software unusable? Users are no longer trained. Why? Feature creep Inherently hard: a problem of communication Designed.
Overview of the rest of the semester Building on Assignment 1 Using iterative prototyping.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
MarkNotes Question 1 The Human Computer Interface (HCI) is an important part of an ICT system. Describe four factors which should be taken.
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
E.g.: MS-DOS interface. DIR C: /W /A:D will list all the directories in the root directory of drive C in wide list format. Disadvantage is that commands.
Stanford hci group / cs376 u Jeffrey Heer · 26 May 2009 User Interface Toolkits.
Different Types of HCI CLI Menu Driven GUI NLI
Conceptual Design Dr. Dania Bilal IS588 Spring 2008.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
Conceptual Model Design Informing the user what to do Lecture # 10 (a) Gabriel Spitz.
Human Computer Interface INT211
Systems and User Interface Software. Types of Operating System  Single User  Multi User  Multi-tasking  Batch Processing  Interactive  Real Time.
6. (supplemental) User Interface Design. User Interface Design System users often judge a system by its interface rather than its functionality A poorly.
Programming Logic and Design Seventh Edition Chapter 12 Event-Driven GUI Programming, Multithreading, and Animation.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Human Computer Interaction Lecture 21 User Support
Chapter 6 : User interface design
Human Computer Interaction (HCI)
The Importance of the User Interface
Support for the Development of Interactive Systems
GUI Design and Coding PPT By :Dr. R. Mall.
The Desktop Screen image displayed when a PC starts up A metaphor
Human-Computer Interaction
11.10 Human Computer Interface
System Design Ashima Wadhwa.
Usability engineering
Usability engineering
Prototyping.
Unit 2 User Interface Design.
Introduction to Computers and Java
Human Computer Interaction (HCI)
Introduction CSE 1310 – Introduction to Computers and Programming
Understand Windows Forms Applications and Console-based Applications
Chapter 6: Interfaces and interactions
Software engineering USER INTERFACE DESIGN.
Design, prototyping and construction
Usability and user Interfaces
Chapter 2: System Structures
GRAPHICAL USER INTERFACE
Systems Analysis and Design in a Changing World, 6th Edition
Web Standards and Accessible Design.
The Importance of the User Interface
Chapter 1: Programming Basics, Python History and Program Components
Lecture 22: HCI Design March 15, /6/2019
Design, prototyping and construction
Presentation transcript:

Brad Myers 05-830 Advanced User Interface Software Spring, 2017 Lecture 4: Why are User Interfaces Hard to Design and Implement? and Types of User Interfaces Brad Myers 05-830 Advanced User Interface Software Spring, 2017 © 2017 - Brad Myers

Who are “Users”? People who will use a product or web site. As opposed to the “Designers” People who create the system or web site Designers  Users You are the designer Have to make an effort to Know The User © 2015 - Brad Myers

What is the “User Interface”? Everything the user encounters Functionality & Usefulness Content Labels Presentation Layout Navigation Speed of response Emotional Impact Documentation & Help Book calls it “User Experience” © 2015 - Brad Myers

What is “Usability”? = Quality! Learnability Efficiency Memorability Productivity Memorability Little “re-learning” required Errors Satisfaction Pleasurable © 2015 - Brad Myers

User “Experience” (UX) Even more than “usability” Usability focuses on performance User Experience Emotion, Heritage Fun, Style, Art Branding, Reputation Political, social personal connections Beyond just the device itself – “Service Design” Blends: usability engineering, software engineering, ergonomics, hardware engineering, marketing, graphic design © 2015 - Brad Myers

Why Hard to Design UIs? “It is easy to make things hard. It is hard to make things easy.” No silver bullet Seems easy, common sense, but seldom done right Once done right, however, seems “obvious” User Interface design is a creative process Designers have difficulty thinking like users Often need to understand task domain Can’t “unlearn” something © 2017 - Brad Myers

Can’t Unlearn Something © 2017 - Brad Myers

Why Difficult, 2 Specifications are always wrong: "Only slightly more than 30% of the code developed in application software development ever gets used as intended by end-users. The reason for this statistic may be a result of developers not understanding what their users need." -- Hugh Beyer and Karen Holtzblatt, "Contextual Design: A Customer-Centric Approach to Systems Design,“ ACM Interactions, Sep+Oct, 1997, iv.5, p. 62. Need for prototyping and iteration © 2017 - Brad Myers

Why Difficult, 3 Tasks and domains are complex Word 1 (100 commands) vs. Word 2013 (>2000) MacDraw 1 vs. Illustrator BMW iDrive adjusts over 700 functions Adding graphics can make worse Pretty  Easy to use Can’t necessarily just copy other designs Legal issues All design/development involves tradeoffs Add Features Test/Fix Bugs Test/Fix usability Time-to-market © 2015 - Brad Myers

Why are User Interfaces Difficult to Implement? © 2017 - Brad Myers

What are the most difficult kinds of programs, in general? What properties make a task difficult to program? © 2017 - Brad Myers

Why Are User Interfaces Hard to Implement? They are hard to design, requiring iterative implementation Not the waterfall model: specify, design, implement, test, deliver They are reactive and are programmed from the "inside-out" Event based programming  More difficult to modularize They generally require multi-processing To deal with user typing; aborts  Window refresh  Window system as a different process  Multiple input devices © 2017 - Brad Myers

Why Hard to Implement? cont. There are real-time requirements for handling input events Output 60 times a second  Keep up with mouse tracking  Video, sound, multi-media Need for robustness No crashing, on any input  Helpful error messages and recover gracefully  Aborts  Undo © 2017 - Brad Myers

Why Hard to Implement? cont. Lower testability Few tools for regression testing Little language support Primitives in computer languages make bad user interfaces  Enormous, complex libraries  Features like object-oriented, constraints, multi-processing Complexity of the tools Full bookshelf for documentation of user interface frameworks MFC, Java Swing, VB .Net, etc. Difficulty of Modularization © 2017 - Brad Myers

Examples Difference between displaying “hello” in console and displaying a blue rectangle in a window Difficulty to read a file name Readln() in Pascal, Java, C++, etc. Vs. tool in modern toolkits Complexity of the file dialog itself You must deal with aborting, undo, etc. © 2017 - Brad Myers

Why Tools? The quality of the interfaces will be higher. This is because: Designs can be rapidly prototyped and implemented, possibly even before the application code is written. It is easier to incorporate changes discovered through user testing. More effort can be expended on the tool than may be practical on any single user interface since the tool will be used with many different applications. Different applications are more likely to have consistent user interfaces if they are created using the same user interface tool. A UI tool will make it easier for a variety of specialists to be involved in designing the user interface. © 2017 - Brad Myers

Why Tools, cont. The user interface code will be easier and more economical to create and maintain. This is because: There will be less code to write, because much is supplied by the tools. There will be better modularization due to the separation of the user interface component from the application. The level of expertise of the interface designers and implementers might be able to be lower, because the tools hide much of the complexities of the underlying system. The reliability of the user interface may be higher, since the code for the user interface is created automatically from a higher level specification. It may be easier to port an application to different hardware and software environments since the device dependencies are isolated in the user interface tool. © 2017 - Brad Myers

Success of Tools Today’s tools are highly successful Window Managers, Toolkits, Interface Builders ubiquitous Most software built using them Are based on many years of HCI research Brad A. Myers. “A Brief History of Human Computer Interaction Technology.” ACM interactions. Vol. 5, no. 2, March, 1998. pp. 44-54. © 2017 - Brad Myers

What should tools do? Help design the interface given a specification of the tasks. Help implement the interface given a design. Help evaluate the interface after it is designed and propose improvements, or at least provide information to allow the designer to evaluate the interface. Create easy-to-use interfaces. Allow the designer to rapidly investigate different designs. Allow non-programmers to design and implement user interfaces. Provide portability across different machines and devices. Be easy to use themselves. © 2017 - Brad Myers

Tools might do: Provide sets of standard UI components Guide the implementation Help with screen layout and graphic design. Validate user inputs Handle user errors Handle aborting and undoing of operations Provide help and prompts Deal with field scrolling and editing Insulate the application from all device dependencies and the underlying software and hardware systems. Support features in the interface that allow the end user to customize the interface. © 2017 - Brad Myers

Types of User Interfaces User Interface Styles © 2017 - Brad Myers

Input Devices QUERTY keyboard (other types) Mouse (1, 2 or 3 buttons) Stylus or fingers Single touch Multi-touch Other pointing devices: Stylus or pucks on tablets or PDAs Issue: buttons, stability, etc. "Light pens" on screens DataGloves, eye tracking, etc. “Bat" 3-D input device Speech input Other sensors Tilt, accelerometer, compass, etc. Computer-connected camera presence free-space gestures eye-tracking © 2017 - Brad Myers

Output Devices Older: Raster-scan screens LCD panels TTY on paper 24x80 terminals: "glass-TTY" Vector screens Raster-scan screens Color, monochrome LCD panels Tiny (watch), phone-size, tablet-size, "normal size" Wall-size 3-D devices Head-mounted displays (VR systems) Stereo "Real" 3-D Speech output Non-speech audio © 2017 - Brad Myers

Application Types Each has own unique UI style, and implementation challenges Word processors Drawing programs CAD/CAM Painting programs Hierarchy displays, like file browsers Mail readers Spreadsheets Forms processing WWW Interactive games Visualizations Automated-teller machines (ATM) Virtual Reality Multi-media Video Animation Controlling machinery © 2017 - Brad Myers

Metaphors Content metaphors desktop paper document notebook with tabs score sheet , stage with actors (Director) accounting ledger (spreadsheet) stereo (for all media players) phone keypad calculator Web: "Shopping Carts" Quicken: "CheckBook" Interaction metaphors = tools, agents: "electronic secretary“ © 2017 - Brad Myers

User Interface Styles (from Nielsen text, 1993) A method for getting information from the user or interfacing with a user. Usually, interfaces provide more than one style: Command language for experts with menus for novices Menus plus single characters (Macintosh & Windows) Appropriate style depends on type of user and task. Important issues: Who has control? Ease of use for novices. Learning time to become proficient Speed of use (efficiency) once become proficient. Generality/Flexibility/Power (how much of user interface with this technique cover?) Ability to show defaults, current values, etc. Skill requirements required (e.g., typing) © 2017 - Brad Myers

1) Question and Answer (Nielsen describes 1, 2 & 3 as "line-oriented”) Computer asks questions, user answers. Used by some simple programs, and also expert systems. "Wizards" in Microsoft products Telephone interfaces ("press 1 for sales, 2 for support, ...") Pros and cons: + Easy to implement (writeln, readln) + Easy for novices - Can't correct previous errors, or to change your mind. Except in Wizards, often have a "Previous" button - Can be slower for experts © 2017 - Brad Myers

2) Single character commands and/or function keys: Function keys can be labeled. Pros and cons: + Fastest method for experts. + Easy to learn how. + so easier to provide telephone support ("just hit the F1 key now") + Usually very simple to implement. - Hardest to remember which key does what. - Easy to hit wrong key by mistake © 2017 - Brad Myers

3) Command Language: User types instructions to computer in a formal language. Unix, DOS shell Google input field Pros and cons: + Most flexible. + Supports user initiative. + Fast for experts. + Possible to provide programming language capabilities for macros, customization, etc. + Takes less space on screen - Hardest for novices. - Requires substantial training and memorization. - Error rates usually high. - Syntax is usually very strict. - Poor error handling. - Hard for user to tell what can do. Implementation difficulty depends on availability of tools like LEX & YACC, and the complexity of the language. Related form is programming language extensions, such as in Lisp. © 2017 - Brad Myers

4) Menus: Pros and cons: Most effective with pointing device. + Very little training needed + Shows available options + Allows use of recognition memory (easier than generation) + Hierarchy can expand selection + Default or current selection can be shown. + Ability to show when parts are not relevant (e.g., greyed out) + Can be used for commands and arguments + Reduces keystrokes (compared to command languages) + Clear structure to decision making. - Usable only if there are few choices - Slow for experienced users (need accelerators) - If big hierarchy, commands can be hard to find - Uses screen space Most effective with pointing device. © 2017 - Brad Myers

5) Form Filling Like menus except have text/number fields that can be filled in. Often used on character terminals (e.g., for data entry). Macintosh and Windows Dialog Boxes are another example. Pros and cons: (Similar to menus) + Simplifies data entry. + Very little training needed + Shows available options + Allows use of recognition memory (easier than generation) + Ability to show defaults and current values. + Ability to show when parts are not relevant (e.g., greyed out) - Consumes screen space. - Expensive to internationalize. Most effective with pointing device. Apparently, most user interfaces are of this form Specialty of Visual Basic © 2017 - Brad Myers

6) Direct Manipulation WIMP (Windows, Icons, Menus, Pointing Device) Interfaces include 6 and 7 Graphical user interface – GUI Definition: Visual Model of the world Visual objects that can be operated on Results of actions are reflected in the objects immediately. Objects, once operated on, can be further operated on. Term coined by Ben Shneiderman Original system: Sketchpad from 1962 "Object-oriented" from user's point of view As opposed to "function-oriented" Usually select object, then give command Hollan argues this user feel more important to DM than Shneiderman's methods © 2017 - Brad Myers

Direct Manipulation, cont. Pros and cons: + User initiated + Easy to learn, intuitive, analogical + Fast to use for object that are on the display + Easily augmented with menus and forms + Provides closure of actions and gesture. + Errors can be avoided. + High subjective satisfaction (fun). - Can be inconvenient and slow if user knows the name of an undisplayed object, but must find it anyway. - Limited power; not all desired actions have a DM analog. - Difficult to provide macros, other user extensible/customizable features. - Difficult to implement © 2017 - Brad Myers

7) WYSIWYG: "What you see is what you get". Like direct manipulation, but more so. Pros and cons: (Similar to direct manipulation) + Can always tell what final result will be. - Screen image may be hard to read/interpret, especially if screen resolution is too low. - Cannot show hidden structure (how the picture was made). - May be very slow at run-time (e.g., page breaks) - Extremely difficult to implement. - WYSIATI: What You See Is All There Is - lack of structure; no ability to show structure © 2017 - Brad Myers

Next generation "Non-Command" or "Next-generation" or “Post-WIMP” Interfaces “Recognition-Based” interfaces Microsoft: “Natural User Interfaces” (NUI) (Mainly Kinect, speech input) "Natural" actions invoke computer response. Issues: mis-interpretation, feedback © 2017 - Brad Myers

8) Gestures: Like user would mark on paper. Pros and cons: + Can be very natural to learn. + Often faster to execute than other techniques. + Give command and parameters together - Many gestures are hard to do with a mouse. - Users must memorize gestures. - No "affordances“ © 2017 - Brad Myers

9) Natural Language E.g., a subset of normal English. Includes speech Pros and cons: + Theoretically easiest for learning. + Speaking is the fastest output technique. - Rather slow for typing - Requires clarification dialog. - Unpredictable. - General systems are impossible with today's technology. Research with Bernhard Suhn showing that if factor in correction times, speech input may be slower and less natural than typing, etc. © 2017 - Brad Myers