User Interface Design and Development

Slides:



Advertisements
Similar presentations
GUI Testing. High level System Testing Test only those scenarios and outputs that are observable by the user Event-driven Interactive Two parts to test.
Advertisements

Interaction Styles Interface Widgets. What are Interaction Styles?  A Collection of interface objects and associated techniques from which an interaction.
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
User Interface January 14, 2011 CSE 403, Winter 2011, Brun Three Mile Island.
Systems Analysis and Design in a Changing World, 6th Edition
SWE205 Review Spring Why is software unusable? Users are no longer trained. Why? Feature creep Inherently hard: a problem of communication Designed.
Clearly Visual Basic: Programming with Visual Basic 2008 Chapter 4 I Need a Tour Guide.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
GUI Widgets Jeff Offutt SWE 432 Design and Implementation of Software for the Web.
Why do we need good user interfaces?. Goals of User Interfaces Usable – how much effort to do a task? – example: often-used buttons easier to find – example:
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
William H. Bowers – Using Controls Cooper 26.
User Interface Components Lecture # 5 From: interface-elements.html.
Oct 021 Outline What is a widget? Buttons Combo boxes Text components Message boxes.
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 13 GUI Programming.
An Introduction to Forms. The Major Steps of a MicroSoft Access Database  Tables  Queries  Forms  Macros  Reports  Modules On our road map, we are.
William H. Bowers – Eliminating Excise Cooper 10.
Oct 091 Example Program DemoInputValidation1.java DemoInputValidation2.java.
Chapter 3 I Need a Tour Guide (Introduction to Visual Basic 2010) Clearly Visual Basic: Programming with Visual Basic nd Edition.
William H. Bowers – Specification Techniques Torres 17.
[The Design of Everyday Things, Don Norman, Ch 7]
Usability Overview Upsorn Praphamontripong CS
Excel Tutorial 8 Developing an Excel Application
Microsoft Word 2016 Lesson 1.
Visual Basic.NET Windows Programming
Unit & District Tools Phase 1
Development Environment
Topics Graphical User Interfaces Using the tkinter Module
GUI Design and Coding PPT By :Dr. R. Mall.
Chapter Topics 15.1 Graphical User Interfaces
User Interface Components
Excise Tasks CS 4640 Programming Languages for Web Applications
Imran Hussain University of Management and Technology (UMT)
Example Program DemoLowLevelEvents.java DemoHighLevelEvents.java
Prototyping.
Unit 2 User Interface Design.
User Interface Design and Development
Cooper Part III Interaction Details Designing for the Desktop
DB Implementation: MS Access Forms
Software Usability and Design
Program and Graphical User Interface Design
Krug Chapter 5 A: Omit Needless Words and Defaults and Memory
Accidental and Essential Problems Excise Tasks
Krug 8 Dialog Boxes Toolbars
Norman Chapter 6 Krug Chapter 7 C: Navigation
Predefined Dialog Boxes
Web User Interface (WUI) Behavior
MODULE 7 Microsoft Access 2010
User Interface Design and Development
Cooper Part II Making Well-Behaved Products Excise
Cooper Part II Making Well-Behaved Products Data Entry
DB Implementation: MS Access Forms
Messages and Input boxes
Cooper Part II Making Well-Behaved Products Flow
Krug Chapter 6 B: Flow in UIs
Cooper Part III Interaction Details Designing for the Desktop
Norman 7 B: Improving Data Entry
Topics Graphical User Interfaces Using the tkinter Module
Norman 7 A: User-Centered Design
GUI Design 24-Feb-19.
Chapter 15: GUI Applications & Event-Driven Programming
Review for Final Exam Spring 2018
Homework Assignment 5 My Patriot Web Evaluation
Graphical User Interfaces (GUI)
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
CMPE 280 Web UI Design and Development April 16 Class Meeting
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Review for Final Exam Spring 2017
Presentation transcript:

User Interface Design and Development Cooper Part III Interaction Details Design Details: Controls and Dialogs Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 632 User Interface Design and Development Cooper Ed4, Ch 21

Outline Controls Dialogs Eliminating Errors, Alerts, and Confirmations 11 November 2018 © Jeff Offutt

Controls (also: Widgets) Controls are objects on the screen that communicate between users and software Four types of controls Imperative controls : used to initiate a function Selection controls : used to select options or data Entry controls : used to enter data Display controls : used to visually manipulate the program We see a limited set of controls HTML implements very few GUI controls Windows and Mac use only a fraction of the invented controls 11 November 2018 © Jeff Offutt

Types of Controls Imperative Entry Bound Value Buttons Spinner Icon buttons Hyperlinks Entry Bound Value Spinner Dials and sliders Thumbwheels Validated entry Selection Check boxes Toggle buttons State-switching buttons Radio buttons Switches Combo icon buttons Lists Display Text Scrollbars Splitters Drawers 11 November 2018 © Jeff Offutt

