General University


12 February 1996

Sirs:

The accompanying document describes the overall design of an on-line student registration system for General University. This design accommodates the specific modifications suggested by General University to our original proposal.

In particular, the system incorporates a graphical user interface, which will allow new users to rapidly adapt to the system. As well, multi-level access provides different sets of functions for different classes of users. This design allows for easy extension of the system to accommodate new functions and new classes of users.

The function of major modules are described, along with specifics of data types, how the modules will interact, and illustrations of screen images that users will view.

We look forward to presenting the highlights of this design on 19 February, and to further fruitful discussions as the design evolves.

Sincerely,

Educational Systems Products, Inc.


Table of Contents


Introduction and System Overview

Educational Systems Products (ESP Inc.) is designing an on-line student registration system for General University. The major functions of this system are discussed in this document. Included are

Major Data Types

Users
All users are represented in the system by a single data structure, which includes a unique identification number, a password and a status code. This code will allow differentiation between classes of users and the features of the system that they may access. The current implementation sub-divides users into students and administrators, but the concept allows for easy expansion of the classes of users. User information also includes name, address and phone number.

Students additionally have recorded their faculty, the maximum course load they are allowed, a list and count of the courses they are registered in and a transcript of courses taken.

Courses
Courses are known by a unique code which concatenates an abbreviation of the course discipline (eg. MATH) and course number (eg. MATH271). For clarity the word department is used synonymously the word discipline. A course is unique but may have none or many lecture, lab and tutorial sections. Each of these sections is given a location, time and capacity. The lecture section also records the name of the lecturer.

An Entity Relationship Diagram (ERD) illustrates the relations between courses and students in the system. A data dictionary specifies the types of individual data items in the system.

System Information
The system must record the dates when the registration system can be accessed for enrollment (the add date), and the last date a student may withdraw from a course (the drop date.) For registering new students, the last identification number issued is also stored, so that these numbers remain unique.

System Modularity

The design is based on three sub-systems. The login sub-system blocks unqualified access to other sub-systems. Via a single menu, student users can see, modify and print their timetables, as well as change their passwords. Administrative users can access these functions plus a superset of capabilities which includes adding new students, changing the information recorded for a current student, deleting students, printing class lists, and modifying registration date information.

This document describes the functions of each subsystem. A pictorial overview is supplied as a structure chart.


User Interaction

What follows is a description of the system we will provide from a users perspective. Please use the screen snapshots as reference. Note that a "button" refers to a mouse operated button.

Welcome Screen



The welcome screen is displayed when the terminal is idle and is returned to whenever a user finishes a session. It's purpose is to welcome the user and provide two options. General University can customize this screen by placing a picture of the university and the university's logo or motto under the welcome message. No typing is required on this screen. The two options are; "Login" and "On-line Calendar". The online calendar option is part of the enhanced system and will not be implemented initially. If the user clicks on online calendar, the system will provide a message to this effect. In the future this option will provide general calender information. Clicking on "Login" will bring up the login window.

Login Screen



This screen requires keyboard input. Users will see two boxes for entry of an identification number and password. The purpose of this screen is to identify a user of 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 display the administrative main menu, otherwise the student registration main menu is displayed. If the user inputs an invalid password and/or identification number, an error message and a prompt for re-entry will be displayed.

Student Registration Main Menu



After the student has entered a valid identification number and password, the "Student Registration Main Menu" will be displayed on the screen. It is an interface that allows a user quick and easy access to specific sections of the Student Registration System.

In the upper left corner of the screen, student can see an area which contains their personal information. It includes the student's name, identification number, address, faculty, major/minor, status (full-time or part-time) and year of program. This information serves to confirm to the user that their information is correct and up to date. The student is not given access to change any of this information directly.

