CS 4753 -- Human Factors in Software Development
Assignment 2: Interface Design
Due November 22
Objectives
The objective of this assignment is to combine the various skills and
techniques that have been learned in this course to a user interface
design problem. In Assignment 1 a methodology for finding out
information about the user population was practiced. The assignment also
provided practice in observing users and relating the user's behavior
to the design of your proposed interface. Assignment 2 asks you to
apply all of these skills to making a prototype of your
proposed interface.
The assignment also has a sub-objective, that of giving practice in
developing a ``good'' user interface within the constraints of the
design environment. The classic constraint in user interface design
is the small amount of time allowed to build an acceptable interface
for the user. Due dates for this assignment impose a similar
constraint requiring decisions about which user interface features
can be included in the design given the minimal amount of time
available. A second constraint--as common as the first--is the
constraints of the external user, the software and the hardware
environments. User interface designs need to adapt to the history of
prior interfaces, to the consistency requirements of similar interfaces
and to the limitations of the hardware and development software that
will be used. To simulate a portion of these constraints, you are
being asked to design a prototype of your system using a graphical
user interface builder tool.
Directions
Your basic task is to design a prototype of your proposed user
interface. You can use any available graphical user interface
prototyping tool that you would like, for example, Hypercard, Visual
Basic, UIMX, Director, etc. In class you will learn about Sun's
DevGuide system, so it is clearly an option. Note that the design
will not be a final implementation. You will use the GUI tool to
create a detailed mock-up of your design.
You are expected to apply the information you have gathered about your
intended user in the two previous assignments to your design. The
assignment will have 8 steps. They are:
- Develop a set of design criteria about what the interface should
provide to its users. This is more than the typical requirements
list for software design. In addition to describing the functions the
system should perform, the design criteria should contain user
information.
For example, if you were designing a calendar system, your design
criteria might be, ``have appointment book open to current date
because this is the date that is most frequently accessed by the
user.'' Use the information from Assignments 1 and 2 to aid in
developing the design criteria.
- Sketch out your design on paper. You may sketch out more than
one design. For each design, be sure that it is described in enough
detail so that users can see screen display changes and individual
inputs that they would need to make if they were using the designed
interface.
- Elicit user input and changes on your design. You can query your
friends, parents, colleagues, or significant others.
- Repeat steps 2 and 3, adapting your design to match what you
have learned about the design from showing it to potential users.
- Draw out your design in terms of screen displays and
transition diagrams showing user actions.
- Learn a particular GUI builder tool well enough to develop
screen layouts for your design. You are not being asked to build a
complete implementation of your design, but enough of a prototype to
demonstrate the design to users.
- Build a mock-up of your design in the builder tool. If appropriate,
build a storyboard (different screen displays with descriptions of
user actions below the displays). Have these storyboards describe a
sequence of user interactions with the system. If you desire, add some
"smarts" behind your interface so that the user can interact with it
in a simplified manner. Expect to use what you
develop in Assignment 4 to run your usability studies.
- Write up you design including a description of the processes you
went through in making the design follow the needs and psychology of
the user.
What you should turn in
Turn in the same style 8-page maximum HTML write-up on the design process that
was conducted. The write-up should include, in order, the following
items:
- A description of the final design. This should be presented in
enough detail so that it is possible for a programmer to implement the
design. Use diagrams/figures of specific screens to show what the user will
see and the actions available to the user at each state. List the
design criteria that produced this design in the process in your
description.
- Some type of diagram showing the user actions at each
state of the system and the transitions that take place following the
user actions.
- A discussion of the user information that you used to create your
design, e.g., data from the papers you read on people's use of similar
systems, your own studies of people's use of analogous systems, or
information gleaned form the questionnaires you administered. The
discussion should contain the psychological as well as functional
aspects of the task.
For example, if you were designing a calendar system, you might
include the functional information fact that people write down multiple
appointments occurring at the same time (if this is true) and use
this information to keep track of what other people are doing, not just
what their appointments are. As psychological data you might indicate
that people have trouble with the limited amount of space available
and often put down abbreviated information which is indecipherable at a
later date (if you find this to be true).
- A conclusion describing what is good about your design and what
you are not very happy with but have had to include in the design
given the constraints of the design problem and the trade-off
decisions you needed to make.
IMPORTANT HINT: The previous assignment prepared you for this design
assignment. Look back at the evaluations you have performed and
transfer the concepts in these evaluations to evaluating your
design.
Note that the included figures, diagrams, etc., can be put in an
appendix and they need not count against your 8 pages.
Also turn in one page that lists the file and path to your interface
design if it is here on our UNIX system (otherwise, let us know what
you did and on what platform). Tell us whether this is a description
file, an executable, both, other, etc.
You will be graded on the quality of your user interface, the
creativeness of your design in solving the user interface
problems you encountered and your ability to incorporate into
the design process, the user data you collected in Assignment 1.
After you turn in your assignment, we will be scheduling 10 minute
demo sessions when your group will demonstrate your interface to the
instructor and TA. This will be your chance to give us a feel for the
interactive nature of your design.