CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I Administration Assignment 4 grades Software Reuse (Application Packages) Package supports a standard application (e.g., payroll, user interface to Internet information) Functionality can be enhanced by:
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Design for Usability I
Assignment 4 grades
Package supports a standard application (e.g., payroll, user interface to Internet information)
Functionality can be enhanced by:
=> configuration parameters (e.g., table driven)
=> extensibility at defined interfaces
=> custom written sources code extensions
Java is a relatively straightforward language with a very rich set of class hierarchies.
Java programs derive much of their functionality from standard classes
Learning and understanding the classes is difficult.
=> Java experts can write complex systems quickly
=>Inexperienced Java programmers write inelegant and buggy programs
Usability of a computer system is a combination of factors:
User interface design
Help systems and documentation
Freedom from errors
Observing users (user protocols)
effectiveness in carrying out tasks
data and metadata
computer systems and networks
The conceptual model is the user's internal model of what the system provides:
The desk top metaphor -- files and folders
The web model -- click on hyperlinks
The library model -- search and retrieve
The form filling model -- fill form, submit
Example: The Mercury page turner
Theinterface design is the appearance on the screen and the actual manipulation by the user
Fonts, colors, logos, key board controls, menus, buttons
Mouse control or keyboard control?
Conventions (e.g., "back", "help")
Example: Screen space utilization in the Mercury page turner
Interface design is partly an art; there are general principles:
Consistency -- in appearance, controls, and function.
Feedback -- what is the computer system is doing? why does the user see certain results?
Users should be able to interrupt or reverse actions
Error handling should be simple and easy to comprehend
Skilled users offered shortcuts;
beginners have simple, well-defined options
The user should feel in control
What if the user:
is visually impaired or color blind?
does not speak English?
is a poor typist?
There is a tradition of blind programmers
Navigation of web sites need not be only visual
You may have a legal requirement to support people with disabilities
The functional design, determines the functions that are offered to the user
Selection of parts of a digital object
Searching a list or sorting the results
Manipulation of objects on a screen
Pan or zoom
Example: The desk top metaphor
Mouse -- 1 button (Macintosh), 2 button (Windows) or 3 button (Unix)
Close button -- left of window (Macintosh) right of window (Windows)
Data and metadata stored by the computer system enable the functions and the interface
The desktop metaphor has the concept of associating a file with an application. This requires a file type to be stored with each file:
-- extension to filename (Windows and Unix) -- resource fork (Macintosh)
Data validation often requires that a user interface has access to a database (e.g., names and addresses)
The performance, reliability and predictability of computer systems and networks is crucial to usability
instantaneous for mouse tracking and echo of key stroke
5 seconds for simple transactions
Example: Pipelined algorithm for the Mercury page turner
Quality of Service for real time information
Client computers and network connections vary greatly in capacity
Client software may run on various operating systems; it may be current or an earlier version
System designers wish to control clients; users wish to configure their own environments
Performance may be expensive in hardware or special software development
User interface development may be a major part of a software development project
Costs are multiplied if a user interface has to be used on different computers or migrate to different versions of systems
Web browsers provide a general purpose user interface that others maintain
helper applications, plug-ins
HTTP, WAIS, Gopher, FTP, etc.
CGI scripts at server
Before next class, read Sommerville Chapters 17, pages 319 to 346