Under the student information is another sub-window containing the student's personal timetable. This timetable displays all of the courses that the student is currently registered in. The courses are displayed in a time slot so with a quick visual inspection a student can check the days, start time, duration time and location of a specific course. The timetable is set up so that it displays the times in the left margin and the days of the week in the top margin. The timetable is scrollable both horizontally and vertically. Underneath the timetable are 3 buttons: "Drop a Course", "Change a Course" and "Print Timetable". These buttons allow the student to perform the respective operations. More information regarding these functions follows.

In the upper right corner important dates are displayed. Today's "Date", "Last day of Registration" and "Drop Date" serve to remind the student of registration deadlines. Students cannot change these dates.

Below these dates, there is a sub-window called "Course Listing". This sub-window basically allows the student to view all the lectures, labs and tutorials for a course along with their times, section number, duration, days offered and location. The student would have to first click on the "Department" drop-down menu and pick the discipline of where the course belongs and then move along the the "Course" drop-down menu to specify a course to list. Under these drop-down menus there are 3 columns; one for all the lecture sections, one for all laboratory sections and finally one for all tutorial sections.

There are three buttons and a status bar displayed at the bottom of the screen. The buttons are "Help", "Change Password" and "Quit". If student clicks the mouse on the "Help" button, a help menu will be displayed to provide help for the user. The user can scroll through the entire online help facility or get help on specific functions. "Change Password" lets the student change their password for access to the system. The button "Quit" will bring the student back to the "Welcome Screen".

The status bar called the "Context Sensitive Help" displays helpful messages for users. As the student moves the mouse around the screen a helpful message about the use of a button is displayed in this area.

Adding A Course

Adding a course using the ESP Student Registration system is a feature that enables the user to compose the course schedule that he/she desires. The easy to use interface allows smooth, quick and non-complicated interactions to minimize difficulties typically associated with other systems. The course listing contains three main sections; department, course and course sections.

Department
The Department button, located at the top left of the course listing is the first step in adding a course. It contains a listing of all the types of courses offered at General University. Clicking on the department button results in a drop down list. The listing contains, in alphabetic order, each department that is offering courses. Located to the right of the drop down listing is a scroll bar that gives the user access to other departments that could not fit in the window. By clicking on the arrows, located on top and bottom of the scroll bar, the listing will pan up or down respectively through the listing. After locating the department of choice, one click over the selection will highlight it and a double click will select it.

Course
The next required step in adding a course is choosing a course from the course listing. Clicking on the course button results in a drop down list of all of the courses, and associated course info, offered in the previously selected department. The courses are listed by an abbreviated name and a course number. eg. cpsc451

As in the Department section described earlier, there is a scroll bar located to the right of the listings; allowing the user to scroll through the available courses if necessary. Selecting a course is also done by moving the mouse to it, clicking once to highlight the selection and or double clicking over it to select.

Lectures, Labs, and Tutorials
Choosing a lecture, lab, or tutorial associated with the previously described department and course selection is accomplished within the course listing in the same way as selecting a course. The area is configured with the applicable section information only after the previously described department and course selections are made. As before the list has a scroll bar to the right to view all of the sections offered and the associated description ie. lecture, lab, or tutorial number, time offered, days offered, location, and status of availability denoted by 'Available' or 'Full'. The lectures, labs, and tutorials that are NOT indicated as full are the only ones the user will be able to select. As before a selection is made by clicking once to highlight and double clicking to select. When all of the associated sections (labs, lectures, and or tutorials) are selected the "Add Course" button will become active allowing the user to make the addition to their schedule.

Add Course Button
The Add Course button, located at the bottom of the window, ensures that the user has selected his/her course and associated labs and or tutorials. Upon selecting the appropriate sections, as described above, the Add Course button is activated. When the Add Course button is selected by a single click over it, the user is informed that the selection has been added to their schedule. The Add Course button is linked to the system data-base where the new course will be added the the users record of current classes.

Dropping A Course

Dropping a course is a common practice among students today in order for them to customize their schedules. The ESP student registration system is designed for quick processing and maximum time efficiency to minimize a students time spent registering for classes.

As described earlier, to the left side of the screen is the timetable area where the students current courses are listed. A course is dropped by clicking once to highlight it within this area and then clicking the "Drop a Course" button.

