The Java Mail Reader Requirements Document

Winter Quarter 1996
1/19/96

Document Author:

Joel Furnsinn

Project Sponsors:

GregoryAbowd
Ian Smith

The Just Another Version of Anarchy Team:

Brice Wilson (Manager)
Jay Bredenberg (Architect)
Aaron Sims (Programmer)
John Stevens (Programmer)
Joel Furnsinn (Technical Writer)


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

1.0 Project Description

Click Project Description for the project description.


2.0 Scenarios


3.0 Storyboard

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.

4.0 Functional Requirements

The following functional requirements are listed in order of importance to the implementation of the project.

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

The following non-functional requirements are listed in order of importance to the implementation of the project.

5.1 Fault Tolerance

5.2 Desk Top Like Environment

5.3 Acceptable Speed


6.0 Platform and Network Environment

The J.A.V.A. mail reader has four requirements for use: Other than these requirements, the J.A.V.A. mail reader should be platform independent.

7.0 Risk Assessment

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