CPSC451: Supplier Group #6
Jury Systems Design Inc.
Project Name: ATICS
February 12, 1996


General Information:


Overall Design Documentation:


Mail comments to Rob Vollman (Supplier Group Contact)


President's Message:

Jury Systems Design Incorporated thanks you for the continued opportunity to propose a feasible solution to your growing system needs at Flin Flon Airlines. After extensive meetings, we have prepared the overall design document describing the innovative solution we hope will be suitable to your business needs. We look forward to future discussion with your management team as well as the employees whom will be using the system. Again, thank you for the opportunity to do business together.



Booking Agent Functions


  1. Modify Booking
  2. Seat Selection
  3. General Information Query
  4. Issue Boarding Passes
  5. Issue Refunds
  6. Design Appendix



Modify Booking

This function will be selected from a main menu and is used to book a passenger on a flight.




Completing Fields


When the agent selects this function, they will be presented with a screen that will allow them to enter all information needed to book a flight. Most information will be entered with the keyboard in the appropriate field. The agent can move to the next entry field with the tab key or move back with Shift-tab. The agent also can move to any field or window with the mouse.

All fields will have an association title that will be a short description of each field. The fields will be arranged in order of importance so that the agent can follow the booking process in a logical and convenient fashion. The booking screen ( or form ) will require the Name and Complete Address from the customer. The agent will enter all possible fields. Some fields will not be essential to booking a customer and those fields will be identified as such. (perhaps underling unessential fields e.g. special requirements )

All fields are considered input and this includes passenger first and last name, complete address and phone number, class, destination, date and time of departure, seating arrangement, and any special requirements the passenger may have. e.g. wheelchair access.




Destination and Departure


The destination and departure fields are used slightly differently than the other fields. The destination and departure fields are actually a list of possible choices the agent may select from.

A destination must first be selected before any departure information will be displayed. This is primarily so that the agent only has to search through relevant data to pick an appropriate departure time. It would be inefficient to have the agent pick a departure time to later discover that there is no plane leaving to a specific destination on that time. The agent can also fill in the month and year of departure to further minimize the list of possible departure times. These departure times are a function of the system administration and are out of the hands of the booking agent. The booking agent has no control over when a departure time may be.







Seat Selection


The booking agent can also further accommodate the customer's needs by allowing the customer to choose their own seating position. The seating position's are limited to either an aisle seat or a window seat. Once the agent has entered the desired seating arrangement the program will assign the customer a specific seating arrangement according to the row and column spec's of the plane.
(e.g. wb4 would mean that the passenger has been assign seat wb4 where w stands for window,
b stands for the column and 4 stands for which row. ) If no seating arrangement is specified the program will simply pick one for the passenger according to the seating displacement of the plane.



Help Function


The agent has the option to search the help function if they have any problems. The help function will be categorized according to the form the agent is currently in, but will also allow the user to browse all possible help topics. The help topics will be arranged so as to be of the most benefit to the agent. The help topic will begin with very basic function and procedure description and as the description increases so will the complexity and depth of the subject. Help topics will include examples and walk-through to better accommodate the user's needs.



Clearing Screen


If the user wishes they may clear the screen so all entries are blank. This process will result in the unrecoverable loss of any information that was on the screen previous to clearing. This function would ideally be used when an agent has decided not to book a customer or has made a mistake and starting over clean, would be the most efficient option.

The user can also at any time clear a field by simply placing the mouse over the field and clicking the left button. This would arrange the cursor to reside in that field. The agent can now edit the field normally.



Confirmation of Booking



If the agent has entered all essential information fields they may proceed with the booking so as to finalize the process. When the agent presses the OK button they will be shown a new screen that will display all important information about the customer being booked. This will include passenger name, destination, departure time and date, flight number, ticket number, and ticket price. This screen is primarily to confirm that all essential booking information has been entered correctly. If some information has been entered incorrectly the agent can return to the previous screen by pressing the "return to previous screen" button. If the user presses the OK button the reservation is finalized and all information is stored in the programs database. It is assumed at the time of confirmation that all funds have been paid in full or that arrangements have been made to do so.


Example:

The agent would select the Modify booking function from a main menu. They would then be presented with a new screen that will allow them to enter all needed information.

The agent would enter the passenger's first name, then the last name, moving through each field with the tab key. The agent will continue to enter information in this fashion until they reach the destination field.

This field presents a list of all possible destinations. The agent has many options available to select a destination. They could scroll down the list using the arrow keys or mouse until the desired destination was selected. Or they could start typing the first characters of the destination until the one the agent wants is selected (highlighted). When a destination is selected, pressing tab will place the cursor in the next field.

