Cooper Part II Making Well-Behaved Products Data Entry

Slides:



Advertisements
Similar presentations
Lecture 13 Page 1 CS 111 Online File Systems: Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher.
Advertisements

With Microsoft Access 2010 © 2011 Pearson Education, Inc. Publishing as Prentice Hall1 PowerPoint Presentation to Accompany GO! with Microsoft ® Access.
Creating Web Page Forms
Computer Literacy BASICS: A Comprehensive Guide to IC 3, 5 th Edition Lesson 14 Sharing Documents 1 Morrison / Wells / Ruffolo.
Create a Website on the CWU network Find “How to Post a Web Page with a PC”
Reading Data in Web Pages tMyn1 Reading Data in Web Pages A very common application of PHP is to have an HTML form gather information from a website's.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 12 1 Microsoft Office Access 2003 Tutorial 12 – Managing and Securing a Database.
2.00 Understand Computer Fundamentals Unit Objective: 2.01 Software.
PHP meets MySQL.
SWE205 Review Spring Why is software unusable? Users are no longer trained. Why? Feature creep Inherently hard: a problem of communication Designed.
GUI Widgets Jeff Offutt SWE 432 Design and Implementation of Software for the Web.
Software Engineering Experimentation Rules for Reviewing Papers Jeff Offutt See my editorials 17(3) and 17(4) in STVR
Collecting Data Types, coding, accuracy, file formats and the effect of data loss.
Systems Life Cycle. Know the elements of the system that are created Understand the need for thorough testing Be able to describe the different tests.
William H. Bowers – Rethinking Files and Save Cooper 13.
ITGS Databases.
Microsoft FrontPage 2003 Illustrated Complete Creating a Form.
ICT 111 – PART 2 APPLICATIONS SOFTWARE /11: APPLICATIONS SOFTWARE Remember: Computer hardware VS human body Computer operating systems VS human.
Technology Vocabulary By: Rakeysha Patterson. Search Engine  A computer program that searches documents, especially on the World Wide Web, for a specified.
Lesson 4.  After a table has been created, you may need to modify it. You can make many changes to a table—or other database object—using its property.
1 Using Conditional Formatting & Data Validation Applications of Spreadsheets.
The world leader in serving science Overview of Thermo 21 CFR Part 11 tools Overview of software used by multiple business units within the Spectroscopy.
1 Lesson 14 Sharing Documents Computer Literacy BASICS: A Comprehensive Guide to IC 3, 4 th Edition Morrison / Wells.
Avoid plagiarism Save time and aggravation Make your life EASIER!
Testing and delivery Web design principles. Web development is software development.
[The Design of Everyday Things, Don Norman, Ch 7]
Usability Overview Upsorn Praphamontripong CS
Nat 4/5 Computing Science Software
JavaScript, Sixth Edition
Windows 7 and file management
Paul Ammann & Jeff Offutt
The Desktop Screen image displayed when a PC starts up A metaphor
Testing All Input is Evil pt 2.
Introduction to Operating Systems
Multiple Classes and Inheritance
Chapter 2: System Structures
Arrays and files BIS1523 – Lecture 15.
Krug Chapter 5 B: Software Should be Considerate
User Interface Design and Development
Collaboration with Google Docs
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
Cookies BIS1523 – Lecture 23.
User Interface Design and Development
Krug 8 Dialog Boxes Toolbars
Lesson 14 Sharing Documents
Web User Interface (WUI) Behavior
User Interface Design and Development
Conditions and Ifs BIS1523 – Lecture 8.
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
Krug Chapter 2 How We Really Use the Web and Web Site Design
Software Testing and Maintenance Modifying Code
Software Testing and Maintenance Maintenance and Evolution Overview
CS 321: Human-Computer Interaction Design
Microsoft Office Access 2003
Cooper Part II Making Well-Behaved Products Flow
Krug Chapter 6 B: Flow in UIs
Chapter 1 Cognitive psychology concepts
Norman 7 B: Improving Data Entry
Software Engineering Experimentation
Implementation of security elements in database
The ultimate in data organization
An Introduction to Debugging
Norman Chapter 1 Psychopathology
SDLC Phases Systems Design.
Krug Chapter 2 How We Really Use the Web and Web Site Design
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Instructor Materials Chapter 5: Ensuring Integrity
Software Should be Considerate
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Presentation transcript:

Cooper Part II Making Well-Behaved Products Data Entry Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 632 User Interface Design and Development Cooper Ed4, Ch 14

Data Integrity versus Data Immunity “garbage in, garbage out” means if the users enter incorrect data then the program will behave incorrectly Many developers design the user interface to block invalid data Data Integrity : The state of the program is based on correct, valid input data Input data validation means checking the data before sending it to the software and rejecting it if does not conform 4-Dec-18 © Jeff Offutt

