CompSci 108
Spring 2009
Software Design and Implementation

Revised Edition

In addition to the original specifications, your team must add the following functionality to your program. These features emphasize specific design issues and are meant to help you think about what it means to "hard-code" things within your program and how to provide a interface for programmer's to access flexibility when using your program.

Specification

Before adding any new features to your program, you should refactor it based on a consensus of the individual team member's responses to the review of your project by another team. This should improve the design of your code and prepare it for future additions.

Next, you should complete the base features from the original specifications. For example, if you did not implement searching mail messages, you should complete that. You also completely implement at least one of the extra credit options. If your original submission was completely functional, then you do not need to add anything for this step.

You should add a GUI to your project using Java's swing package. I will leave the details of the interface up to you, but it should be similar to search features on any major computing platform and allow the user to do at least:

Additionally, you should allow the user to enter quoted (i.e., exact) search string.