Proceeding to the next field will allow the program to make a list of all departure dates for that destination. So if dates and times for other destinations are required the agent must select a different destination accordingly. The agent can move to the destination list box with the mouse or by pressing the shift-tab.

Then the agent would select the Month and Year the passenger would like to leave. When these values have been entered a field similar to the destination field will be updated presenting to the agent all possible time and dates the customer can leave on. After a date and time is selected the agent has the option of pressing the select seat button. The agent can also pick the seating arrangement for the passenger. The customer will simply choose if they want one of a Window seat or Aisle seat. The computer will then assign a specific seat with respect to the request. If no request is made the computer will automatically assign the customer a seat with respect to the customer's Class.

This would bring the agent to a confirmation screen that would display all relevant data, including the Flight Number, Ticket Number, and Ticket price. If all information is correct the agent can press the "Make Reservation" button to finalize the booking. If any corrections need to be made the agent also has an option to return to the previous screen by pressing the "Return to previous Screen" button.

If at anytime during the booking, a agent wish's to quit the booking and lose all immediate information, they may do so by pressing the "Exit Booking" button. This would return them to the main menu.







General Information Query



This function allows the user to query for either flight information or passenger information. The query flight information will give the user a list of all the passengers that are booked on the plane along with its date and time of departure, destination and departure point.

The passenger query will give the user information about a passenger such as his ticket number, flight number, address, phone number, etc.

The user can select this option by clicking on the "General Information Query" tab from the main menu. After selecting this option, a small window will pop up asking the user to choose one of the below query options:

To select a desired query, the user can use the mouse and double click on it.



Query Flight Information


This query function is used to obtain information about a certain flight. For example, an agent might want to find out the date and time the flight is leaving or arriving. Also, the agent might want to see who are currently booked on the plane.

The function can as well be used retrieve a list of flights that go to a specific destination. This function might be useful for the booking agents to give out information to their customers about the flexibility of departure dates and times to a desired destination.

The user can enter this query mode by selecting the "Query Flight Information" from the "General Query Information" screen, in which a new screen will appear asking the user to enter in either a flight number or destination.

This new screen will have two search options; one is to search by destination and the other is by flight number. The user can check one of the boxes below using the mouse causing an 'X' to appear in the selected box. Then the agent can type search term in the entry box.

The "Query Flight Information" screen will look similar to the following:

Please check on one of the two boxes below:

[] search by destination [] search by flight number

Enter search term: ______________

[Ok] [Cancel]

If the user chooses search by destination, the number of characters the system expects in the entry box is at most 30 characters.

On the other hand, if the user selects search by flight number, the number of charaters expected is exactly 2 characters follow by a 4-digit number with no white spaces between the characters and the number.

After the search term is entered, the user can either press the "OK" button or hit the "Return" key to process the request. However, he can return to the previous screen, which is the "General Query Information" by pressing the "Cancel" button.

If the search selected was by destination, then a list of all the flight numbers including their associated date and time of departures and departure points will be displayed in the order sorted by date. The list will be displayed in a table format:

 

	| flight # 	| departure pt.	| date 	| time 	|
	-------------------------------------------------
	|	    	|	    	|	|	|
	|	    	|	    	|	|	|
	|	    	|	    	|	|	|
	-------------------------------------------------

In the case that the user entered the wrong input, ie. a mispelled destination or a destination that does not exist in the database, a small window will pop up with the error message:

Sorry, the destination ________ is unknown or there is no flight available to that destination. Please check your input again.

[OK]


The user can press the "OK" button to return to the "Query Flight Information" screen.

If flight number was selected as search request, the output will be the destination of that flight as well as its date and departure point. Also, a list of all passengers that are currently booked on the flight and their ticket numbers, seat information (including seat number and position of seat on the plane, ie. window, aisle, or center), and class number.

When the user done his or her queries, the user can return to the "Query Flight Information" menu by pressing the "OK" button.

If the user wants to go back to the main menu, he or she can do so by clicking on the "go back to the main menu" button.

In the case that the user entered an invalid input, ie. flight number that does not exist, a small window will pop up genertating the following error message:


Sorry, the flight number ________ does not exist. Please re-enter your input.


Example:


Please check one of the two boxes below:

[X] search by destination [ ] search by flight number


Enter search term: Toronto


[OK] [Cancel]

^^^^

("OK" button pressed) (A new window pops up with the following information:)

	___________________________________________________________
	| flight # 	| departure pt.	| date 		| time 	  |
	-----------------------------------------------------------
	| ca2537	| Calgary	| Apr. 5, 1996	| 12:30pm |
	| ge6734	| Edmonton	| Apr. 6, 1996	| 08:00am |
	| ....		| ....		| .....		| ....	  |
	-----------------------------------------------------------

