The Personal Self-Assessment Environment

Project 6 Software Requirements Specification

Last modified: Mon Oct 18 11:06:36 HST 1999

Overview

This semester, you will be incrementally constructing a "Personal Self-Assessment Environment"---a small software system that you can use to build assessment quizzes on topics of your choice. You can think of this system as a flexible, configurable set of "intelligent flash cards" that you can use to help you learn factually-oriented material. Each assessment quiz consists of a set of multiple choice questions, where one or more of the potential answers can be correct. No "short answer" or "essay" question types are allowed so that the system can automatically grade and correct your answer on each question. Some example application areas for the personal self-assessment environment are learning vocabulary words in a foreign language, important events in history, or technical concepts relevent to a certification exam. Note that many technical certification exams are multiple choice and automatically graded, making this software ideal for certification self-study.

Project 6 Increment: GUI Improvements.

This increment involves a redesign of your GUI and incorporation of feedback for each question.

  1. First, the software must conform to all of the requirements stated in prior projects. This includes coding standards, JavaDoc standards, command line argument processing, etc. Your Project 4 software must pass all of the test cases created for prior projects.

  2. You must have completed module 12 before starting this module.

  3. This is version 6.0. You should have a single (typically static) string instance somewhere in your program storing this version number. This single string instance should be used whenever the version number is printed. It is a design error for you to create multiple copies of the version number string. Remember to update the first line of your output to refer to this version string.

  4. The software must support the optional command line argument "-guiTwo".

    First, guiTwo must not suffer from any of the problems detailed in the Project 5 Feedback. (In particular, it must not suffer from the "inefficient screen real estate management" problem.) For most of you, this means a substantial (if not total) redesign of your interface.

    Big Hint: rather than blindly hack code, which will take an enormous amount of time and which may not result in success for many of you, I suggest that you begin by doing some research on GUI design using Java. Before beginning the design of this program, take five or ten hours to read authoritative references on Java GUI design. A few online resources to get you started are:

    However, don't rely on these alone. In addition, I also strongly suggest that you visit your local big-box bookstore (Border's, Barnes and Noble), and spend some time looking through their Java reference section. An hour or two there, even you ultimately decide not to buy any of the books, will probably make a tremendous difference in the quality of your GUI.

  5. In addition to creating an improved GUI, you must add one new functionality: a "score" button alongside the "next" button. When the "score" button is pressed, the display of the current question is changed to indicate which answers are correct, which are incorrect, and what the user's score on that particular question is. I will leave it to you to design an effective interface for indicating the correct and incorrect questions and resulting score, but one approach would be to consider the use of color.

Philip Johnson