Upon selecting drop a course, the user is prompted, by means of a pop up window in the center of the screen, to confirm that the selected course is to be dropped. This is to eliminate mistakes on the users behalf, and provide a way out before actual removal. This prompt is answered with a yes/no selection. Single clicking on 'Yes' results in the user being informed of the action and the menu is returned to the foreground. The course dropped will no longer appear in the timetable window. Single clicking on 'No' results in cancellation of the dropping process. There will be no changes to the users timetable and the main menu is returned to the foreground.

To Modify a Course

From the main menu, the user can also modify a course. Modifying a course is necessary when the student is already registered in a course but wish to change to a different lecture and/or lab and/or tutorial. The modifying of a course function can be implemented both on the student's system and on the administrator's system. However, the administrator's system is not restricted by the limited space of a course section. That is, the administrator can modify a course for the student even if that lecture/lab/tutorial is already full.

The course to be modified must first be highlighted in the timetable area by moving the mouse to where the course is in the timetable and clicking on it. If the student accidentally clicked the course by mistake or now wishes to change the course they want to modify, he/she can just click on another course. After a course has been selected, the student can then press the "Change a Course" button to make changes.

Once the "Change a Course" button has been pressed, the course listing (located on the right side of the main menu screen) will display all of the selected course's available lectures, labs and tutorials along with their times. All the sections that conflict with the student's schedule, or are full, will be grayed out (or have a "FULL" status beside it -- the administrator can still select these). The student's current sections will be highlighted. The student now can look at all the other available lecture sections, laboratory sections, and tutorial sections and decide which to modify to best suit their schedule.

The student can now make the changes by clicking on the lecture , lab, or tutorial they wish to switch to. When a section is clicked on, it becomes highlighted to show that it has been selected. After that, the student can press the button "Change A Course" at the bottom of the timetable so the system can process to request. The system then displays an "Are You Sure" dialog box. The student must press on the "Yes" button or the "No" button. If "Yes" is clicked then the system continues with the processing. If "No" is clicked, the system stops processing and returns to the foreground.

After the "Yes" is clicked, if the request is successful, the system will automatically update the new sections on the timetable and display a success message in the status line at bottom of screen. A course conflict is not possible because the system will not allow a student to choose a course that is in conflict with their present schedule. A selection may be unsuccessful if the course happens to become full in the time it takes for the student to view and then select a new section. The system will then display a dialog box with the following error message: - "Modification unsuccessful. Lecture section is full." ("Lecture" may be replaced by "Lab" or "Tutorial") Administrators may enroll a student in a full section ,in that case the system will display: - "Modification successful. Warning -- Lecture section is full." ("Lecture" may be replaced by "Lab" or "Tutorial")

Users must press the "OK" button at the bottom of this dialog box in order return control back to the main menu. The user can try other sections and press the "Change A Course" button again.

List Available Courses

This feature is accessible to the user at all times because the course listing window is always displayed on the main menu, to the right of the timetable window.

Selecting a course to display
To select a department, the user clicks on the department button and a list is displayed. The user can then select from among the available departments listed as described earlier in the add a course segment. The list is in alphabetical order. A typical list that the user might see is:

          
          Engineering
          General Studies
          Management
          Mathematics
          Social Science
          Science
A department must be selected by the user before selecting the course. If the user tried to select a course before a department was selected, an error message would be displayed. After a department is selected, a course can be chosen using the same procedure as picking a department. Note that all departments and courses offered by Gen U are displayed, but those that are seen as a conflict to the user's current course schedule are grayed out on the list. This prevents the user from selecting that particular course or department because it conflicts with the user's schedule. If the user tries to select a grayed out item, a dialogue box will appear to tell the user that the department or the course will conflict with his/her current schedule. If a course listing currently exists, that is, the user has already inquired about a course, and the user wants to list information for another course, then the user simply re-selects the course and/or department desired. When department and courses are selected, the selection is displayed on top of the pull down menu.