[OK] [Go back to the main menu]

(press "OK" will go back to the "Query Flight Information" menu)/



Query Passenger Information


This function is used to obtain information about a certain passenger. For example, an agent might want to find out the list of flights that a passenger has booked. They might also want to know the seat number, class or the seat position (window, centre or aisle) for a particular passenger.

The query function might be useful for the booking agent in the case that a customer wants to confirm his/her flight(s) or he/she forgot his/her flight number, seat number, etc.

The user can enter the query mode by selecting the "Query Passenger Information" option from the "General Query Information" screen, in which a new screen will appear asking the user to enter in either a ticket number or name of a passenger.

The screen will look similar to the following:

Please check one of the two boxes below:

[] search by name

[] search by ticket number

Enter search term:____________

[OK] [Cancel]

If the user selects by name, the maximum number of characters allowed is 30.

The system then will wait until the user enters the input. When done, the user can either click on the "OK" button or press the "Return" key to process the request. However, the user can cancel this request by pressing the "Cancel" button, which will bring him back to the "Query Passenger Information".

After processing the search request, the system will display the passenger's information on the screen. This information will include the name of the passenger, address, phone number, and his or her special requirements. Also, there will be a table showing a list of flights on which the passenger is booked on, their asscoiated flight numbers, ticket numbers, and class numbers.

The user can press the "OK" button to get back to the "Query Passenger Information" screen.


Example:

[X] search by name
[ ] search by ticket number

Enter search term: Joseph Smith

[OK] [Cancel]

^^^^

(A new window pops up with the following information:)

Name: Joseph Smith
Address: #100, 4567-12ST, NW., Calgary Phone #: 220-1234

Special Requirement: wheel chair


        _________________________________________________
        | flight #      | ticket number | class number  | 
        -------------------------------------------------
        | ca2537        | 123456        |     1         |
        | ge6734        | 123457        |     2         |
        | ....          | ....          | .....         |
        -------------------------------------------------

[OK] [return to the main menu]
^^^^

(return to the "Query Passenger Infomation" menu when "OK" is pressed)

If the user entered an invalid input, a small window will display with the following error message:


Sorry, the passenger "_____" does not exist.
Please re-enter your input.

[OK]

The user can press the "OK" button to get back to the "Query Passenger Information" screen.

If the user choose the "search by ticket number" box, then the system will ask the user to input a number in the same manner as it would ask for the the name of passenger.

The user is expected to entered the ticket number with 6 digit integers.

If a correct ticket number is entered in the query, the output will be the same as if the user searched by his/her name.

If the user inputs an invalid ticket number, then the system will display the following error message:

Sorry, the ticket number ________ does not exist.
Please check your input again.

[OK]


Again, after reading the error message, the user can press the "OK" button to bring him back to the "Query Passenger Information" screen.

Again, the user can go back to the previous page or the main menu by choosing the corresponding buttons.





Issue Boarding Passes

This function is needed to generate boarding passes prior to the time of departure. When passengers check in at the airport, after confirmation of seat reservation on the plane, boarding passes will be issued.

To enter this function mode, the user simply selects the "Boarding Passes" tab from the main menu, a screen will appear that will list all of the flights leaving the airport on the current day. The booking agent can then select a flight to start issuing boarding passes. After a flight has been selected, a list of all the ticket numbers of passengers booked on the plane will be displayed on the screen. This list is sorted by ticket number which will make it easier for the agent to search for a specific ticket number within the list.

Since the booking system allows a flight to be overbooked by 15%, that 15% overflow of passengers are not allowed to make seat reservations. Hence, those with no reserved seats must wait until 15 minutes before the time of departure to request boarding passes. Those with reserved seats can get their boarding passes at the time of check in.

The process of issuing boarding passes involves the agent to select a passenger's ticket number from a list. After a ticket number is selected, a new screen will appear with the passenger's information, similar to the "Booking" screen. After confirming that the information on the screen matches that on the passenger's ticket, the agent can press the button called "Issue Boarding Pass". The boarding pass will be printed and given to the current check in passenger.

The information on the boarding pass will include:

In case the agent selects the wrong ticket number, say, the ticket exists and is someone else's ticket number, he or she can match the name of the ticket holder and the name displayed on the screen before he or she issues a boarding pass. If the name matches, the agent can print out the boarding pass, or else, he or she can cancel the request by pressing the button "Cancel". This will bring the agent back to the previous screen which contains a sorted list of all ticket numbers. The agent can then re-select the ticket number.

