ESP Inc. designs custom software for education administration, and the system required by Gen U is similar to other products we have successfully delivered. Our design team has experience identifying and solving many of the issues that a course registration system will involve. Nonetheless, we stress that the system we design for Gen U will be a custom system, targeted for Gen U's particular needs.
We are also sensitive to the fiscal environment that public institutions operate in and our goal is to produce a system that is not only efficient, reliable and easy to use, but also cost-effective and delivered on time.
The requirements specification we received indicates that Gen U has just begun the process of computerizing it's administration, and did not specify the computer hardware this system will operate on. However, we have determined that Gen U's computer science department uses networked Sun computers. Since the peak load for a registration system does not coincide with peak usage for course work, we recommend initial installation of the system on the computer science network. Our goal is to produce a system that can be easily transferred to the administration system, once that system is procured.
A course registration system has several classes of users. Administrative personnel use the system to register students and create course schedules. Instructors use the system to print class lists. Students will use the system to register for courses. The system must provide an interface that is easily learned by all users, and provides assistance when difficulties arise.
Another feature incorporated in a course registration system from ESP Inc. is multilevel security, so that users can access only the functions they are permitted to use.
Some students must access the system from terminals in the administration building. Others will have personal computers with modems at home. It is in the university's interest to encourage this remote access since it minimizes the number of terminals it needs on site. Moreover remote access should be possible with any type of home computer and this suggests that the interface be textual. However we stress that this can still provide a menu-driven interface.
General University would experience cost-savings for a variety of reasons when it implements a text-based course registration system designed by ESP Inc. These include:
Additional advantages to implementing our system will be: We are confident that you will be pleased with our product and that it will fulfill your expectations. While most purchasers find that a character-based system meets their requirements, ESP Inc. will provide the system that General University wishes. However, it should be noted that a graphical interface cannot be developed for remote access within your time constraints. The documentation enclosed describes the functions of a character-based menu interface. ESP Inc. can provide a custom-built graphical interface with the same functionality excluding remote access support.Subject to your agreement to proceed, we suggest the following time line for producing the system.
Mid February -- we will present an overall design document highlighting data structure, module design and error checking. Your feedback will help us to produce an overall detailed design.
February 22 -- we will submit a detailed design including resolutions of your concerns in our overall design. This document will also detail our testing policies.
March 12 -- our technical writers will forward the user's manual for the system.
Late March -- we will demonstrate the functioning system at our facilities.
May -- installation at Gen U.
We thank you for consideration of our proposal and look forward to discussing with your staff the needs of General University.
Input: Identification Number Password H to invoke help. Output: Access to the student registration or administration menu. Access to the help menu.The Login Screen is used to identify a user that is using the Student Registration System. Upon entering a valid Identification Number, the system continues on by requiring a password for entry into the system. If the Identification Number given is that of an administrative user, the system will jump to the administrative main menu.
Example: Identification Number ==> type "123456" and "ENTER" Password ==> type "97531" and "ENTER"At the Login screen it is possible to access an on-line help document by entering 'H' at the prompt. After the entry has occurred, the help document will look similar to the following:
Input: Invalid Identification Number and or Password. Output: An error message indicating an error in the user's entry and a prompt to re-enter.
A --> add course. D --> delete course. O --> modify course. L --> list available courses. V --> view timetable. C --> change password. H --> help. P --> print timetable. Q --> quit.
Input: A letter selection from the menu as indicated. Output: The specific option screen.Upon a valid selection from the menu, the Student Registration System will change screens respective to the selection made.
Example: type "A" and "ENTER" brings you to the 'Add a Course' function.During the use of the 'Main Menu', on-line help is available to the user by entering 'H'. The following is an example of what you will see with this selection:
Input: An option not available on the menu. Output: A message stating "Invalid input please only enter one of the options listed on the menu." Note: Invalid inputs include a character not on the menu, an integer, or a string.
Input: Course Output: A list of the selected course lectures.When "Add a Course" is selected, the system will prompt the user for the course they wish to add. The desired course is typed into the input line, and followed by "ENTER".
Example input: cpsc451 'ENTER'If the chosen course is available to students, and the student is not already enrolled, a list of the lectures for the desired course will be displayed on the screen. When the system detects undefined courses (i.e.junk101), an error message is written to the screen and the user is prompted to re-enter the data. Otherwise, the system will display the next user screen.
Input: An unavailable course or incorrect entry. Output: An error message informing the user and a request to re-enter.
Input: A choice of lecture section. Output: A list of the Lab sections / Tutorial sections / message of added course.Each lecture is numbered in order to uniquely represent it as an available selection. The user is prompted to select a lecture section by typing in the number. If the desired course does not require the selection of course Labs and or Tutorials the course is added to the student's list of currently enrolled courses.
Input: A value other than the numbered choices. Output: An error message and a request to re-enter.
Input: Selection of Lab and Tutorial Sections where required. Output: List of Tutorials or confirmation of enrollment with an option to add another.Some lectures require a student to take Labs and or Tutorials. The system is designed to accommodate for this.
After successfully adding a course lecture that requires a Lab and/or Tutorial, a list of the Lab sessions, similar to the list of Lectures, is displayed to the screen.
As for lecture section, lab and tutorial sections are selected by number. Completing the requirements will inform the user that the course has been added to his/her schedule. If all required components of a course are not selected, the student is not enrolled. Typing 'M' during component selection will return the user to the main menu without enrollment.
After successfully adding a course the user is asked if they wish to add another course. 'Y' for yes and `N` for no are the only two choices, where `Y` will bring the user back to the beginning of the `Add a Course' function. Entry of 'N' will return the user to the main menu.
Input: A value other than the numbered choices. Output: An error message and a request to re-enter.
When a conflict in scheduling occurs with either a Lecture, Lab, or Tutorial, the next available section is suggested to the user. In turn they can either accept by entering 'Y' for yes or decline by entering 'N' for no. A response of `Y` will result in the desired class being added to their time table and the steps described above will continue. An 'N' response will list the next session available and the process is repeated until a session is selected.
Example Using 'Add a Course':
Colin wants to add math 311 to his schedule but he doesn't have
his list of available lectures or labs with him. He reaches a
terminal and enters in his identification number and password.
Success, the main menu appears indicating
that he has been accepted to the registration system. He enters
the course "math311" and hits the return key. The
list of available lectures is on his terminal. He notices that
the third section fits his schedule the best and he chooses it.
The next screen is the list of labs. It says that he must
choose one, yet he's not sure which will fit his schedule.
He selects number one and a message comes up telling him of a conflict
with his current timetable and does he want to accept the
next available section at 3 o`clock? He enters 'Y' for yes, and
a message informs him he is enrolled. Colin enters `Q` for quit
and leaves.
Input: Course Output: Confirmation of Removal Example input: cpsc451If the student is enrolled in the course and the drop date has not passed, then they are asked for confirmation to remove the course. 'Y` for yes or 'N' for no. On entering `Y` the course is removed from the student's timetable, and they are informed of this change. Entry of `N` will return the user back to the main menu and no changes will be made.
After successfully deleting a course the user is asked if they wish to remove another course. 'Y' for yes and `N` for no are the only two choices, where `Y` will bring the user back to the beginning of the `Delete a Course' function. Entry of 'N' will return the user to the main menu.
Input: A course that is not in the users list of enrolled courses. Output: They will be informed of this, and prompted for another entry.In general, input that is not available in a particular section of the 'Delete a Course` function will be handled with an applicable message and an opportunity to re-enter their choice.
Example Using 'Delete a Course'
Colin dislikes his 'cpsc457' course. He decides to drop it using the
registration system. After entering his assigned Identification Number and password, the
main menu appears. From the menu he chooses 'Delete a Course', and he is
prompted for the course. He does so, and
the system makes sure he is removing the right course by asking again. He
enters 'Y' to confirm that he is removing the right course and the system
returns, "cpsc457 successfully deleted. Delete another course? (Y/N)". He
enters 'N' and then enters 'Q' to quit.
Input: Press the "O" key from main menu to modify a course. Output: The 'Modify Course' menu prompts a student to enter the course (CPSC231) followed by 'ENTER'.Once the student enters a course that they are enrolled in, the system will display the course along with the lecture, lab and/or tutorial sections that the student is registered in. The cursor appears on the lecture number for the student to modify. The student can now change to another section by typing a new section number or accepting the current value by typing 'ENTER'. The system then updates the display with the new selection and the next course component is highlighted. Now the lab or the tutorial section can be changed in the same way. The display will read as follows:
You are registered in: CPSC231 Lecture 01 Lab 02 Tutorial 02 (The cursor will be under the "01" at the start)After the student changes or accepts each component, two things may happen:
Input: Course discipline ( CPSC ), followed by 'ENTER'. Output: A list of courses in the discipline. The list is in increasing order of course level. If the list is too long, it will be truncated to fit the screen and the user will be prompted to press the space bar to see the rest of the list. Example of a list with input "CPSC": Courses Available: CPSC 201 CPSC 231 CPSC 233 CPSC 240 . . etc.
Input: Empty string (i.e. no inputs but enter key pressed ) Output: A message is displayed saying that no input was entered.If the discipline is not found, an error message is displayed.
The list will be divided into 3 parts, lecture, lab and tutorial sections. Each part is ordered in increasing number and is represented with 'lec','lab', and 'tut', respectively. If the list is too long, the screen will display a portion of the list and prompt user to press the space bar to view the next portion of the list.
Input: Course Output: The course name is displayed on the top. A list with five columns is displayed below the course name. The available sections, the start time, duration, days and the location of the section will form the columns.System Response to Unexpected Input:
Input: invalid course Output: reports that course entered is not found.Example of output with input 'CPSC451':
Sections for CPSC451 Sections Start time Duration (min) Days Location lec01(full) 13:00 50 MWF ST102 lec02 9:00 50 MWF ENE201 lab01 10:00 50 TR ST02 lab02 15:00 50 TR ENB33 tut01 14:00 50 F MS121
Input: The term the student wants to have printed out, M to leave this function, or 'H' for help. Output: If term given: 1) A copy of the student's timetable for the term specified will be formatted on the screen for viewing. If the student is taking no courses then the timetable grid will remain empty. 2) Allow the user to browse through both screens of the display. 3) Returns the student back to the Input portion of this function to see if the student wants to view a timetable for a different term.
Input: Anything else entered besides the term, M for Main Menu, or 'H' for help. Output: Display an error message for the user. Return to the Input portion of this function to allow the user to try entering his/her choice again.Example:
Please enter one of FALL, WINTER to print that terms timetable, or M to return to the Main Menu. -> FALL +------------------------------------------------------------------+ | Time | MONDAY | TUESDAY | WEDNESDAY| THURSDAY | FRIDAY | +------------+----------+----------+----------+----------+---------+ |08:00-08:30 | | CPSC533 | | CPSC533 | | |08:30-09:00 | | Lab | | Lab | | |09:00-09:30 | CPSC449 | | CPSC449 | | CPSC449 | |09:30-10:00 | Lec | | Lec | | Lec | |10:00-10:30 | CPSC449 | | CPSC449 | | | |10:30-11:00 | Lab | | Lab | | | |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\| |\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/| | | | CPSC449 Principles of Programming Languages COLIJN | | CPSC533 Artificial Intelligence COCKETT | | STAS325 Technology within Contemporary Society MOORE | | | | (space bar) -- View Next Screen (M)-- Main Menu (H)--help) | | (F)ALL, (W)INTER, (FW) will print that term's timetable. | | | | -> | +------------------------------------------------------------------+
Input: Press the"V" key followed by the Enter key from main menu to view past and current courses. Output: When the "V" key is pressed, the system will list all courses taken by a student in the following format: - Course description and number (ex. CPSC231). - Course weight (ex. H for half courses, F for full courses). - Course name (ex. Intro to Computer Science I). - Session (ex. F for Fall, W for Winter FW for both). - Letter grade (ex. B, A-).The screen will also separate each term by a dotted line followed by a GPA (Grade Point Average) for that term. A final GPA for all courses taken will appear at the bottom of the screen. If the screen cannot fit all the courses, the student can press the space bar to see the rest of the courses.
Example: Course Weight Name Term(s) Grade CPSC231 H INTRO TO COMPUTER SCIENCE I F /93 B ASTR205 H INTRO TO ASTRONOMY F /93 A NURS271 H THE NATURE OF NURSING F /93 D HIST397 H WAR & SOCIETY F /93 C ------------------------------------------------------------------ GPA: 2.50 CPSC233 H INTRO TO COMPUTER SCIENCE II W /94 B ECON304 F INTRO TO MATHEMATICAL ECO FW/94 A HIST401 H HISTORY OF CANADA W /94 C ------------------------------------------------------------------ GPA: 2.75 HIST305 H HISTORY OF U.S.S.R W /96 W HIST402 H HISTORY OF AFRICA W /96 N/A PSYC205 H INTRO TO PSYCHOLOGY W /96 N/A PHYS201 H INTRO TO PHYSICS W /96 N/A MATH251 H CALCULUS I W /96 N/A ------------------------------------------------------------------ GPA: UNAVAILABLE
Input: When prompted for each, the user will enter their old password used for logging onto the system, and then enter a new password twice to ensure that the correct password was entered. Output: Confirmation that this change has occurred successfully (after storing the new password information on the student's record) and then return to the Main Menu.
Input: The user enters the wrong old password. Output: Before proceeding to ask for the new password, beep and display the following error message: "Incorrect old password. Please re-enter it." -Return to the Input portion of this function to allow the user to try entering the old password again. Input: The two entries for the new password don't match. Output: Beep and display the following error message: "The two entries for the new password you entered do not match. Please re-enter." -Return to the Input portion of this function to allow the user to try entering the two entries for the new password again.Example:Please enter your old password. -> {User enters old password} Please enter your choice for a new password. -> {User enters new password} Please enter your new password again to check for errors. -> {User enters new password again} Your password has been successfully changed. Press M to return to the Main Menu. -> M (Main Menu...)
Input: The term the student wants to have printed out, 'M' to leave this function, or 'H' to get help. Output: If term given: 1) A copy of the student's timetable for the term specified will be printed out, regardless of the number of courses that the student is taking. If the student is taking no courses then the timetable grid will remain empty. The computer confirms that the printout has taken place successfully. 2) Returns the student back to the Input portion of this function to see if the student wants to print another timetable for the same (or a different) term.
Input: Anything else entered besides the term, 'M' or 'H'. Output: Display an error message for the user. Return to the Input portion of this function to allow the user to try entering their choice again.Example:
Please enter one of (F)ALL, (W)INTER, (FW) to print timetable(s), (M) to return to the Main Menu, orAn example of incorrect input:for more help. -> F Your FALL timetable has been printed. Please enter one of (F)ALL, (W)INTER, (FW) to print timetable(s), (M) to return to the Main Menu, or 'H' for more help. -> M (Main Menu...)
Please enter one of (F)ALL, (W)INTER, (FW) to print timetable(s), (M) to return to the Main Menu, or 'H' for help. -> January Incorrect input. Please enter one of (F)ALL, (W)INTER, (FW) to print timetable(s), (M) to return to the Main Menu, or 'H' for more help. ->
__________________________________________________________________ | | | General University SRS Administration Menu | | | | | | (D)eadlines | | | | (T)imetables | | | | (C)lass Sizes | | | | (S)tudent Information | | | | (H)elp | | | | (Q)uit | | | | | | Enter selection: | |_________________________________________________________________|The menu expects one character followed by a carriage return as input. Error messages are displayed above the selection line. Correct input will cause the system to execute the next screen as chosen.
Menu Selections: Deadlines: Modify Add Date, Modify Drop Date. Timetables: Modify Number of Timetables. Class Sizes: Modify Section Size. Student Information: Add a New Student, Modify Student Information, Delete a Student Record.
*Last Name: __________ First Name __________ Middle Name ______ *Street Address _________________________________________________ *City ____________ Province: ____ Postal Code ________ *Status: _________ Faculty: General Studies Major: _________ Minor: __________ Courses allowed: _5_ Courses registered: _0_ Past courses: None Current enrollment: None * denotes a required field
Input: Course Output: Printout of students names and identification numbers in the course.Printing a class list is a function available to administration. It allows a user to access a list of students enrolled in a particular course, and print a copy for later reference.
Input: Courses that are not on the list. Output: An error message stating the course was not found and a request to re-enter. Example: Type "cpsc451" and press "ENTER" to print cpsc451 class list.
System SignOn (Student/Administrator function). Input: Identification Number/Password. Output: User type(Valid)/Invalid Identification Number.Query the database for the Identification Number/Password combination. If the combination is found, then retrieve the user type (student or administrator) from the database. If the combination is not found, then end the function, indicating a failed Identification Number/Password combination.
Adding a course (Student/Administrator function). Input: Course Output: Successful or Failed course addition.Query the database to verify that the Course. If it is not, then report this to the user and end the function. If it is, then verify that the student can take the course according the following criteria:
Deleting a course (Student/Administrator function). Input: Course Identification Number. Output: Successful or Failed course deletion.Query the database to verify that Course Identification Number is valid, the student is currently enrolled in the course, and the drop date has not been passed. If any of this criteria fails, then report this to the user and end process. If all criteria is met, then display the course information (Lecture, Lab, etc...) and ask the user if they are sure they want to drop the course. If yes, then update student and course records and end the process. If no then just end the process.
Change Course Component (Student/Administrator function). Input: Course. Output: Successful or Failed Course modification.Query the database to verify that Course is valid, the student is currently enrolled in the course, and the drop date has not been passed. If any of this criteria fails then report this to the user and end process. If all criteria is met, then display the list of course components, highlighting those that can fit the students timetable and indicating reasons why the student can not take others. Allow the user to make changes, then verify that the change does not overlap any of the users other courses. If the selection is valid, then display the list of selected components to the user and ask then to accept or decline the change. If the user accepts the selection then update the student and course records in the database and end process. If not then end the process.
Display/Print Student Timetable (Student/Administrator function). Input: Identification Number. Output: Timetable to screen/printer.Retrieve all course info from the student record. Offer controls to scroll through the timetable and a command to print. If the student requests a printout, verify that the terminal being used is attached to a printer, if not then report message to the user and terminate. If the user has not exceeded the printout limit, then print the timetable. If they have exceeded the limit, then report message to the user. Return to the displayed version of the time table and await other commands. End the function upon the users request.
List Course Components (Student/Administrator function). Input: Course. Output: List of course components.Query the database to verify that the Course is valid. If it is not then report message to the user and end the function. If it is retrieve all components and display the list of course components, highlighting those that can fit the students timetable and indicating reasons why the student cannot take others. end the function.
Change Password (Student/Administrator function). Input: Identification Number. Output: Successful or Failed Password Change.Display a list of rules passwords must satisfy and request new password from the user. Verify that the new password meets criteria. If it does not meet the criteria, then request the user to enter a new one, or to end the process. If it meets the criteria then request the user to re-enter the password. If it is entered incorrectly, then tell the user they must start over again. If entered correctly, then request the old password from the user to verify identity. If this is not correct, then tell the user they must start again. If it is correct then update the student record in the database, and confirm the password change to the user.
Display Help (Student/Administrator function). Input: Help Request. Output: Help Text.Based on where in the system the user is, help is retrieved from the database, and displayed.
Print Class List (Administrator function). Input: Course. Output: Class List.Verify that the Course is valid. If not then display message. If valid, then query from the database all students enrolled in the course. Display this list to the screen, formatted and ask the user if they want a printout. If no, then do nothing. If they do, then verify that a printer is attached to the terminal, and send list to the printer.
Add Student to Database (Administrator function). Input: Student Information. Output: Confirmation Message.Prompt the user for all student information (name, address, etc). Then verify that all information is correctly formatted. If it is not, then request that the user correct the fields that are in error. If it is all correct then write the student information to the database after generating a Student Identification Number and a password. Generate a new student information package.
Delete or Modify Student in Database (Administrator function). Input: Identification Number. Output: Confirmation Message.Query the database to verify that the Identification Number is valid. If not, then report message to the user. If it is valid, then display the student information and allow the user to change the information or delete the student altogether. If changes were made, then verify that the information is correctly formatted. If the information was not correctly formatted, then report this to the user and allow them to correct the incorrectly formatted information. Update the database and end process.
Modify Drop Date/Modify Add Date (Administrator function). Input: Date and term Output: Successful or Failed modification.Allow change to the add and drop deadlines for given term. Verify that the new date is valid (ie. not already passed). If it is not valid then report this to the user. If it is valid, then update the deadline, report the change to the user and end the function.
Modify Number of timetables (Administrator function). Input: Number of timetables Output: Successful or Failed modification.Verify that the number of timetables is a valid integer. If not, then report message to the user. If it is valid, then display the updated number of timetables. If the number is valid update the database and end the process. If the number is not valid then just end the process.
Lectures: consisting of
To see Customer Group Nine's revision to our functional specification, click here.