The section listing
Once the department and a course have been chosen, the list of sections will immediately show the available sections offered for that particular course. There is a listing of lecture sections, laboratory sections, and tutorial sections. When the list of a section is too long to be displayed in the window, the user can scroll up and down the list using the scroll bar. All sections offered by General University are listed, however, if a particular section is determined to conflict with the user's current timetable, then it is grayed out to denote that it is unavailable.

Contents of the section listing
In each section listing (lecture, labs, and tutorials), the start time, duration, location, section number, and days that the sections are offered are displayed. A typical listing of the lecture sections:

     Lecture   	Start       Duration	Location    Days
     section   	time       (minutes)

     Lec01       12:00       120 	SB105	    MW
     Lec02       08:00	      50	ST111	    MWF
     Lec03       13:00	      50	ST110	    MWF	
Similarly, a typical list of the laboratory sections:


     Lab   	Start       Duration	Location    Days
     section   	time       (minutes)

     Lab01       12:00        50 	SB112	    MW
     Lab02       08:00	      50	ST96	    MWF
     Lab03       13:00	      50	ST10	    MWF
The tutorial listing:

	
     Tutorial  	Start       Duration	Location    Days
     section   	time       (minutes)

     Tut01       12:00        50 	MS115	    MW
     Tut02       08:00	      50	ST10	    MWF
     Tut03       13:00	      50	ST05	    MWF	

Printing A Timetable

Both students and administrators can print a timetable. This is done but putting the mouse on the print timetable button located directly beneath the student timetable area and then clicking the mouse button once. The system will verify that there is an attached printer and notify the user if the print request was successful or not. Note that an administrator must call up a student record first and then request the printout while a student already has their record loaded and only need to click on Print Time Table. An error occurs here if there is no printer detected or an administrator attempts to print a timetable before they select a student.

Change Password Screen



To change their password a user clicks on Change Password from the main menu. This causes the creation of a Change Password window in the center of the screen. User is prompted to enter their old password, a new password and to verify their old password. They must then click on okay for the system to accept or cancel to abort the request. If the change is successful a confirmation window relays that information to the user. User must click cancel and this window and the Change Password window will disappear. Note that passwords are not echoed on the screen, for security reasons.



The password change may be unsuccessful because the old password the user typed in did not match the password on file or their new password did not verify. In either case the user is informed by a error window and they must click cancel to make this box disappear. They are then back at the Change Password window where they can try again.

Administrative Menu Screen

This menu is displayed if the user enters an identification number and password that are recognized as an administrative user.



In the upper left corner of the screen, specific student information is displayed. The information includes student identification number, student name, address, faculty, major, minor, status and program year.

Beside this sub-window are four buttons that allow administrator to "Add", "Delete", "Modify" and "Find" a student. After the administrator clicks on the "Add" they can then enter information. Similarly, "Delete" and "Modify" allow the administrator to remove or change student information. "Find" allows a user to search for a specific student by entering the student's identification number.

Below the "Student Information" is the student's timetable. It is identical to the time table displayed in student mode. Again, there are three buttons at the bottom of the timetable: "Drop a Course", "Change a Course" and "Print Time Table". The administrator can use these functions just as the student can.

Below the date box is the the "Course Listing" sub-window. The administrator use this window in the same manner as the student's system, with one additional function. The administrator may print a class list by clicking on the "Print Class List" button.

At the bottom of the screen, user can click on the "Help" button to access the help menu. The administrator can then scroll through the entire help text or call up help on specific functions.

The "Change password" button allows user change their password. The "Quit" button ends a user's session and then returns to the "Login Screen".

The status bar called the "Context Sensitive Help" displays helpful messages for users. As the administrator moves the mouse around the screen a helpful message about the use of the button they are on is displayed in this area.

Modify Add/Drop Date