Every time a boarding pass is issued, the computer will automatically updates or confirms the seat reservations. Therefore, during the 15 minutes prior to departure time, the remaining reserved seats which were not confirmed by the computer become available for others to book. According to the number of available seats, those 15% overbooked passengers are then allowed to book their seats during the request of boarding passes. Hence, the agent who issue boarding passes also have the authority to ask the system to automatically assign seats to passengers at the time of issuing boarding passes. The agent can press the button "Select Seat" before issueing a boarding pass in which the computer will assign a seat to the passenger. If the agent somehow requests a boarding pass before requesting the computer to select a seat an error message will pop up saying, "Please assign a seat first".

One may ask, "Why can't the computer assign seats to passengers who do not have reserved seats while generating boarding passes?" One reason we do not allow the computer to do this is because we want to make sure that agent would know if any of the 15% overbooked passenger checks in before they are allowed to.

** Note:

The response to the boarding pass specification said that the agent should be allowed to select a passenger name from a list of passengers and not a ticket number from a list of ticket numbers. We think that there would be a problem with a list of passenger names because there might be more than one person with identical names. How would the agent decide which passenger is which? Moreover the response said that the agent will only need to click on the passenger name to generate a boarding pass, we believe that this method does not allow the agent to double check his or her selection in the case that he or she may have selected the wrong name from a large list of names. Hence, we suggest that the agent can select a ticket number from a list of ticket numbers since they are unique. After the ticket number is selected, a window containing the passenger information will be displayed allowing the agent to double check on his or her selection.







Issue Refunds

If a passenger cannot get a seat and hence, cannot board the plane, the passenger will be refunded 10% of the ticket price and will be booked on the next flight to their destination. The agent of course will also have the authority to issue refunds to those people. The agent needs to select a ticket number and request a refund by clicking on the "Issue Refund" button on the "Issue Boarding Passes" screen. The computer will automatically calculate the amount of refund and send a message to the accounting department to issue a refund to the passenger.

After a refund is issued to the passenger, the agent can start rebooking the passenger onto another flight. The agent only needs to click onto the button "Re-book" within the "Issue Boaring Passes" screen. This will generate a list of all the flights that are available, that is not yet booked to 115%, with the same destination and departure point. This list will be sorted by date. The passenger can state the date and time they would like to travel and the agent will simply select the flight number by double clicking on it with the mouse. The passenger will automatically be booked to that flight.

When the agent pressed the button "Re-book", a new screen with a lists of flights will appear in this format:

	_________________________________________________
	| Flight #	| Date		|        Time   |
	|-----------------------------------------------|
	| sa1245	| Feb. 14, 1996	| 03:45pm	|
	| dg3663	| Feb. 15, 1996	| 12:22pm	|
	| ....	        |      ...      | ....		|







Design Appendix












Data Dictionary



Passenger= @ticket number + @last name+ first name + flight number + class number + seat position + seat number + address + phone number + special requirement

(object: represent passenger booked to flight)

Flight Info= @flight number + @ticket number + source + destination + departure date + departure time + seat number + class number + seat position

ticket number = integer
(key attribute of object passenger and flight info 6 digits long)

last name = string
(key attribute of object passenger; max 15 characters )

first name = string (non key attribute of object passenger; max 25 characters)

flight number = string + integer
(non-key attribute of object passenger & key attribute of object flight info; 2 characters followed by 4 digit integer)

class number = ["1"|"2"|"3"]
(non-key attribute of object passenger & object flight info; 1 indicates first class, 2 second class, and 3 third class )

address = string
( non-key attribute of object passenger )

phone number = integer
(non-key attribute of object passenger; should be 10 digits with 3 digit area code first)

special requirement= string
(non-key attribute of object passenger )

source = string
(non-key attribute of object flight info)

destination = string
(non-key attribute of object flight info)

departure date = string+ integer
(non-key attribute of flight info; of form month ,day, year ie January 30, 1996)

departure time = integer
(non-key attribute of object flight info; using 24 hour clock ie. 14:00)

seat number = integer+letter
( 1 or 2 digit number + letter; non-key attribute of object flight info)

seat position = ["w"| "a"]
( single letter for seat type request ie window or aisle )


System Administration Design Document


  1. Flights
  2. Booking Agents
  3. Aircraft

Flights

Adding a Flight

The supervisor will be presented with a screen from which they can add a flight to the schedule.

First, the system administrator will be prompted for the aircraft number. This number is as described in the data dictionary. If the number does not exist, the user will be reprompted. The user will then TAB to the next field, the destination.

The destination city is then entered. This is checked to make sure that the city is on the list of valid cities. (NOTE: This is based on the assumption that all flights are from Flin Flon to somewhere else.) The user will then TAB to the next field, the date of departure.

