The Java Mail Reader Requirements Document
1.0 Project Description
2.0 Scenarios
2.1 The Computer Show
2.2 The Mailing List
2.3 The Multimedia File
3.0 Storyboard
4.0 Functional Requirements
4.1 Allow the User to Read Mail
4.2 Implement Physical Folders
4.3 Support for Messages in MIME Format
4.4 Support for Virtual Folders
5.0 Non-Functional Requirements
5.1 Fault Tolerance
5.2 Desk Top Like Environment
5.3 Acceptable Speed
6.0 Platform and Network Environment
7.0 Risk Assessment
Click
Project Description
for the project description.
Joe User, business man, has had a long day at the computer show. It's late
in the day and Joe wants to check his e-mail because he is expecting an
important message. However, Joe doesn't feel like going back to the office,
so instead he wanders over to a booth that has a web demo running. Seeing
that the demo is using a Java capable browser, Joe breathes a sigh of relief
and goes to his J.A.V.A. mail reader on the web. As the mail reader comes up,
Joe enters his name and password and proceeds to look through his messages.
Being an avid Java fan, Joe User decides to get on the Java mailing list.
However, after one day Joe realizes that the number of mail messages he
gets from the mailing list is causing him to miss the other important messages
that arrive. After wondering what to do about this problem, Joe remembers that
he can use his J.A.V.A. mail reader to sort his mail for him, by moving certain
categories of messages to separate folders. Again Joe breathes a sigh of relief
as he lets the mail reader do the work for him, saving him both time and effort.
One evening, Joe is talking to a friend of his named Bob File on the phone. Bob
tells Joe that he has this great multimedia file that he wants Joe to see.
Joe asks Bob to e-mail the file to him. The next day at the office, Joe brings
up his J.A.V.A. mail reader and sure enough there's a message from Bob marked
by the mail reader as a MIME multimedia message. Joe then tells the mail reader
what he wants to do with the message, and the mail reader handles it for him,
allowing Joe to worry about other more important things.


A Quick Description of Virtual Folders
In our mail program we would like to create a way to sort incoming mail into
different "virtual folders". Although a piece of mail will still physically be in the inbox, it
will appear in a virtual folder instead of the inbox if the user defined sort
sends that piece of mail to the virtual folder. This is the sorting that is talked about
in the second scenario above.
In our mail program, we would like to create a way to sort incoming mail into
different "virtual folders". A virtual folder is not a separate folder
in any physical way, but rather simply a user designated sort for incoming
mail. When a new piece of mail appears in the inbox, the program will
check to see if the user has defined any virtual folders for that
piece of mail. If there is such a designation then the mail will show
up in that virtual folder, although the file containing that piece of mail
will not be moved in any way and will physically remain in the inbox. This
is the sorting that is talked about in the second scenario above.
The following functional requirements are listed in order of importance
to the implementation of the project.
- Show the user the mail messages he currently has available
- Pull any messages the user requests off the server
- Display the requested message to the user
- Save messages to a physical folder from a server
- Allow the user to move mail between the different physical folders
- Allow the user to create/delete physical folders
- Identify MIME files for the use with some sort of icon
- Allow the user to save the MIME file
- "Display" the MIME file for the user
- Read in the configuration information from the user to the mail reader
- Sort the inbox into the configured folders for the user
- Allow the user to create/delete virtual folders
- Have the program mail the user's configuration to itself
The following non-functional requirements are listed in order of importance
to the implementation of the project.
- The program should only delete mail after the mail has been marked for
deletion and the program has received an explicit delete command
from the user
- When the program is told to save a message, that
message will be marked as ready to be deleted. The program must assure
that the message is not deleted until the save is completed
- The program should try to simulate a desktop environment
- The program should allow the user to create windows for messages
and lists
- The program should allow the user to create descriptive icons for
various folders
- If the program does not receive a response from the server in a specified
amount of time, the program will tell the user that the server is
currently unreachable
The J.A.V.A. mail reader has four requirements for use:
- A connection to the World Wide Web
- A web browser which can run Java (beta) applets
- A mail server which can use the IMAP protocol
- The web server which holds the files for the mail reader must be on the
server which is running the IMAP files
Other than these requirements, the J.A.V.A. mail reader should be platform
independent.
As of now we can identify three major risks associated with the cration of the
J.A.V.A. mail reader. The first risk is whether or not we can implement all the
things we want to do using the AWT functions in Java. Although AWT implements
many of the windowing functions for us, it is unclear whether certain things
are currently possible in Java (drag and drop is the example which brought
up this concern). If there are certain things that are not available to
us, then we must revise the interface for our mail reader to something that
is implementable in AWT.
Another risk is the IMAP protocol that we will be using in our mail reader.
The concern here is that there may be some bugs or incompatibilities in the
IMAP code which will not allow us to do certain things. If this problem
comes up, the first solution would be to contact
Ian Smith and see if he can
fix the problem. If Ian can not fix the problem in a timely manner, it
may be necessary alter the function which depends on that part of IMAP.
The third risk is that Netscape will not be able to handle MIME files
in the way we want it to. If there is no way to set up communication
between Java and Netscape so that Netscape can handle the MIME files
on its own, it will be necessary simply to save the files to disk. Although
this is not as elegant a solution as we would like, it will still
satisfy the requirements for the project.
Link to the Java Mail Reader Project Notebook
Last Modified 1/28/96 -- Joel Furnsinn