SCorTrap Requirements
Assignment 3
CISC 323, Winter 2006
Queen's University, Kingston, Ontario
Disclaimer: This list of requirements would not be an adequate solution for Assignment 2.
We are throwing out a lot of the requirements that were gathered during the Q&A process of Assignment 2.
This doesn't mean they weren't good requirements; in fact, we hate to see most of them go! We're just reducing the scope of this problem so that it's of a reasonable size to expect you to do a design during the timeframe of this assignment. To stay with the alien story, let's say that the starting date for Commander Grog's mission has been moved forward in time, so that Swifp's team will not have time to implement a fully-featured system. Commander Grog has agreed that these reduced requirements will be sufficient to start out with. Hopefully, the program will be extended later (by you or others) to satisfy all of the requirements gathered in Assignment 2. But that's not your problem now. You are playing the role of Swifp's software team, and your job is to design a system that meets the requirements below.
A different software team is working on two modules (Java classes) that will become part of the SCorTrap program. Your design may assume that these components will be available to you. When it's time for the implementation stage, the other team will supply these components and details about how to use them. At design time, you don't need any details, just the knowledge that these components will be available and the general functionality they will provide. Your job is to design the rest of the program, which will consist of the user interface and calls to these other components, plus a small bit of logic to calculate estimated exposures.
Calculation Engine:
This class will calculate exposure based on the 7 data items collected on the surface (time period, atmospheric pressure, etc.).
Database:
The database module will take care of recording information about each researcher and operator. It will be able to store its data into a file and read data back from that file, in order to preserve the data between runs of the program.
The database will record the following for each researcher:
- name (we assume there are no pairs of researchers with the same name)
- total exposure so far
- is the researcher currently on the Sol III?
- how many times has the researcher been treated and recovered from maximum oxygen exposure?
It will record the following information for each operator:
- name (again, assuming unique names)
- password
- does this operator have administrative privileges?
Finally, the database will record the official recall number. This will initially be 1307 BTUs, but may be changed as the aliens gather more medical data.
The database module will provide ways to do the following:
- query or change any of the above information.
- write its data to a backup file (should be done when the program is ending)
- read its data from a backup file (should be done at program startup)
- write a nicely formatted report to a file listing its data about every researcher
- write a nicely formatted report to a file listing the researchers on Sol III who should be recalled
The database programming team will provide you with an initial database, empty except for the recall number and
one administrative user (name "Swifp", password "JamesTKirk").
Highlighting For Test Plan: The requirements you need to test in your Test Plan (Task 3) are highlighted in red on this page -- and also marked with asterisks (***) in case anyone wants to print this out on a black & white printer.
Note About Pronouns: We really don't know the proper way to refer to the aliens -- what genders they come in or even how many. So the operators and researchers are referred to as "it" or "they".
Functionality (and Security) Requirements:
Any operator must be able to do the following:
- log in (supplying name and password) and log out. Only one operator may be logged in at one time.
- change its password
- ***enter exposure data for any researcher who is currently on Sol III. That means entering 7 numbers (time period, atmospheric pressure, etc.). Prompts and displays should include the units. After entry of legal data, the operator should be shown the current data about the researcher: total current exposure, estimated exposure after another orbit, and whether the researcher should be recalled. The display should include the fact that exposure is in BTUs.
- request a report (in a file) listing the current data about every researcher
- request a report (in a file) listing the researchers currently on Sol III who should be recalled.
- record the fact that a researcher has left the ship for Sol III or vice versa. (Note that oxygen exposure is not the only reason a researcher may return to the ship.)
- record the fact that a researcher on the ship has been successfully treated for oxygen exposure
Operators with administrative privileges must also be able to add and delete operators from the system, and change the recall value.
Error handling:
- ***If an operator enters illegal data, it should see some kind of error message and the database should not change. When entering researcher data (the 7 values), the operator should be allowed to edit its input or cancel.
- Illegal data includes the following:
- ***Researcher data values outside the legal limits as stated in the discussions between Swifp and Hobs, reported in Assignment 2.
- An attempt to enter exposure data for a researcher not in the database or not currently on Sol III
- An attempt to set the recall value outside the legal limits
- Anything that's inconsistent with the current location of a researcher. For example, a researcher
who is currently on Sol III can't leave the ship for Sol III or be treated on the ship. A researcher who is
currently on the ship shouldn't be having new exposure data reported.
- References to researchers not in the database
- If an operator attempts to log on but is not in the database or gives the wrong password, it should be refused. No other action is necessary.
- If an operator without administrative privileges attempts an administrative operation, it should be refused. No other action is necessary.
Other requirements:
- Readability: The code must be modular and written with good style, including comments. This will affect implementation more than your design.
- Language: The aliens have decided that practicing language (both natural and computer) will be helpful in understanding their culture. All queries and messages in the program should be in English. Your code must be written in Java, version 1.3 or higher.
- Usability: The program should be fairly simple and quick to use. Instructions and error message must be clear. You may assume that the operators are experienced computer users, speak English fluently, are good typists, and are familiar with the issues of oxygen exposure as described in the original description of CorTrap.
Exclusions:
The points above include all of the requirements for SCorTrap. The following are some requirements or issues that were brought up during Assignment 2 that you may ignore in the interests of time:
- It is not necessary to provide different interfaces for different kinds of operators (novice to expert), or to make the interface customizable in any way (changing fonts, etc.)
- The program does not need to log user activity
- You do not need to provide a way for an operator to change previously entered data (except for editing illegal input data as noted above)
- Don't worry about the possibility of database corruption
- No batch processing facilities are needed; operators will enter data for one researcher at a time
- You do not have to provide a user manual or online help facilities
- No redundancy is necessary
- You may assume that the data on the cards will be accurate. You may ignore the possibility of a suit reporting -1's as discussed in Assignment 2
- Password encryption is the responsibility of the database module, not your code
Questions?
We have tried to make the above lists as specific as possible. But you may still have questions about the exact requirements for SCorTrap. If so, please ask your questions on the Assignment 3 forum and we will answer them as quickly as possible. We prefer to answer specific questions there instead of in class or via e-mail, so that everyone sees exactly the same set of requirements.
back to Assignment 3 page