The date is entered in the format Month, Day, Year (as defined in the data dictionary). Error checking is performed on the date to make sure that the date entered is after the current date. Next, the time is entered in 24 hour format. Error checking here is done if the date is the current date to make sure that the time is not prior to the current time. Error checking is also performed to make sure the time is greater than 0 and less than 24 hours. The minutes are also checked for validity (being greater than 0 and less than 60). Then, the scheduled arrival time is entered in the same format. The same error checking is performed on this data as above.

After entering this information, the user will select the ADD FLIGHT button at the bottom of the screen. This will prompt the user to confirm the addition of this flight in a box. If the user selects YES, the flight is added to the schedule. If the user selects NO, this information is discarded and the screen is returned to it's original state. A flight is only added if the plane is available at the scheduled times (i.e.there is no overlap for another flight by the same plane).

Modifying a Flight

The system administrator will be presented with a screen to enter the flight number of the flight they wish to modify. If the flight number does not exist, then the user is reprompted for this information and the appropriate error message is shown. If the flight does exist, the user is shown a screen containing all of the pertinent flight details including Flight Number, Destination, Departure Date and Time, Scheduled Arrival Time and Plane Number.

All of these fields are modifiable by the system administrator. The same error checking is done on this information since the system administrator will not be able to modify the Departure Date to a date prior to the current date. After the appropriate modifications are made, the system administrator is prompted with "Are you sure you wish to make these changes?" and asked for a confirmation. If is selected, the changes are saved. If is selected, then the changes are discarded and the flight information is left unchanged.

Deleting a Flight

Only the system administrator user will have access to this function. The system administrator will be presented with a screen from which they can enter the flight number they want to delete. If the flight number does not exist, then the user is shown an error message saying "This flight does not exist,please try again". If the flight does exist, then the user is shown a dialogue box stating "Are you sure you want to delete this flight?" and presented with a choice of . If the user selects , the flight is removed from the flight schedule. If the user selects , the flight is left on the schedule.

Any passengers on the flight must be rebooked on the next available flight to the same destination. This is done by showing the next available flight in a window and the system administrator is prompted "Do you wish to add the bumped passengers to the next available flight?". The next available flight number and time/date are shown to the system administrator. A choice is presented for this. If is chosen, the passengers are added to the next available flight (if there is space available on it). If there is not enough space, they are put on the following available flight. If there is space for the passengers, they are added to the flight manifest for this flight and the flight manifest is updated.

Data Dictionary

City

Name
the city name will consist of a twenty character length string. The city name will be entered by the system administrator and will either be a departure point or arrival destination for a Flin Flon flight. This character string will be only alphabet characters and will contain no numbers or other character types. An invalid entry will be any city name that has numbers in it, a city name entered with no characters, or names that have any combination of characters with non-alphabetic letters. An example of a valid entry will be "Chicago". The name attribute will be the defining key when performing a search. In other words, when performing a search, someone will enter a city name into the search field to locate a specific city entity in the database.
Airport
the airport attribute will consist of a character string having a maximum length of twenty-five. This character string will be the airport's name and will incorporate any combination of characters. The airport exists as a sub-entity of the city and can have Flin Flon planes either arriving or departing from it. All other airplanes arriving and departing from an airport is not the responsibility of the system administrator. An invalid entry will consist of a no character entry. An example of a valid entry will be "Kennedy Airport".

Flight

