GUI Design Principles. User interface strongly affects perception of software – Usable software sells better – Unusable web sites are abandoned Perception.

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

User Interface Structure Design
GENERAL USABILITY CONSIDERATIONS. Overview of usability Aspects of usability – Learnability, memorability, efficiency, error reduction Techniques for.
Arthur Fink Page 1 Notes on Designing User Interfaces for OpenEdge GUI for.NET Arthur Fink Arthur Fink Consulting © 2008 by Arthur Fink.
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
User Interface Design Yonsei University 2 nd Semester, 2013 Sanghyun Park.
COMP 3715 Spring 05. Computer Interface Interaction between human and computer Has to deal with two things  User’s mental model Different user has different.
Spring /6.831 User Interface Design and Implementation1 Lecture 1: Usability.
Learning about software Interfaces.  In this lab, you will examine  Excel Spreadsheet Interface  Access Database Interface  You will also learn about.
User Interface Design Notes p7 T120B pavasario sem.
Arthur Fink Page 1 Thinking about User Interface Design for OpenEdge GUI for.NET (or any other environment) by Arthur Fink
7M701 1 User Interface Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 15
1 SWE Introduction to Software Engineering Lecture 26 – User Interface Design (Chapter 16)
Interface Guidelines & Principles Responsiveness.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 15Slide 1 User interface design l Designing effective interfaces for software systems.
Gui Design Taken from “Gui Bloopers” by Jeff Johnson.
Principles and Methods
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks1 7.1 User Centred Design (UCD) Software development should focus on the needs.
User Interface Design. Overview The Developer’s Responsibilities Goals and Considerations of UI Design Common UI Methods A UI Design Process Guidelines.
User interface design Designing effective interfaces for software systems Objectives To suggest some general design principles for user interface design.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
© 2005 by Prentice Hall Chapter 3c Designing Interfaces and Dialogues.
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13: Designing the User Interface
User Centered Design Lecture # 5 Gabriel Spitz.
User interface design. Recap User Interface GUI Characteristics (Windows, Icons, Menus, Pointing, Graphics) User Centered Design User Interface Design.
User Interface Evaluation CIS 376 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Spring /6.831 User Interface Design and Implementation1 Lecture 6: User-Centered Design GR1 (project proposal & analysis) released today, due.
User interface design.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
Human Interface Engineering1 Main Title, 60 pt., U/L case LS=.8 lines Introduction to Human Interface Engineering NTU Seminar Amy Ma HIE Global Director.
User Interface Theory & Design
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University User Interface Design.
GUI Bloopers Basic Principles. What is a GUI Blooper? “Bloopers” are mistakes that software developers frequently make when designing graphical user interfaces.
Architecture Business Cycle
CS 4720 Usability and Accessibility CS 4720 – Web & Mobile Systems.
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.
©RavichandranUser interface Slide 1 User interface design.
Q Q Human Computer Interaction – Part 1© 2005 Mohammed Alabdulkareem Human Computer Interaction - 1 Dr. Mohammed Alabdulkareem
Design for Interaction Rui Filipe Antunes
1 CSCI E-170: L01 February 2, Lecture Plan Introduction to this class Introduction to usability GUI usability: Design Process, Principles & Bloopers.
Usability Evaluation/LP Usability: how to judge it.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Click to edit Master subtitle style USABILITY and USER INTERFACE DESIGN Application.
SEG3120 User Interfaces Design and Implementation
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
User Interface Structure Design Chapter 11. Key Definitions The user interface defines how the system will interact with external entities The system.
Slide 1 Chapter 11 User Interface Structure Design Chapter 11 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman.
Software Architecture
Technical Paper Review Designing Usable Web Forms – Empirical Evaluation of Web Form Improvement Guidelines By Amit Kumar.
User Interface Theory & Design Lecture 6a 1.  User interface is everything the end user comes into contact with while using the system  To the user,
Usability 1 Usability evaluation Without users - analytical techniques With users - survey and observational techniques.
Input Design Lecture 11 1 BTEC HNC Systems Support Castle College 2007/8.
Prototyping. REVIEW : Why a prototype? Helps with: –Screen layouts and information display –Work flow, task design –Technical issues –Difficult, controversial,
Intermediate 2 Computing Unit 2 - Software Development.
LECTURE 18 16/11/15. MAKING THE INTERFACE CONSISTENT Consistency is one way to develop and reinforce the users conceptual model of applications and give.
Yonglei Tao School of Computing & Info Systems GVSU Ch 7 Design Guidelines.
Chapter 5:User Interface Design Concepts Of UI Interface Model Internal an External Design Evaluation Interaction Information Display Software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
GUI Design. User Interfaces Everywhere –telephone systems –automobiles –automated teller machines –doors! Bad User Interfaces are Everywhere.
Cs413_design02.ppt GUI Design The User Controls Navigation Traditional GUI design the designer can control where the user can go gray out menu options.
1 Usability evaluation and testing User interfaces Jaana Holvikivi Metropolia.
6. (supplemental) User Interface Design. User Interface Design System users often judge a system by its interface rather than its functionality A poorly.
Chapter 6 : User interface design
Web User Interface (WUI) Behavior
Information System Design Info-440
GUI Design.
GUI Design 24-Feb-19.
Presentation transcript:

