DRAFT Design > User Interface

This is an initial version. We will appoint a user interface designer who will create a new document to replace this one.

Release Information

Project: PIMS
Internal Release Number: 0.1
Related Documents:
XHTML 1.0
W3C accessibility guidelines.
HTTP1.1

Overview

What are the most important facts that a developer should know about the user interface of this system?
Most of the UI will be web pages.
Applets will be created where they can offer improvements to the UI.
What are the ranked goals for the user interface of this system?
  1. Understandability and learnability
  2. Task support and efficiency
  3. Safety
  4. Consistency and familiarity

Metaphors, Exemplars, and Standards

What is the central metaphor of this UI design?
PARAGRAPH
What existing systems have user interfaces similar to the UI you want to build? What specific aspects are similar?
  • HALX for look and feel
  • MOLE for conformance to HTTP standards
What UI design standards, guidelines, and styles are you following?
  • W3C Accessibility guidelines for web pages. We will follow these partly in order to enable our customers to comply with the Disability Discrimination Act as employers, but mostly because they are better working practices that help acheive testability and platform independence.
  • Standard good practice for web design, including:
    • Links are underlined. They provide access to a new view of the information in PIMS.
    • Buttons are used for actions that update the information in PIMS.
    • Tables will be used for tabular data, never for layout.
    • PIMS will not use frames.
    • PIMS data (page content) is presented in black on white.
    • Page scaffolding is presented in dark colour on white, or black on light colour.
    • Colour on colour, or white on dark background, is used only for enlarged text.
    • Colours, sizes, and fonts can be overrided by a client-side style sheet.
    • Sizes will be expressed in ems not pixels.
    • The standard font will be arial, since it resizes better than any other font.
  • Java UI guidelines for applets
  • HTTP rules for GET, POST, and redirect. GET requests will be read only. POST requests will print error messages if the request is invalid, or on success will return a 307 redirect to a page that displays the result of the POST.
  • Where possible we will provide javascript validation of forms as a usability feature, but the application will also work if accessed without javascript. (This is necessary for security as well as accessibility.)

Task Models

What types of users will use this system?
See the user needs document.
What types of tasks will those users perform?
See the use case suite.

Content Model / Interaction Contexts

TODO: List interaction contexts. Each interaction context is a "place" where users see information and where they select commands or options. In a graphical user interface, a interaction context will eventually be implemented as a window or dialog box. In other applications, an interaction context may be implemented as, e.g., a web page, a voice menu prompt, or a physical control panel.
TIP: Each interaction context is an exclusive mode: the user can only use one interaction context at a time. All the components within one context are visible and usable at the same time. E.g., if a window has three tabs, that is three interaction contexts because only one tab can be used at a time.
TODO: For each interaction context, list the abstract components within that context. Each component is a piece of information, or a user interface affordance. In a GUI, each abstract component will eventually become a widget, but the choice of specific widgets happens later. Choice of abstract components corresponds to step 2 in the HTML prototyping example demonstrated in class.
TIP: Most high frequency use cases should be carried out in only one interaction contexts. A use case that requires three interaction contexts could be hard to use. However, interaction contexts with too many components can also be hard to use.
Interaction Context
--Abstract UI Components
Purpose Contents / Constraints / Behavior
Login dialog Verify that the current user is actually the person that they claim to be.
--Prompt Tell the user that this dialog is to log in. "Please log in".
--Message area Give the user some feedback about the login process. Initially blank. Changes to "Checking username and password" when the user presses "Login". Changes to "Invalid username or password, please try again", if login fails.
--Username Identify the user account that the current user is trying to access. The name of the user account. Regex: [-_a-z0-9]{1-16}. The application should not do anything that would help users guess usernames. E.g., this should not be a combo-box with recent users listed, and it should not offer auto-complete.
--Password Verify that the current user knows a secret password that only the true user of that user account should know. The password of 4-16 characters. Do not display the password on the screen. The application should not do anything that would help users guess passwords.
--Login Allow the user to indicate that they have completed entry of their username and password. "Login" Only enabled when Username != "". If the username or password is incorrect, delay a few seconds, and then clear all fields.
--Lost Password Allow the current user to start a process of generating a new password for a given username. "Forgot your password? Click here." Only enabled when Username != "".
PAGE-NAME PURPOSE
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
PAGE-NAME PURPOSE
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
MAIN-WINDOW-NAME PURPOSE
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
DIALOG-NAME PURPOSE
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
DIALOG-NAME PURPOSE
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS
--ABSTRACT-COMPONENT-NAME PURPOSE CONTENTS

Technical Constraints / Operational Contextualization

What are your assumptions about the output devices?
We assume that the user has a 17-inch or larger screen with 1024x768 pixels that can display thousands of colors (16 bit or more).
We assume that users have balck and white printers for printing reports, and that some user locations have bar code printers.
What are your assumptions about the input devices that you will use?
We assume that the user has a standard keyboard and mouse.
Some user locations will have hand-help bar code readers.
What are your assumptions about the amount of time users will spend on tasks?
TBD
What windowing systems, UI libraries, or other UI technologies will you use?
Standard Java Swing with no extra libraries.
Simple XHTML and CSS with simple GIF images, and javascript with DOM1. The pages will also be functional in browsers without javascript.

User Interface Checklist

TODO: Answer the following questions to help evaluate the design. You may add or remove questions to fit your project.

Understandability and learnability

Are there any labels of icons that are likely to be misunderstood?
1-3 SENTENCES
Is the user's current place and state clearly visible? E.g., wizard step 2 of 5, or edit-mode vs. play-mode.
1-3 SENTENCES
Are advanced options clearly separated from the most commonly used options?
1-3 SENTENCES
Are there no invisible options or commands? E.g., hold down the control key when opening a dialog box to see adbvanced options.
1-3 SENTENCES

Task Support and Efficiency

Which use cases force the user to work through more than two interaction contexts?
1-3 SENTENCES
Which use cases force the user to perform slow or difficult UI steps? E.g., entering a long code number like an ISBN. E.g., long mouse-drag operations.
1-3 SENTENCES

Safety

Are there any dangerous or irreversible actions that are done with only one step?
1-3 SENTENCES

Consistency and Familiarity

Do UI elements in your system work the same as they do in the existing example systems you identified?
1-3 SENTENCES
Do all elements in your system that appear the same, actually function the same?
1-3 SENTENCES
Do all elements in your system that appear the same, actually function the same?
1-3 SENTENCES
Are all elements share consistent visual characteristics such as font and color scheme, unless there is a reason for them to differ?
1-3 SENTENCES
Are labels used consistently throughout the system? E.g., not "forward/back" in some contexts and "next/prev" in others.
1-3 SENTENCES