Flight Number
the flight number is the defining key when it comes to the flight field. This key will be used when searching for a specific flight. A flight number will consist of two characters followed by three digits. The leading characters will be "ff" and this will be a constant. The following three digits will be positive integers, if an integer is less that the desired three digits it will contain leading blanks. This number will be sequential and will be assigned by the computer. An invalid entry will consist of two leading characters that are not "ff" followed by a negative number or a number that does not contain three digits. Also the flight number must not be one that is already in use. In other words it must be unique for the flight schedule. Examples of correct flight numbers are "ff001" and "ff324".
Departure Date
The departure date will consist of a character string that is 25 characters long. The first entry will be the month name, non-abbreviated, followed by a space, the day of the month, followed by a comma, another blank, and lastly the year. The year will be four digits. Invalid entries are ones that contain months that are non-existent, negative days or years, days that are greater than 31, dates that do not have the proper spacing, and departure dates that occur after an arrival date. An example of a valid entry is "January 7, 1997".
Departure Time
This attribute will consist of four positive digits that coincide with the twenty-four hour clock. It will be local time and must start with leading zeros if the hour time is not two digits. The first two digits will range from "00" to "23" and the last two digits will range from "00" to "59". An invalid entry will consist of negative digits, digits that are not of length four, and digits that do not fall into the range above. An example of a valid entry is "0130".
Arrival Date
The arrival date will consist of a character string that is 25 characters long. The first entry will be the non-abbreviated month name, followed by a space, the day of the month, a comma, another blank, and lastly the year. The year will be four digits. Invalid entries are ones that contain months that are non-existent, negative days or years, days greater than 31, dates that do not have the proper spacing, and arrival dates that occur before a departure date.
Arrival Time
The arrival time of a flight will consist of four positive digits that are in twenty-four hour clock mode. It will be local time and must start with leading zeros if the hour time is not two digits. The range of the first two digits are "00" to "23" and the range of the last two digits are "00" to "59". An invalid entry is one that will not fall into the above range, an entry that is negative, and digits that are not of length four. An example of a valid entry is "1234".
Departure Point
The departure point will be a city name. The field will be at most twenty characters long and must be a departure point that Flin Flon airplanes depart from. An invalid entry will be a city name that is non-existent in the City database or one that Flin Flon airplanes do not depart from. Therefore the departure point will contain a link to the City entity. When the departure point name is entered it will search for the matching city name in the city entity data base and provide a link to it. Also one will be able to view the airport name associated with this city name. If the city is not listed, the system administrator has the option of either adding a new city and hence airport name or just retrying. Another invalid entry is when the departure point is the same as the arrival point. The computer prompts the user for a decision of either of the above options. An example of a valid entry is "Lethbridge".
Arrival Point
The arrival point will be a city name. The field consists of twenty characters and must be a valid city name that Flin Flon airplanes fly to. An invalid entry will be a city that is not on the flight list or a no occurrence of a city name in the City entity database. Hence there is a link from the arrival point attribute of flight and the City database. When the arrival destination is entered in this field it brings up the corresponding file in the City database and the administrator can then view the airport name associated with it as well. So if this search comes up false, the administrator has the option of adding a new city and airport name, or can re-enter the arrival point. The computer will prompt the user for this decision. Another example of an invalid entry is having an arrival point that is the same as the departure point. An example of a valid entry is "Calgary".
Flight Manifest
This attribute will be part of the flight entity be will be defined by the booking agent. The flight is only concerned with the manifest as a reference for passenger information.
Distance
This attribute will consist of a positive number of at most five digits and will be in kilometres. It will be the distance from the departure airport to the arrival airport. An invalid entry will be one that is negative, the dialogue box that inputs the entry will not allow a digit that is greater than five digits. This distance is solely up to the administrator to get right and will not be the responsibility of the software to check if this is the actual distance from airport to airport. An example of a valid entry is "850" km.

Booking Agents

Overview

The system administrator can add new booking agents, delete existing booking agents and modify the attributes of an existing booking agent.

The system administrator selects the booking agent screen by selecting the 'Booking Agents' tab. A screen will appear containing the list of booking agent names, sorted alphabetically.

The "Booking Agent" tab works similarly to the "Flights" tab. The screen contains an "Add Booking Agent" button to create a new agent. It also contains a "Delete Agent" for removing an agent, and an "Undo" button to restore fields to their previous values.

Adding A Booking Agent

To add a booking agent, the system administrator selects the "Add" button from the booking agent screen. A form is displayed with a text entry field for each booking agent attribute.

The system administrator then enters the correct information for the new booking agent and presses the "Add" button. To cancel the add operation, the system administrator can press the Cancel button to return to the booking agent screen.

At this point, the system checks the new record to make sure the data is in the proper format. The following situations cause errors:

When an error occurs, the system administrator will be notified with a dialog box what the error was, and the form will be redisplayed with the incorrect field highlighted.

The system then asks for confirmation in the form of a Ok/Cancel dialog box. If the system administrator presses Ok, system attempts to add the new booking agent record.

When the password is entered, the characters are not displayed on the screen. The system administrator must type the password into two fields to insure the intended password was correctly entered.

Modifying A Booking Agent

To modify an existing booking agent record, the system administrator selects the booking agent's name from the booking agent screen and presses the "Modify" button. A form containing a text entry field for each booking agent attribute is displayed. Each entry contains the current value of that attribute.

The system administrator then changes the neccessary fields and presses the "Update" button. To cancel the modification, the system administrator can press the Cancel button.

At this point the system then checks for errors in the fields using the same algorithm as when adding a record. If an error occurs, the system administrator will be notified with a dialog box what the error was, and the form will be redisplayed with the incorrect field highlighted.

The system then asks for confirmation in the form of an Ok/Cancel dialog box. If the system administrator presses Ok, system attempts to modify the booking agent record.