Pull-down Menus vs Radio Buttons They both accomplish the same task Radio buttons are fixed on the screen, Pull-down menus show up on-demand Radio buttons are faster to learn, faster to use, less error prone Use radio buttons except when : More than 7 choices Screen is crowded Choices available depend on other selections (the choices change dynamically) 11 November 2018 © Jeff Offutt

Controls Summary Don’t use the first control that comes to mind Think about the user’s needs and design the right solution 11 November 2018 © Jeff Offutt

Outline Controls Dialogs Eliminating Errors, Alerts, and Confirmations 11 November 2018 © Jeff Offutt

Put primary interactions in the primary window Dialog Design Dialog boxes are the most inconveniently designed part of most GUIs (according to Cooper) We have already talked about: Unnecessary dialog boxes Placement Confusing button labels Put primary interactions in the primary window 11 November 2018 © Jeff Offutt

Use dialogs for functions out of the main flow Purpose of Dialogs Dialog boxes are interruptions and inherently intrusive We cannot always afford to spend 20 minutes talking every time someone comes to our office Dialog boxes are excise tasks Use dialog boxes for : Exceptional interaction (errors, printing, …) Dangerous interaction (requiring extra concentration) My favorite worst use of a dialog box: Find in Netscape, MS Word, and PPT Adobe integrates find into the toolbar Firefox uses keyboard accelerator: “/string” This is the first use of using advanced vim-style navigation in a GUI Use dialogs for functions out of the main flow 11 November 2018 © Jeff Offutt

Dialog Interaction Use dialogs to organize controls and information about a single domain object or application function Use verbs in function dialog title bars Use object names in property dialog title bars 11 November 2018 © Jeff Offutt

Modal and Modeless Dialog Boxes Modal : No other interaction until the dialog box is closed Modeless : Users can still interact with “owning” program Do not put error messages in modal dialog boxes The message should disappear with the next interaction Modal boxes are : easy to program easy to understand annoying too common Modeless dialog boxes: Have terminating commands (close) Are less intrusive Differentiate modeless from modal dialog boxes 11 November 2018 © Jeff Offutt

Five Kinds of Dialog Boxes Property dialog box Users can change object settings font printing options Function dialog box User performs some function find print spell checking Process dialog box Tells user the system is busy Hour glass is not always sufficient Process box should: Explain what’s happening Express that it is unusual State how much longer … this is hard! Provide a cancel Notification dialog box Messages from software to users Should be non-intrusive Users can delay viewing Bulletin dialog box Gives the user feedback error message confirmation messages User does not request these! 11 November 2018 © Jeff Offutt

Dialog Etiquette A lot of UI design is about writing software that is polite to users – users simply want respect Respect my goals Respect my time Property and function dialogs are requested by users Process, notifications and bulletin dialogs are sent by software 11 November 2018 © Jeff Offutt

Dos and Don’ts of Dialog Boxes All dialog boxes should be movable Dialog title bars should indicate function (verb) and object Dialog boxes should behave as transient programs, but be as small as possible If a user moves a dialog box once, it should remember and return to its new home Don’t use them unless necessary Always include OK and Cancel Semantics of a close button on a dialog box is unclear – don’t use it “Help” is not equivalent to “cancel” and should not be adjacent 11 November 2018 © Jeff Offutt

Summary : Dialog Etiquette Dialog boxes are hard to get right and often very annoying Dialog boxes are often poorly designed because they are NOT designed Programmers use default built-in boxes without thinking 11 November 2018 © Jeff Offutt

Outline Controls Dialogs Eliminating Errors, Alerts, and Confirmations 11 November 2018 © Jeff Offutt

Most error dialogs stop the proceedings with idiocy Error Dialog Boxes These are often poorly designed and always unwelcome Users want to avoid errors, not told they made errors Users want software to deal with their errors Users want to do things their way, not the software’s way Polite people don’t announce their friends’ mistakes publicly Is the purpose of an error message to … tell the users they made mistakes ? tell the users the software is too stupid to understand them ? Most error dialogs stop the proceedings with idiocy 11 November 2018 © Jeff Offutt

Eliminate Error Messages Input validation only checks the simplest of mistakes Go read chapter 15 again Make the software immune to unexpected inputs Assume the users know what they’re doing Use widgets that make syntactic mistakes impossible Spinners, lists, masking Correct the mistake automatically If I say “good morning” at 5:00 in the afternoon, you will self-correct by assuming I meant “good afternoon” Make errors impossible 11 November 2018 © Jeff Offutt

Alerts and Confirmations Users don’t need to know everything the software does Users don’t care that the software successfully printed Users don’t care that the software synchronized Users don’t need to be asked to confirm everything Do; don’t ask Make all actions reversible Provide modeless feedback to help users avoid mistakes 11 November 2018 © Jeff Offutt

Summary None of these things are technically complicated But they require the programmers to do more work Using the right controls allows you to apply effectively all the concepts from the course 11 November 2018 © Jeff Offutt