In the upper right corner of the screen, the is a data box containing the "Date", "Last day of Registration", and "Drop Date". The administrator can change these dates by clicking on the screen and typing in the new dates. The system will then check this new information against the current date, and each other (the Add date cannot be past the Drop date). If the date is in a valid format and conforms to the predefined criteria the system displays a confirmation box and the new date is displayed in the date field and the database stores the new date. Erroneous dates will cause an error box to appear with the nature of the error; this box will not disappear until the user acknowledges it by clicking on cancel in the error box. After the error has been acknowledged the user is returned to the date input field.

Student Information Functions

Add Student
To add a new student to the database the administrator simply clicks on the student information fields and enters data as appropriate. Once the administrator has entered all the information, clicking on Add Student validates the information and if accepted generates an identification number and a password for the student. This is displayed to the administrator in a separate window and they must click ok in this window to make it disappear. In this function the administrator may not enter an identification number as the system will generate one, they may enter information in any of the other fields, in any order. The fields Faculty, Major, Minor, Status and Program Year allow default values. For example, it may be desirable to have Status default to 'full time' and program year to 1 for newly registered students.

A possible error is not enough fields entered and the system will create an error box denoting the missed field to the user. After the user clicks cancel to confirm that they have read the error message they are returned to the Student Information data entry screen with all the information that they have entered so far still there and from there they can correct the error and continue.

Delete Student
There are three sequences that a user may execute to delete a student from the database. One way is to click on Delete Student when the student information area is blank. This will cause the Find Student window to appear and prompt the user for a student identification number. The user enters it and clicks select to accept. The record for that student is then displayed on screen in the Student Information area and the user is asked if they are really sure that they want to delete this record. The user may cancel or confirm at this point. A second way is for the user to click on Find Student and retrieve the student record, then click on Delete Student to remove this record. In the third scenario the record is already present and the user only need click on Delete Student. A successful deletion will clear all the fields in the Student Information area and notify the user that the student has been deleleted from the database.

Possible errors are an invalid student number or a nonexistent student number in the Find Student function. The system error message is specific and it will not disappear until the user clicks cancel to acknowledge the message.

Modify Student
As in Delete Student there are three ways to modify a student's information. Starting from a blank student information screen the user might first use the Find Student function to recall a student's record. Then the user is free to edit all the fields of the record except the identification number. When finished making changes the user clicks on Modify to accept and if accepted the system updates the student's record in the database and notifies the user that the update was successful. The second way is to click on Modify Student with a blank information record, this will automatically call up the Find Student function, then the user can select the student via identification number and edit their record. Finally, the third way is to already have the student's record on screen, edit it and click on Modify Student to accept. Errors will occur here if the administrator attempts to blank out a student's name or address. In these cases the modification would not be accepted and the user would be returned to the student record so that they may correct their error(s) and try again.

Find Student
Administrators may spend much of their time retrieving, validating, and changing student information. For these reasons the Find Student function is a useful feature of any student registration system. The user clicks on Find Student and a window is created requesting a student identification number be entered. The user then enters a number and clicks Select to retrieve the student's record or they may cancel. The Find Student window will then disappear. It is possible to enter incorrect or nonexistent student numbers here. The system will inform the user as to which type of error was made and return to the identification number prompt to allow the user to re-enter. If the student's identification number is found the Find Student window disappears and the student record is displayed in the student information area of the screen.



Course Listing/Print Class List
To print a class list a course must be selected. To do this the administrator clicks on Department in the Course Listing area of the window and selects a department. After choosing a department the user clicks on Course and selects a course in the same manner. When a course has been selected all the lecture, labs and tutorial sections for that course appear in three columns. The user then selects the component that they wish to print a list for by moving the mouse to that section and clicking to highlight. Now the user can click on Print Class List and a listing for the highlighted component will be printed. The system confirms that there is an attached printer and if so notifies the users that the list is queued successfully. If no printer is found the user is notified and asked to confirm the cancellation of their print request. It is possible for a user to request a class list without having selected a course component, in that case an error window will appear to inform the user and they will be allowed to retry after canceling the error window.