GUI Design Principles

User interface strongly affects perception of software – Usable software sells better – Unusable web sites are abandoned Perception is sometimes superficial – Users blame themselves for UI failings – People who make buying decisions are not always end-users The User Interface Is Important

The Cost of Getting It Wrong Users’ time isn’t getting cheaper Design it correctly now, or pay for it later Disasters happen – Therac-25 radiation therapy machine – Aegis radar system in USS Vincennes

You are not the user – Most software engineering is about communicating with other programmers – UI is about communicating with users The user is always right – Consistent problems are the system’s fault …but the user is not always right – Users aren’t designers User Interfaces Are Hard to Design

User Interfaces are Hard to Build User interface takes a lot of software development effort UI accounts for ~50% of: – Design time – Implementation time – Maintenance time – Code size

Usability Is Only One Attribute of a System Software designers have a lot to worry about: – Functionality – Usability – Performance – Size – Cost – Reliability – Security – Standards Many design decisions involve tradeoffs among different attributes We’ll take an extreme position in this presentation

Usability Engineering Is a Process

Design Task analysis – “Know thy user” Design guidelines – Avoid bonehead mistakes – May be vague or contradictory

Implement Prototyping – Cheap, throw-away implementations – Low-fidelity: paper – Medium-fidelity: HTML, Visual Basic GUI implementation techniques – Input/output models – Toolkits – UI builders

Evaluate Evaluation puts prototypes to the test Expert evaluation –Heuristics and walkthroughs Predictive evaluation – Testing against an engineering model (simulated user) Empirical evaluation –Watching users do it

Iterative Design

Help and Documentation Users don’t read manuals – Prefer to spend time working toward their task goals, not learning about your system But manuals and online help are vital – Usually when user is frustrated or in crisis Help should be: – Searchable – Context-sensitive – Task-oriented – Concrete – Short

Visibility of System Status Keep user informed of system state – Cursor change – Selection highlight – Status bar – Don’t overdo it… Response time – < 0.1 s: seems instantaneous – s: user notices, but no feedback needed – 1-5 s: display busy cursor – > 1-5 s: display progress bar

Error Reporting, Diagnosis, Recovery Be precise; restate user’s input – Not “Cannot open file”, but “Cannot open file named paper.doc” Give constructive help – why error occurred and how to fix it Be polite and nonblaming – Not “fatal error”, not “illegal” Hide technical details (stack trace) until requested

Usability The term “usable” means –it must do what the user wants (most important). –quick to use –relatively error-free. –easy to learn (least important).

Basic Principle #1: Focus on the users and their tasks, not on the technology Understand the users –Decide who the intended users are –Investigate characteristics of the intended users –Users: Not Just novice vs. experienced –Collaborate with the intended users to learn about them Understand the tasks –Decide what set of tasks to support –Investigate the intended tasks –Collaborate with users to learn about the tasks Consider the context in which the software will function

Basic Principle #2: Consider function first, presentation later does NOT mean “design and implement the functionality first and worry about the UI later.” don’t jump right into GUI layout Develop a conceptual model

Basic Principle #2: Consider function first, presentation later Develop a conceptual model –a conceptual model – a model of an application that the designers want users to understand (as simple as possible, the fewer concepts the better) –Task focused - The more direct the mapping between the system’s operation and the tasks it serves, the greater the chance that your intended conceptual model will be adopted by the users –Perform an objects/actions analysis - This specifies all the conceptual objects that an application will expose to users, the actions that users can perform on each object, the attributes (user visible settings) of each type of object, and the relationships between objects –Object relationships - Conceptual objects may be related to each other in several ways –Develop a lexicon - defining the terminology to be used throughout the software and its documentation –Write task scenarios - developers can write use cases or task scenarios depicting people using the application, using only terminology from the conceptual model –Base UI design on the conceptual model - The user interface should be based on the conceptual model. It translates the abstract concepts of the conceptual model into concrete presentations, controls, and user actions. Scenarios can then be rewritten at the level of the user interface design.

Basic Principle #3: Conform to the users’ view of the task Strive for naturalness Use users’ vocabulary, not your own Keep program internals inside the program Find the correct point on the power/complexity trade-off

Basic Principle #4: Design for the common case Make common results easy to achieve –Two types of “common”: “how many users?” vs. “how often?” –The more frequently a feature will be used, the fewer clicks it should require –The more users will use a feature, the more visible it should be –Combinations: frequent by many, frequent by few, infrequent by many, infrequent by few Design for core cases; don’t sweat “edge” cases