Data Validation is Anti-Usable Input data validation is like a rude guard at a security check who won’t let you through if you have a 4 ounce bottle of eyedrops ! It puts the database needs before the users’ needs It makes users feel like suspects It treats typos like malicious behavior Sometimes invalid data is reasonable We don’t have the complete data We mistyped something It really doesn’t matter — the rules are overly restrictive Data validation makes users feel they are not in control 4-Dec-18 © Jeff Offutt

Most invalid data can be modified to be valid Data Immunity Instead of using data validation to ensure integrity … Make the software immune from invalid data Most invalid data can be modified to be valid by the software ! Four types of immunization Repairing automatically Masking out invalid data Flexible rule enforcement Auditing instead of editing 4-Dec-18 © Jeff Offutt

(1) Repair Data Think about google … if you search on “gorge mson”, google will respond : “Showing results for george mason” Plus a link to a page that matches the original string Examples of automatically fixing data: Words can be converted to numbers (“five” to “5”) Look for relationships in data (“Fairfax, BA” to “Fairfax, VA”) Let the programmers be creative ! Ultimately, it saves money to have programmers work harder than requiring users to work harder 4-Dec-18 © Jeff Offutt

(2) Mask Out Invalid Data For many types of data, the UI can prevent invalid data from being entered Why allow “five” for a number — use masking to ignore all non-numeric characters Fill in dashes automatically, so it doesn’t matter if the users entered “123-45-6789” or “123456789” Use radio buttons or dropdowns when possible An error may not be your program’s fault, but it is your program’s responsibility 4-Dec-18 © Jeff Offutt

(3) Enforce Rules Flexibly Defining good rules is hard — defining perfect rules is impossible ! Humans are not good at being exact Three levels of rules : The restrictions we really want (intent) The restrictions we describe (specifications) The restrictions we implement (law) The three never match perfectly, and a considerate person will consider the intent instead of the law Allow some rules to be bent Always keep a log to check later 4-Dec-18 © Jeff Offutt

Do we have to alert the users right now ? (4) Audit, Don’t Edit If it can’t be fixed … Do we have to alert the users right now ? Missing data is often flagged as a data integrity error Let missing data be entered later Tell the users the data is missing with modeless feedback Modeless : feedback that they do not have to respond to Missing data can often be inferred from existing data TurboTax has a post-entry “tax audit” phase Real-time spell checking unobtrusively tells you when a word is mispelled 4-Dec-18 © Jeff Offutt

Protect users from mistakes Don’t prevent them from doing their jobs Data Entry Summary Protect users from mistakes Don’t prevent them from doing their jobs Users are not the enemy 4-Dec-18 © Jeff Offutt

Rethinking Data Storage The concept of saving files is based on a strange artifact of computer hardware — the disk Clearly implementation-model thinking Microsoft Powerpoint X Do you want to save the changes you made to “CooperCh13.ppt”? Yes Cancel No The choices are NOT equally likely “Yes” is chosen almost all the time Why does printing a document change it? What is the difference between “no” and “cancel”? “no” responds to the question, “cancel” does not A major undo—based on the implementation model 4-Dec-18 © Jeff Offutt

Outside-in design rather than inside-out Mental Model Users think there is only one document, and they own it Implementation model: Two documents, one on disk and one in memory The computer program owns it Users should not need to understand the file system! This leads to a user-centric view … Outside-in design rather than inside-out 4-Dec-18 © Jeff Offutt

Cooper’s Unified File Model User’s view: One copy of the file Users should be able to Save documents automatically Copy Milestone copy (revision control) Rename Move Change the format (Visio – vsd, jpg, eps, …) Reverse changes Abandon all changes We don’t need a “File” menu anymore … 4-Dec-18 © Jeff Offutt

Rethinking Data Retrieval As search engines get more powerful, users find more ways to use them In the 1990s I brought paper to class for the syllabus and schedule Changes would require more paper … A few years ago we would all bookmark the course website Now we use our browsers to search for “swe 632” Searching is a new way to retrieve information 4-Dec-18 © Jeff Offutt

Storage and Retrieval Generally, we need places to put our things And ways to find them when we need them Indexed retrieval works by creating an index of each thing we store To get to a file on our disk, we have to remember where it is ! Directory (folder) and file name 4-Dec-18 © Jeff Offutt

Finding Digital Documents Three ways to find digital documents Positional retrieval – remember where it is Identity retrieval – remember its name Associative (attribute-based) retrieval – remember something about the file Positional and identity retrievals impose a memory burden on the user – hard with tens of thousands of files! Unix find and grep can be used as a primitive associative retrieval Associative file retrieval is badly needed 4-Dec-18 © Jeff Offutt