DTUI Booksite

Project 10: Developing an E-mail System Interface

[Project 9] [Projects Menu] [Project 11]



Team Size:
Duration:

The major work in this course is a term project in user interface design, prototyping, and usability testing. It is divided into four separate assignments, each with its own due date and grade. Assignment 1 will be the user interface design and specification; Assignment 2 will be implementing a prototype of your design; Assignment 3 will be evaluating your design with a few users; and Assignment 4 will be revising your system based on the evaluation.

The "deliverables" for this project will be:

Keep in mind that the most important products are the designs and the test results. The real purpose of the prototype is to make it possible to do the user testing. 

Assignment 1: Design

Completely design an interactive system for sending electronic mail. The capabilities required are: Do not add any other functionality to your design.

You should write specifications of the user interface you design, using the methodology we have studied (use the templates and examples at the end of this handout). First, design the conceptual level, that is, the set of objects and actions the user needs to know about in order to use the system effectively. Then, the semantic level design describes each function including its parameters, feedback, and potential error conditions. The syntactic level design describes the syntax of the system, using one or more state diagrams. The lexical level design gives the definitions of the tokens.

In addition, you should write the user documentation--a short (3 pages or less) new user's getting started guide which will tell the user how to use the program. Assume that the program is already running--no discussion of power switches, operating systems, etc.

Finally, prepare an analysis of the command sequence needed to carry out each of several tasks, including the keystroke count of user actions for each of the tasks. Count these categories of actions: keystroke, mouse movement, mouse click (up/down is one action), hand movements between mouse and keyboard. What conclusions can you draw about the design of the user interface of this system from this "paper" analysis, before you implement it?

Use the following tasks for this analysis. For each, assume that the system is in its initial start-up state (but with a file of names and addresses already loaded).

  1. Compose and send a message to John Jumbo
  2. Add an entry for someone named Ellie Elephant, whose email address is ellie@cs.tufts.edu
  3. Locate Thomas Trunk (who is already in the list) and add an additional email address, tommy@aol.com
List out the sequence of actions the user has to do for each, to accompany the counts.

Assumptions

The user population for whom you are designing this system has used computers and graphical user interfaces only casually in the past and never for any of the tasks your system performs. Use of the system should be self-evident: that is, there are no training courses or manuals, just the three-page "How to get started ... " document. These users need to have the capability that the system provides. Be sure that the simple things are still simple to do, i.e., look-up and send mail must be fast and easy!

Assume that you have a personal computer with keyboard, mouse, and graphic display. (In your prototype you can simulate this with a window on a bigger machine.) You are connected to the email network through a mailer which handles all of the details of properly routing your messages.

For simplicity in the implementation, you can assume that the user enters the text of the message in continuous string, without any editing or backspacing and that every message text will consist of exactly five words.

It is a good idea to design your interface in the abstract, trying not to think about the specific features and limitations of the prototyping language you will use.

Deliverables

For Assignment 1, you should hand in:

 

Assignment 2: Prototype

Now implement your user interface design in a prototype. We will discuss Visual Basic as a prototyping language; if you are already familiar with another language suitable for prototyping, such as Hypercard or TCL/TK, you can try that instead, but you will be more on your own.

In any case, how you implement your prototype is not important. The goal is to have a prototype that runs well enough that a user could sit down and try out the system. It doesn't have to perform any of the actual semantic functions, it should just go through the dialogues or screens that make up the syntactic and lexical levels of the user interface. For example, the semantics can use "canned" data; and when you send mail, nothing really need get sent.

You should not invest energy in implementing a system with more functionality than that in the assignment, or with on-line help, even if it was in your original design. Instead, invest energy in making your interface as easy to learn and use as possible, which means working with test users in the usability testing phase of the project, making changes, and working with more test users.

Deliverables

For Assignment 2, you should hand in:

Assignment 3: Usability Testing

Next you will perform a critical analysis of your interface using the "talking out loud" methodology, with at least 5 users.

Prepare a list of tasks for the test users to perform (e.g., "Add an entry to the list for your mother"). It should take no more than 10 minutes for an experienced user to perform these tasks.

Now, get five friends (one at a time) to perform the tasks on the list using your system. They need not be expert computer users, and they should not be from this course. Give them the "getting started" documentation you wrote and the list of tasks, start up the system, and ask them to perform the tasks, while thinking aloud, that is, verbalize what they are thinking as they try to figure out and use the system. Watch quietly and take notes on problems they run into and possible solutions. In addition, ask each user to fill out a debriefing questionnaire asking how they liked the system and what problems or misunderstandings they had.

Deliverables

For Assignment 3, you should hand in:

Assignment 4: Redesign

After you have conducted your usability testing, modify your user interface to try to eliminate some of the problems that you have observed. Some of the changes might also be to the task list or to the instruction sheet, to clarify wording problems

Submit the new design and implementation along with a discussion of what problems you found and what you changed.

Deliverables

For Assignment 4, you should hand in:

 

Some Templates and Examples for User Interface Specifications 
Conceptual Level

The conceptual design identifies the set of objects and actions the user needs to know about in order to use the system. Describe the conceptual model in terms of objects, relations between objects, actions on objects, and attributes of objects.

Identify the objects and actions that the user should know about, along these lines:

Conceptual Model 
Objects: 
Object Attributes: 
Object Relationships: 
Actions on Objects: 
Actions on Object Attributes: 
Actions on Object Relationships:


Semantic Level

The semantic design documents the semantic specification for each action you have identified in the conceptual design, plus any other actions which are needed. The semantic specification includes a description of the function, including its parameters, feedback, and potential error conditions.

Document each action from the conceptual design along these lines:

Function: 
Parameters (Both explicit and implicit): 
Description: 
Feedback: 
Errors: 
Semantic Design Example

A typical semantic specification for a single function:

Function:

Add a symbol to the display

Parameters:

1. Which symbol type?

2. Where on the display?

Description:

An instance of the symbol is created and added to the display at the designated position. The instance becomes the currently-selected object, such that succeeding operations apply to it. The previous currently-selected object is no longer selected.

Feedback:

The instance is drawn on the display, and is highlighted because it is the currently-selected object. The previous currently-selected object is de-highlighted.

Errors:

1. The symbol type is unknown (can be engineered out by use of a menu for selecting symbol types).

2. The symbol position is outside the viewport (can be engineered out by constraining positioning device to viewport).


Syntactic Level

Formally define the syntax using state diagrams. Start with a top-level state diagram of the system, and document each sub-state including sequences of user actions and feedback. Make sure you stay at the syntactic rather than the lower lexical level.

Show a high-level state diagram of your system.

Show a detailed state diagram for each sub-state, including sequences of user actions and feedback.

Syntactic Design Example

Please see state diagram on attached page.


Lexical Level

The lexical level design defines each of the actions identified in the syntactic level (the "tokens") in terms of actual hardware or system operations.

Simply give the definition of each of your tokens.

(With thanks to John Silbert of George Washington University for assignments on which parts of this assignment are based.)
 

Rob Jacob

Contributors Page

Please send comments and suggestions to the Booksite Director
Last Updated: 12 March 2000