If the password is changed, the characters are not displayed on the screen. The system administrator must type the new password into two fields to insure the intended password was correctly entered.

Deleting A Booking Agent

To remove an existing booking agent record, the system administrator selects the booking agent's name from the booking agent screen and presses the "Delete" button.

The system administrator will then be prompted to confirm the selection with an Ok/Cancel dialog box. If the system administrator responds by pressing the Cancel button, no changes will be made and the system administrator will be returned to the booking agent screen.

If the system administrator responds by selecting the Ok button, the booking agent record will be deleted from the database, and the system administrator will return to the booking agent screen.

Data Dictionary

Booking Agent

Surname
The booking agents last name; this will be a string of twenty characters containing only alphabetic characters and punctuation. Any string containing digits is invalid. Example: "Doe". Note that any number of booking agents may share the same first and/or last name, but they must each have a unique login name.
First Name
The booking agents first name; this will also be a string of twenty characters containing only alphabetic characters and punctuation. Any string containing digits is invalid. Example: "John".
Initial
The booking agents middle initial; this will be a one character field containing either a alphabetic character or a space to indicate none.
Address
The booking agents address; this will be a string of fifty characters. This field is expected to include: building number, street, city, province, and postal code, in a form suitable for a mailing label. Example: "2500 University Dr. Calgary, AB T2L 0A0".
Phone number
The booking agents phone number. It will consist of a three digit area code enclosed in parentheses plus a seven digit local number with a dash in between the third and fourth digits. The area code may not be omitted, but the local code will be provided as a default. Example: "(403)283-1752".
Login name
This is the name the booking agent will use to log into the booking agent system. It consists of a string of ten characters. Letters of either uppercase or lowercase may be used, but the name must be a single word (ie no spaces). The login name must be unique, and it will be used as the primary key for booking agents. The "Add Booking Agent" screen will prevent the system administrator from creating a booking agent with a login name that has already been used. Example: "davidt".
Password
This is the booking agents password that must be entered along with the appropriate login name to gain access to the booking agent system. It will be stored in an encrypted format for security. It consists of a string of ten characters. Letters of either uppercase or lowercase may be used, but the name must be a single word (ie no spaces). Note that when this is entered or changed, the characters will not be displayed on the screen.

Aircraft

This represents the set of functions available to the system administrator. In this class, the system administrator may:

  1. Add an aircraft
  2. Delete an aircraft
  3. Modify an aircraft

These are all functions which can access a database containing information on each aircraft type. To get to this menu, the system administrator must first login, and select 'aircraft' from the system administrator option menu.

The system administrator will be prompted to select one of these three options, or to cancel the request and return to the previous menu.

Here is a description of the three functions. It will include a description of the different inputs one can enter into the system, and the resulting outputs the system administrator can expect.

Also, a detailed description of the various error messages that are possible.

Finally, an explanation of how the design works, and on which the actual coding will take place.

Adding an Aircraft

When a new aircraft model is obtained by the airline, the database must be updated, and the new records input. Once this option is selected, the sub-program will be called which contains a 'form' for the user to fill out.

This form will contain empty spaces for each of the attributes associated with an aircraft. The system administrator will have the ability to input information into these fields.

The attributes include the name of the aircraft type, the manufacturer, model, seating capacity, and some fields corresponding to the seating layout. Each of these fields is more thoroughly explained in the data dictionary, and will include samples of valid and invalid input.

If the system administrator wishes to cancel this request at any time, the system administrator may do so by choosing the 'Cancel' option. This will return the system administrator to the previous menu.

When the system administrator is complete, and is satisfied that the information is correct, the system administrator may select the 'Ok' option.

Then, the computer will check each field, and ensure that each one has a valid input. Examples of valid and invalid input appear below.

If an error is found, a box will appear, identifying the incorrect input. The system administrator will be asked whether to return to the previous menu, and change the input, or to cancel the request.

If no errors are found, the system administrator will be asked to confirm that the information is correct. A window will appear, and the system administrator may select the 'Ok' option or the 'Cancel' option.

If the 'Cancel' option is selected, the system administrator will return to the main menu, and the new aircraft will not be added to the database.

If the 'Ok' option is selected, the system administrator will return to the main menu, and the new aircraft will be added to the database.

Modifying an Aircraft

Sometimes the information pertaining to an aircraft will be changed. The system administrator may select this option from the main menu to initiate a sub-program where these changes can be made.

When this option is chosen, a list of all aircraft in the database will appear on the screen. It will be sorted alphabetically by name, and will include the manufacturer, model, seating capacity, and seating layout information.