Basic Principle #5: Don’t distract users from their goals Don’t give users extra problems Don’t make users reason by elimination

Basic Principle #6: Facilitate learning Think “outside-in,” not “inside-out” Example: Textual ambiguity Example: Ambiguous button label Example: Graphical ambiguity Consistency, consistency, consistency Provide a low-risk environment

Basic Principle #7: Deliver information, not just data Design displays carefully; get professional help The screen belongs to the user Preserve display inertia

Basic Principle #8: Design for responsiveness What is responsiveness? Designing for responsiveness ■ acknowledge user actions instantly, even if returning the answer will take time; ■ let users know when it is busy and when it isn’t; ■ free users to do other things while waiting for a function to finish; ■ animate movement smoothly and clearly; ■ allow users to abort lengthy operations they don’t want; ■ allow users to judge how much time operations will take; ■ do its best to let users set their own work pace.

Basic Principle #9: Try it out on users, then fix it! Test results can surprise even experienced designers Schedule time to correct problems found by tests Testing has two goals: Informational and social There are tests for every time and purpose

Usability Example The first clue that there might be a problem here is the long help message on the left side. Why so much help for a simple selection task? Because the interface is bizarre! The scrollbar is used to select an award template. Each position on the scrollbar represents a template, and moving the scrollbar back and forth changes the template shown. This is a cute but bad use of a scrollbar. Notice that the scrollbar doesn’t have any marks on it. How many templates are there? How are they sorted? How far do you have to move the scrollbar to select the next one? You can’t even guess from this interface.

Here’s one way it might be redesigned. The templates now fill a list box on the left; selecting a template shows its preview on the right. This interface suffers from none of the problems of its predecessor: list boxes clearly afford selection to new or infrequent users; random access is trivial for frequent users. And no help message is needed. Usability Example

GUI Bloopers GUI Control Bloopers Navigation Bloopers Textual Bloopers Graphic Design and Layout Bloopers Interaction Bloopers Responsiveness Bloopers Management Bloopers

GUI Control Bloopers Blooper 1: Confusing checkboxes and radio buttons

Avoiding Blooper 1

Blooper 3: Using command buttons as toggles

Blooper 4: Using tabs as radio buttons

Blooper 5: Too many tabs

Avoiding Blooper 5 Keep the number of tabs small. If you have so many panels that their tabs won’t fit into a single row, the real problem is that you have too many panels. Reorganize them into fewer panels, requiring fewer tabs. Use Another control instead of tabs

Avoiding Blooper 5 Never use dancing tabs

Blooper 6: Using input controls for display-only data

Avoiding Blooper 6

Blooper 7: Overusing text fields for constrained input Alternatives to text fields

Blooper 8: Dynamic menus

Navigation Bloopers successful navigation cues let people know: –where they are, –where they’ve been, –where they can go –whether the goal is near or far.

Blooper 18: Too many levels of dialog boxes The general rule is: Avoid more than two levels of dialog boxes. A dialog box can bring up another one, but beyond that, users may lose their way

Textual Bloopers

Graphic Design and Layout Bloopers

Deviating from task focus Requiring unnecessary steps Burdening users’ memory Taking control away from users Interaction Bloopers

Deviating from task focus The first three interaction bloopers concern user interfaces that are poorly focused on the tasks the software is intended to support. Some UIs needlessly expose the implementation, impose unnecessary constraints, or present confusable concepts, distracting users from their goals and impeding their learning of the software.

Requiring unnecessary steps A UI should be designed so that the most common tasks that the software is intended to support are quick and easy to do (Basic Principle 4). That means minimizing the steps required to do those tasks. If users have to do unnecessary steps to accomplish their tasks, that is a blooper. This section describes three such bloopers.

Burdening users’ memory If an employee of your company offered a customer choices that were not really available, the customer would consider the employee, and your company, to be either misinformed and incompetent or deliberately lying and untrustworthy. When your software lists “available” products or services, they must be available. You can list out-of-stock items or booked-up dates so customers can see them, but they should be marked as unavailable so customers won’t go to the effort of ordering them only to discover several steps later that they wasted their time.

Burdening users’ memory

Taking control away from users

Responsiveness Bloopers Responsiveness Principle 1: Responsiveness is not the same as performance Responsiveness Principle 2: Processing resources are always limited Responsiveness Principle 3: The user interface is a real-time interface Responsiveness Principle 4: All delays are not equal: software need not do everything immediately Responsiveness Principle 5: Software need not do tasks in the order in which they were requested Responsiveness Principle 7: Human users are not computer programs

References Jeff Johnson - GU Bloopers 2.0. Common User Interface Design Don’ts and Dos, Morgan Kaufmann Publishers, 2008