Administrator Access to:
Add Course, Drop Course, Change Course, Print Timetable
The Administrator can manipulate a student's schedule by first using Find Student to call up the student's record and then all of the functions -- Add Course, Drop Course, Change Course, Print Timetable -- that are avail- able to the student can be used. Alternatively the administrator can click on any one of Add Course, Drop Course, Change Course or Print Timetable first (when there is no student record present) and then automatically the Find Student window is created.


PseudoCode

The following section contains the pseudocode of all the major classes of functions needed for our project. These are broken down into two sections, Student Functions and Administrative Functions. Student functions are used by students and administration alike where Administrative Functions are used strictly by the administration.

Login System

Structure Chart and DFD
Login
Procedure LOGIN

	display Login Window
	if "CLEAR" button clicked then {
		clear "ID" and "Password" edit boxes
	}
	if "OK" button clicked then {
		search user database for user's ID#
		if ID# is not found then {
			clear "ID" and "Password" edit boxes
			display error window with "User not found"
			start Procedure LOGIN again
		} else {
			if password is correct {
				hide Login Window
				if user status = ADMIN then {
					display Main Admin Window
				} else {
					display Main Student Window
			} else {
				clear "ID" and "Password" edit boxes
				display error window with "Incorrect password"
				start Procedure LOGIN again
			}
		}
	}
