CS552. User Interface Design

Assignment 6. Usability Engineering

Size of team: 1
What's due: "Customized" version of template GUI code in a file called Util.java, plus HTML files containing online documentation, plus an HTML document that brief outlines what your usability engineering procedures were.
When it's due: Midnight on Monday, June 1

To Do...

As in Assignment 2, you will make small changes to a template that implements a Java interface to a "programmer's assistant" tool. As before, you will only alter particular lines in the code, which are clearly identified by comments. This time, however, your interface must be designed specifically for the needs of first-time programmers.

In addition to applying the guidelines on color and other design elements that we have studied during the course, you must apply some of the "discount" usability engineering techniques described by Jakob Nielsen in his paper "Usability Engineering at a Discount," in Designing and Using Human-Computer Interfaces and Knowledge Based Systems, ed. G. Salvendy and M. J. Smith, Elsevier Science, 1989. That is, you must find some beginning programming students and involve them in the design of the interface. (Recall from the paper that it is not the number of subjects that matters as much as your preparation of materials before you actually meet with them. I recommend that you not try to implement anything in Java until you have gathered multiple rounds of user input; that is, stick with paper prototypes.)

Write a brief outline describing which procedures you actually implemented, at what points in the design process you implemented them, who the users were, and what you learned from them. This may be in the form of a bullet list or outline, but must be submitted as an HTML document.

Your interface will include the following:

Note that the interface still will not actually "do" anything except bring up dialogs.

Specific Directions... Click asst6.tar to download the assignment tarfile. The tarfile, which will be available after May 25, contains all the assignment files. Follow the same procedures to un-tar, build, and run the example code as you did for Assignment 2.

Note that dialog controls have been added (see the "Dialogs" menu for examples) and that an HTML "help viewer" is available (from the "Help" menu).

You will implement the portion of the online help that describes compiling, linking, and running the program

(Assume that the performance analyzer is prof(), gprof(), or any other performance tool with which you are familiar.)

You're not responsible for describing the compiler, debugger, or performance tool itself, but you must make it clear what steps need to be taken in order to use these different procedures correctly (for example, the fact that the debugger cannot work with optimized code). Hopefully, the very design of your interface will prevent most errors from occurring. For example, you could pop up a warning dialog if the user tries to compile with both optimization and debugging info enabled. In this case, you wouldn't need to have much in the help file. If you didn't trap the error, however, you'd have to have very explicit and comprehensive info in the help file.

Collaborating with Others...

You may discuss the meaning of the tool's functions with any of your classmates and you may collaborate in finding test users. Your strategy for implementing usability engineering techniques and your interface implementation must be unique, however.

To Hand In...

Use the hand-in form to submit the location of a directory containing:
  1. your revised version of file Util.java; this will be linked with my copy of the appropriate class files to grade your solution.
  2. the HTML files that implement your online help facility; these can be named whatever you like, as they will be invoked only from within Util.java
  3. an HTML file called ue-procs.html containing a bullet list or outline describing what usability engineering procedures you used in carrying out this assignment.