The system administrator may now select one of the aircraft to modify. The system administrator may then select the 'Ok' button to modify that aircraft.

At any time, the system administrator may select the 'Cancel' button, which will return the system administrator to the previous menu.

Once an aircraft has been chosen, and the 'Ok' button has been selected, a chart will appear containing all the aircraft's current information.

The information will include the aircraft's name, manufacturer, model, seating capacity, and seating layout information.

The system administrator may change any of the information in any field.

As always, the system administrator may at any time select the 'Cancel' button, and return to the main menu.

Once satisfied with the modifications, the system administrator may select the 'Ok' button.

Then, the computer will check each field, and ensure that each one has a valid input. Examples of valid and invalid input appear below.

If an error is found, a box will appear, identifying the incorrect input. The system administrator will be asked whether the system administrator wishes to return to the previous menu, and change the input, or to cancel the request.

If no errors are found, the system administrator will be asked to confirm that the information is correct. A window will appear, and the system administrator may select the 'Ok' option or the 'Cancel' option.

If the 'Cancel' option is selected, the system administrator will return to the main menu, and no changes will occur to the database.

If the 'Ok' option is selected, the system administrator will return to the main menu, and the modifications will be made to the database.

Deleting an Aircraft

If ever an aircraft is sold, destroyed, or for some reason is no longer available for the airline, the aircraft can be deleted from the database.

Once this option is chosen from the main menu, a list of all aircraft will appear on the screen.

The list will be sorted in alphabetical order, and will contain all the fields in the database, including plane name, manufacturer, model, seating capacity, and seating layout information.

The system administrator may cancel this request at any time by selecting the 'Cancel' button. This will return the system administrator to the main screen.

The system administrator may select one of the aircraft, and then select the 'Ok' button.

The system administrator will then be prompted to confirm the selection. If the system administrator responds by pressing the 'Cancel' button, the aircraft will remain in the database, and the system administrator will be returned to the main menu.

If the system administrator responds by selecting the 'Ok' button, the aircraft will be deleted from the database, and the system administrator will return to the main menu.

Data Dictionary

Plane

Plane Name
Due to customer's needs and requests, the planes will be identified with a name. It will consist of a string of characters and numbers of finite length.
Invalid and valid inputs:
  • No two planes may share the same name.
  • All planes must have a name.
Manufacturer
The manufacturer of the plane will also be stored in the database. It is a string of characters and numbers of finite length.
Invalid and valid inputs:
  • All aircraft must have a manufacturer
Model
The model of the plane will also be stored in the database. It is stored as a string of characters and numbers and will conform to a standard that is at the discretion of the system adminstrator.
Invalid and valid inputs:
  • All aircraft must have a model.
Seating Capacity
For each aircraft, there will be a corresponding seating capacity. It is stored as a number of finite length.
Invalid and valid inputs:
  • An aircraft may not have a seating capacity below 1.
Seating Layout
For each aircraft, some information pertaining to the seating layout of the aircraft will be stored. It will be stored in possibly multiple fields, and in any number of formats.
In later versions, and upgrades, fancier versions to record seating layout information can be stored.
Seating layout, for simplicity's sake, will only include a list of how many window seats, aisle seats and centre (other) seats. Each will be recorded as a number of finite length.
It is assume that no seat is both one type and another (ie, both a window and an aisle).
Actual seat numbers can be computed by the booking agents, or using some other mechanism.
Since seats can arbitrarily be in one class or another (using an extra cushion, better service, or something), keeping track of the number of seats in each class will be saved for a later version as well.
For now, three fields:
  • Number of Window Seats
  • Number of Aisle Seats
  • Number of Centre Seats
Invalid and valid inputs:
  • The three numbers must add up to the seating capacity.
  • Each number must be larger than 0.



Screen Snapshots


The screen snapshots are listed separately.




Glossary


login name
A name used to identify booking agents and system administrators to ATICS.

password
A string of characters used to authenticate users before they use ATICS.

PC
A personal computer, eg: Macintosh, Compaq Presario.

tab
A method of organizing graphical screen space. Tabs are listed across the top of the screen and remain visible at all times. Each tab is connected to a screen whose contents appear in the space below the tab. When a different tab is selected, the screen contents are changed to the new tab screen.

UNIX workstation
A computer that is more powerful than PC's and supports graphical displays.

Overall Design Document Credits


Document Summary

Interface Design

  • System Administration

    • Rob Vollman
    • Andrew Taylor
    • Charanjeet Jugdev
    • Jerry Coolidge

  • Booking Agent

    • Jamie Kromrey
    • Josephine Ng
    • Hanna Dang
    • Ernest Domshy