Change Password
Procedure CHANGE_PASSWORD 
	{
	display Change Password Window
	if "CANCEL" button clicked then {
		hide Change Password window and exit from this function
	}
	if "OK" button clicked then {
		search user database for student (by ID#)
		if student's old password entered is incorrect then {
			display error window with "Incorrect old password"
				and clear all of the password edit boxes
		}
		if the two new passwords entered do not match then {
			display error window with "New Passwords don't match"
				and clear the new password edit boxes
		} else {
			store the new password for the user into the database
			hide Change Password Window
		}
	}

Student System

Structure Chart
Add Course
DFD
Procedure ADD_COURSE
	{
	display Add/Modify_Course Window
	if "CANCEL" button clicked then {
		hide Add/Modify_Course Window
		exit add_course
	}
	if "CLEAR" button clicked then {
		clear each of the following edit boxes: - DEPARTMENT,
			COURSE, LECTURE, LAB, TUTORIAL
	}
	if "OK" button clicked then {
		if there is missing info then {
			display error window with "Incorrect course selection"
				and some suggestions for the user
		} else {
			display "Course Added" response Window with course
				information as a confirmation
			search user database for student (by ID#)
			add course to student's list of courses
				- update schedule & course information sub-
					windows on the main screen
				- if count(courses) > 2 then change student
					status to FULL TIME
			hide Add/Modify_Course Window
		}
	}
Modify Course
DFD
Procedure MODIFY_COURSE
	{
	display Add/Modify_Course Window
		- display present choices made my student in the following
			edit boxes: - DEPARTMENT, COURSE, LECTURE, LAB,
			TUTORIAL
        if "CANCEL" button clicked then {
                hide Add/Modify_Course Window
                exit modify_course
        }
        if "CLEAR" button clicked then {
                clear each of the following edit boxes: - DEPARTMENT,
                        COURSE, LECTURE, LAB, TUTORIAL
        }
        if "OK" button clicked then {
                if there is missing info then {
                        display error window with "Incorrect course selection"
                                and some suggestions for the user
                } else {
                        display "Course Modified" response Window with course
                                information as a confirmation
                        search user database for student (by ID#)               
                        change course in student's list of courses
                                - update schedule & course information sub-
                                        windows on the main screen
                                - if count(courses) > 2 then change student
                                        status to FULL TIME
				- if count(courses) < 3 then change student
					status to PART TIME
                        hide Add/Modify_Course Window
                }
        }
Delete Course
DFD
Procedure DELETE_COURSE
	{
	search user database for student (by ID#)
	display R_U_Sure window
	if "NO" button clicked then {
		hide R_U_Sure window
	} else {
		delete course with corresponding lec#, lab#, tut# from the
			student's record
		update database
		hide R_U_Sure_window
		if count(courses) < 3 then change student status to PART TIME
	}
Print Timetable
DFD
Procedure PRINT_TIMETABLE
	{
	search user database for student (by ID#)
	/* The following will format the student's record into a
		timetable-style format for GUIs and Text-based output */
	Direct the following output to the printer
	for every hour (ie. 0800, 0900, 1000, etc) {
		for every day (ie. M, T, W, R, F) {
			Check course schedule to see if anything in that
				time slot
			If yes, then print that course in that position
				on the chart
		} /* Continue moving horizontally */
	} 
	Turn off the redirection of the output to the printer
View Timetable
Procedure VIEW_TIMETABLE 
	{
	search user database for student (by ID#)
	for every hour (ie. 0800, 0900, 1000, etc) {
		for every day (ie. M, T, W, R, F) {
			Check course schedule to see if anything in that
				time slot
			If yes, then print that course in that position
				on the chart
		} /* Continue moving horizontally */
	} 
List Courses
Procedure LIST_COURSES 
	{
	display List Courses Window (if not already up)
	if Department entered into the Drop Down list box then {
		search course database (by department selected)
		display all possible info of matches in the list box
	}
	if "CLOSE" button clicked then {
		hide List Courses Window
	}

Administration System

Structure Chart
Add Student
DFD
Procedure ADD_STUDENT
	{
	- Clear all student info fields
	- Show "O.K." and "Cancel" buttons bellow student information
	- Make student info editable
	- Gray out all other options

	If "Cancel"
		{
		- Make student info uneditable
		- Hide "O.K." and "Cancel" buttons
		- Ungrey other options
		- Exit
		}

	If "O.K."
		{
		If Some info is missing
			{	
			- Prompt user
			}
		Else
			{
			- Store student info in user data-base
			- Generate password and I.D. number
			- Prompt user with password and I.D. number
			}

		- Hide "O.K." and "Cancel" buttons
		- Make student info fields uneditable
		- Ungrey other options
		}
	}

Modify Student
DFD
Procedure MODIFY_STUDENT

	{
	- Show "O.K." and "Cancel" buttons bellow student info
	- Make student info editable
	- Grey out all other options

	If "Cancel"
		{
		- Make student info uneditable
		- Hide "O.K." and "Cancel" buttons
		- Ungrey other options
		- Exit

	If "O.K."
		{ 
		If Some info is missing
			{
			- Prompt user
			}
		
		Else 
			{
			- Store student info in user data-base
			- Prompt user with confirmation
			}
		}

	- Hide "O.K." and "Cancel" buttons
	- Make student info fields uneditable
	- Ungrey other options
	}
Find Student
Procedure FIND_STUDENT
	{
	- Show Id_Search window

	If "Cancel"
		{
		- Hide window
		- Exit
		}
	
	Else "O.K."
		{
		- Search user data-base for I.D. number

			If I.D. not found
				{
				- Prompt user
				}
			
			Else
				{
				- Move students records into student info and
				  course schedule
				}
		- Hide window
		}
	}
Delete Student
DFD
Procedure DELETE_STUDENT
	{
	- Show R_U_Sure window with deleting student I.D. number
	
	If "No"
		{
		- Hide window
		- Exit
		}

	Else "Yes"
		{
		- Delete student record from user data-base
		}	
	 
	- Hide Window
	}
Modify Drop Date
Procedure MODIFY_DROP_DATE

	{
	- Make Drop_Date editable

	If "Return"
		{
		
		If Format incorrect
			{
			- Prompt user
			- Make drop date uneditable
			- Exit
			}
		
		Else
			{
			- Change Drop_Date to New Drop_Date
			- Make Drop_Date uneditable
			}
		}

	}
Modify Add Date
Procedure MODIFY_ADD_DATE

	{
	- Make Add_Date editable

	If "Return"
		{
		
		If Format incorrect
			{
			- Prompt user
			- Make Add date uneditable
			- Exit
			}
		
		Else
			{
			- Change Add_Date to New Add_Date
			- Make Add_Date uneditable
			}
		}

	}
Print Class List
DFD
Procedure PRINT_CLASS_LIST
	{
	- Show Class_List window
	
	If "Cancel"
		{
		- Hide window
		- Exit
		}
	
	If "O.K." 
		{
		
		If Information is incorrect
			{
			- Prompt user
			}
		
		Else
			{
			- Search user data-base in Student_Courses with
			  Course_Name and Section
			- Print all matches
			}
		}

	- Hide window
	}

Testing

Testing Team

Testing of all aspects of the project will be accomplished by a Quality Assurance (QA) team made up of several of the members of the supplier group. The QA team will be led by a manager who will oversee all aspects of the project's testing. This person will keep track of all of the testing's progress and personnel. This person will also keep track of the various states of bugs found in the code, from their initial discovery to their final removal. He or she will also act as a go between between the QA team personnel and the project's coders.

Individual members of the QA team will be responsible for the design of various tests that will check the code and the actual implementation of these tests on the code. They will report bugs and their severity to the QA team manager and they will work together with the coders to assure the final removal of the bug, making certain that fixes do not have any adverse affects on the remainder of the program.

Testing Stages

Initial testing of the software will be as soon as is possible inside the scope of the project.

The first area of testing will be the user interface. While none of the internal code of the program may be working yet, the interface so far developed can be tested for its usability. While the interface of the project has been developed and spelled out in full as above in the document, there will most likely be difficulties that will arise and its implementation. It will be important that the testing team thinks as a user is this stage of the testing, judging all aspects of the interface from the user's point of view. In performing this stage of the testing adequately, we will hopefully end up with an interface that is very usable to the Gen U community.

Testing will then move on to testing of the basic functionality of the code and the software as the various components are implemented. By testing that all the basic functions of the code work as specified in the functional specification, we can make sure that all aspects fit with the user's expectations of the project.

When the various engines of the projects i.e. the database engine are implemented, testing on them will begin to make sure that they work correctly and perform their basic functions well as required.

When all aspects of the project have been implemented the Alpha Testing stage of the testing will begin. This stage will begin to move beyond the basic functionality testing above, and will move into the whole software project testing. Errors in how the various aspects of the project and the various engines of the code work together will be tested and hopefully no bugs will be found. Bugs that are found will be corrected to the best of our abilities. Further testing of the bug fixes will report whether bugs have been corrected, and/or whether more bugs have been introduced. By the following of the Test Plan, which has yet to be developed, the QA team will perform testing of the software, moving on to later and later testing stages until finally the software is in a deliverable form.

Summary

General University has decided that their new course registration system will utilize a GUI (graphical user interface) based interfaced rather than the more budget conscious text based interface. This has caused a great shift in the direction we will proceed with the project. Since they went with the GUI based system, it has necessitated removing their initial requirement that the course registration be remotely accessible. The remote access function will therefore not be implemented at the stage of the project. Perhaps, it can be implemented in some future version of the course registration system.

The shift to the GUI based system has been completed and now all project members are working towards that as their final goal. As you can see above, mock-ups of the typical interface have been created. While these will more than likely resemble the final working version of the interface, it is important to note that these are just mock-ups, and that the final version of the interface may differ slightly in appearance, if not in functionality.

The relationship between the various menus and dialog boxes has also been spelled out above through the means of various DFDs and pseudo code. This should serve as a guide to what the typical inputs should be, and the various outputs that the program will produce.

While the testing of the project and the test plan is generally not that detailed at this time, it does demonstrate the process that will be occurring throughout the project's development to ensure that the program will be completed as specified, and will be delivered with a minimum of bugs.

In general, ESP Inc. looks forward to the implementation of this project.

Glossary

For additional information on terms and data types, please see our glossary.

To see Customer Group Nine's annotations to this design document, click here.