First Response to Mootronix


Table of Contents


Project Overview



Dairy Air Comments and Questions are in blue emphasis

Back to Table of Contents


It is the goal of the Mootronix software development team to create a hassle-free and easy to use electronic reservation system to allow Dairy Air to grow larger and become more competitive in the airline industry. We believe a system providing the following key features will most effectively meet this anmbitious goal.

  • Each subsystem will be easy to use and easy to learn.
  • Access to each subsystem will be restricted to .


    What are and who the specified users? What specific aspects of the system will handle this?

  • Communication of information between subsystems will be automatically performed where requiblue.


    How is the communication going to take place ?

  • Backups of information will be easy to perform.
  • Overall, the system will be a stable, low-maintenance product.

    once implemented with the above targets in mind, will allow Dairy Air employees to be more productive and will blueuce errors. Previously complex or time-consuming tasks will be made quick and easy. The key benefits of UDERS are:

  • Little or no expensive training will be requiblue to use UDDERS
  • Unrestricted access will not be possible--sensitive and/or valuable information will be protected.


    Which information is sensitive and or valuable? Where will it be specified ?

  • Communication between departments and individual employees will be faster and more economical, which will enhance performance.
  • Errors inherent in multiple paper copies of information and in manual copying of information will be eliminated.
  • Expensive physical storage of paper files will be eliminated, replaced by cheap and easily-performed digital storage

    NICE TOUCH WITH DIGITAL STORAGE IN GLOSSARY!


  • Customer service will improve, because Dairy Air employees will not be spending as much time dealing with reservations.

    UDDERSwill be designed to handle all of the day to day requirements for Dairy Air. The major components identified are as follows:


    Major Components of what?

  • administration of airplanes
  • scheduling of flights
  • booking passengers on flights (issuance of tickets)
  • confirming passengers on flights (issuance of boarding passes)


    Tickets are always synonymous with reservation. The glossary says otherwise. Change the glossary ?

  • producing a variety of -oriented reports
  • security Procedures to limit access to specified users
    See above comment about specified users

    UDDERS is being targeted to run on a PC using an NT client-server environment. This will provide the most bang for the buck for UDDERS.

    In the future, should Dairy Air wish to further automate other aspects of their operations, the UDDERS system has the potential to be "extensible".


    Do you specify "extensibility somewhere ?

    Individuals responsible for these tasks will be able to access UDDERS to perform their duties quickly and efficiently. UDDERS will unify operations within task boundaries, sharing information where appropriate, to ensure that costly mistakes are not made that occur when information is not distributed properly. To protect information, security measures will be in place. Each subsystem within UDDERS will be accessible only by appropriate personnel(i.e., a booking agent will be able to book a on a flight, but will not be able to schedule a new flight). From a management perspective, UDDERS will enable quicker and more accurate identification of trends, and will enable Dairy Air to be more responsive to the rapidly-changing airline industry. In short, UDDERS will be a key component for Dairy Air as they move into the 21st century.



    Please give a list and brief explanation of each subsystem and how they will interact with each other! A similar course should be taken to outline specified users in a similar manner!

    Nowhere in this document did we find any information pertaining to checking the validity of data input by users. It would be nice if some elaboration was to take place.


    Detailed breakdown of the UDDERS project.



    Dairy Air comments and Questions are in Blue Emphasis

    Back to Table of Contents


  • Data structures
  • Relationships between data structures
  • algorithms
  • Security Considerations

    Data structures

    The following Data Model outlines the basic data structures. involved. An overview of each structure is provided below:


    PlaneInfo

    This table will store one record for each airplane used by Dairy Air to fly their routes.

    Member
    Explanation
    PlaneNumberA unique identifier, one number must be assigned for each plane (done automatically by UDDERS).
    SeatingCapacityThe number of commercially available seats on the plane.
    LocationNumberThe location number where the plane is currently.
    TypeThe type of plane (i.e., Boeing 747)

    SeatInfo

    This table contains a listing of seats on each plane in the fleet.

    Member
    Explanation
    SeatNumberWhen combined with PlaneNumber this is a unique identifier. Unique SeatNumbers for each seat on a plane must be assigned by the UDDERS user.
    PlaneNumberWhen combined with SeatNumber this is a unique identifier.
    SeatTypeThe type of seat (window, aisle, or center).
    TicketNumberThe ticket number, where available, of the passenger currently assigned to this seat on the next flight.

    FlightInfo


    Every flight scheduled by Dairy Air will be represented by a single record in the FlightInfo table.

    Member
    Explanation
    FlightNumberA unique FlightNumber must be manually assigned by the scheduling agent. When combined with DepDate & DepTime this is a unique identifier.
    DepDateDate of Departure. When combined with FlightNumber & DepTime this is a unique identifier.
    DepTimeTime of Departure. When combined with FlightNumber & DepDate this is a unique identifier.
    PlaneNumberPlane being used for this flight.
    DepLocationLocationNumber flight is departing from.
    ArriveLocationLocationNumber flight is arriving at.
    FlightTimeDuration (in hours) of the flight.
    TicketPriceCost of a ticket for this flight.
    TicketInsuranceCost of Ticket Insurance for this flight.
    NumberPassengersNumber of passengers on the flight (Calculated after takeoff).
    TotalRevenueTotal Revenue generated by this flight (Calculated after takeoff).
    TotalEmptySeatsTotal number of empty seats on the flight (Calculated after takeoff).

    The data fields NumberPassengers, TotalRevenue and TotalEmptySeats were not specified in the Informal Specification. However, they do seem to be useful. However. please revisit this data since it appears not to be data that needs to be stoblue in the database..i.e., it could be generated when requiblue.




    LocationInfo

    Each city serviced by Dairy-Air will be represented by one record in the LocationInfo table.

    Member
    Explanation
    LocationNumberA unique identifier, one number must be assigned for each location (done automatically by UDDERS).
    LocationNameName of Location
    TimeOffsetTime difference between location and Calgary (in hours)


    The TimeOffset was not specified in the initial system specification but we do feel that this will make a useful addition.


    TicketInfo

    Each ticket that is sold to passenger will be represented by a single record in the TicketInfo table. When boarding passes are issued, ticket numbers will be assigned to seat numbers on the appropriate plane.

    Member
    Explanation
    TicketNumberA unique identifier, one number must be assigned for each ticket (done automatically by UDDERS).
    FlightNumberFlight number of flight the passenger is booked on.
    DepDateDate of departure of flight the passenger is booked on.
    DepTimeTime of departure of flight the passenger is booked on.
    OriginalCostAmount customer spent on their ticket.
    FirstNameFirst name of passenger.
    LastNameLast name of passenger.
    PhonePhone number of passenger.
    AddressAddress of passenger.
    NumberDelayedNumber of times delayed due to overbooked flights (this is not cumulative over a lifetime.
    TicketInsuranceTicket Insurance purchased?
    MethodPaymentCash, cheque or cblueit card (Space will be provided for cblueit card number, expiry date, and the cardholder's name).
    DatePurchasedDate ticket was purchased.
    TimePurchasedTime ticket was purchased.


    DepTime and DepDate should be able to be accessed as per the proper timezone of the departure city.



    RefundInfo

    Each passenger requiring a refund due to delays caused by overbooking will be represented by one record in the RefundHistory table. Once the customer has been refunded the record will be deleted.

    Member
    Explanation
    TicketNumberA unique identifier, one number must be assigned for each ticket (done automatically by UDDERS).
    FlightNumberFlightNumber of flight the passenger finally got on.
    DepDateDate of departure of flight the passenger finally got on.
    DepTimeTime of departure of flight the passenger finally got on.
    OriginalCostAmount customer spent on their ticket.
    FirstNameFirst name of passenger.
    LastNameLast name of passenger.
    PhonePhone number of passenger.
    AddressAddress of passenger.
    NumberDelayedNumber of times delayed due to overbooked flights.
    TicketInsuranceTicket Insurance purchased?
    MethodPaymentCash, cheque or cblueit card (Space will be provided for cblueit card number, expiry date and the name of the cardholder).
    DatePurchasedDate ticket was purchased.
    TimePurchasedTime ticket was purchased.


    Isn't most of this information already stoblue in the Ticket Info table? We think that this would be wasteful of disk space.



    FlightHistory


    Every past flight that was scheduled by Dairy Air will be represented by a single record in the flightHistory table.

    Member
    Explanation
    FlightNumberFlightNumber assigned by scheduling agent. When combined with DepDate & DepTime this is a unique identifier.
    DepDateDate of departure. When combined with FlightNumber & DepTime this is a unique identifier.
    DepTimeTime of departure. When combined with FlightNumber & DepDate this is a unique identifier.
    PlaneNumberPlane being used for this flight.
    DepLocationLocationNumber the flight is departing from.
    ArriveLocationLocationNumber the flight is arriving at.
    FlightTimeDuration (in hours) of the flight.
    TicketPriceCost of a ticket for this flight.
    TicketInsuranceCost of Ticket Insurance for this flight.
    NumberPassengersNumber of passengers on the flight.
    TotalRevenueTotal Revenue generated by this flight.
    TotalEmptySeatsTotal number of empty seats on the flight.
    FlightCancelBoolean indicator if the flight was cancelled (needed for statistical analysis).


    This table is practically identical to the FlightInfo table. We would like the final implementation to be as space efficient as possible. Please keep replication of information to a minimum.



    Relationships between Data structures


    As indicated in the Data Model Diagram, the above table descriptions are related to each other. Following is a more detailed description of these relationships.

    Relationship
    Explanation
    PlaneInfo - SeatInfoEach plane may have many seats or no seats. Each seat must be on a known plane.
    PlaneInfo - FlightInfoEach plane may be used for many or no flights. Each flight must use a known plane.
    LocationInfo - FlightInfoEach location may be the departure location for many or no flights. Each flight must depart from a known location. Each location may be the arrival location for many or no flights. Each flight must arrive at a known location.
    FlightInfo - TicketInfoEach flight may have many or no bookings (tickets) for it. Each booking (ticket) must be for a known flight.
    TicketInfo - SeatInfoEach passenger (ticket) may be assigned to one seat or to no seat. Each seat may have one passenger (ticket) assigned to it or no tickets assigned to it.



    In addition there are two unrelated tables in the data model. Following is a description of why they are included in the data model..
    Member
    Explanation
    FlightHistory Once a flight has occurblue it will be stoblue in a seperate table to facilitate quick searches in the FlightInfo table. Statistics for revenue figures and percentage of given flights booked which are full will be calculated from the FlightHistory table.
    RefundHistory Once a flight has occublue, all related ticket records wil be deleted to minimize storage requirements, and to free up SeatInfo records for the next flight. Any customers requiring refunds due to delays caused by overbooking will have their records recreated in Refund history to be processed by the accounting department at Dairy Air.



    Algorithms


    UDDERS will largely use simple algorithms to handle the majority of its activities, because of the built-in power of Microsoft Access.

    There are several activities that we will list algorithms for, including:
  • when a plane takes off;
  • when a passenger is bumped;
  • when an entire flight is cancelled; and
  • locating a plane.

    Plane Taking Off

    When a plane takes off, there are a series of record-keeping and housekeeping activities that must be performed.

    Algorithms
    Explanation
    Calculate Total Revenue for the flight.This will be done by adding up either the Original Cost field (if the # of times delayed is 0) or the Original Cost / 2^(# of times delayed) for each passenger on board a flight.
    Print out a list of passengers on board the flight. We will do this by querying the seat database for those customers who were issued boarding passes. This is the list of people aboard the flight.
    Print out a list of passengers who did not show up for the flight. We will query the reservation list for persons who were not delayed (i.e., they will have a value of 0 in the # of times delayed field) and who were not issued a boarding pass.
    Print out a list of passengers who were bumped from the flight. We will query the reservation list for those persons who were not issued a boarding passand who have a value of at least 1 in the # of times delayed field.
    Print out a list of passengers on that flight that need compensation. We will query the reservation list for those persons with a boarding passand who have a value of at least 1 in the # of times delayed field. These, in addition to being printed, will be stoblue in a separate database.
    Remove all reservations for the flight from the system.

    Passenger Bumped

    A passenger will be consideblue "bumped" if they attempt to obtain a boarding pass,but the plane is already full. In this case, the # of times they've been delayed will be incremented by one, and a search will be performed for the next available flight from the departure city to the arrival city. The agent will then have the option of confirming this booking or of manually overriding it.

    Flight Cancelled

    Here, a sorted list will be generated based on date and time of reservation. A flight with available seats from the departure city to the arrival city will be located, and the maximum number of passengers will be booked on it, unless overridden manually. This process will continue until the number of passengers left to rebook is 0.

    Locating a Flight

    A flight's location will be determined by searching through the flight database for that flight number. The flight that departed immediately prior to the current time will be consideblue to be the initial location. A comparison will then be performed, based on current time and the time offset of the arrival location. If the current time is after the arrival location time, then the flight location will be consideblue to be the arrival city. Otherwise, it will remain the departure city.




    Security Considerations

    Each datatable and interface method will be configublue to interact with a broad range of security levels. Datatables will be restricted by the following criteria

  • Read data
  • Add data
  • Modify existing data
  • Delete data
    NOTE: Interfaces will be restricted by the following criterion: Can open interface

    Each user of the system will have each of these attributes set for each datatable and interface according to their needs. (i.e., a booking agent would have the following permissions



    We think that the two seperate security fields for add and modify are blueundant and could be combined. This should make for a simpler, and yet still functional security system.


  • Read access to all datatables.
  • Add access to TicketInfo.
  • Modify access to TicketInfo.
  • Delete access to TicketInfo.
  • Modify access to SeatInfo.
  • Open interface permission for the main menu, flight availability, passenger booking, passenger editing, and seat assigning interfaces.

    This would allow them to sell tickets, cancel tickets, and issue boarding passes, but not to alter flight information, plane information, location information, or even to open the edit flight information interface.

    The security system will be easy for the database administrator to use and maintain. Groups will be set up before delivery assigning appropriate permissions to booking agents, flight administrators, plane administrators, boarding passissuers, etc. A new employee would only need to be added to a list of users and then added to each group they belonged to. A password would then be selected and the process of adding a new user would be complete.


    Possible implementations


    There are several ways to install UDDERS to make it accessible to all of Dairy Air's operations centers.

    The system we are proposing would be installed as a client-server model with the server installed in Calgary. Booking agents in places such as Edmonton or Vancouver would be able to access the system via remote links to the data in Calgary.

    A more responsive system would require a distributed approach with the most commonly used data for each site being stoblue at that site and accessible to all other sites over a communications network.

    However, within two years, we propose to replace either of these models with the Mootronix NTLIKLE system, which our hardware division is currently pioneering. It will use hyperspace links to provide instantaneous access to information with 100% security. This system will allow a client-server model to run as if the computers were right next to each other.

    User Interface



    Dairy Air Comments and Questions are in blue emphasis

    Back to Table of Contents


    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    Starting up UDDERS

    The following is an overview of the UDDERS' Main Menu. Upon starting up the system the following menu is displayed. The user simply has to click the button for the appropriate subsystem to access it. Users without security access for a subsystem will receive a message infoming them of this and be left in the Main Menu.


    Passenger Subsystem



    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    The following is an overview of UDDERS' facilities for changing or viewing ticket information. From the Main Menu, a user would click on the 'Booking' button or on the 'Passenger Information' button.

    Issuing a Ticket

    The Passenger Booking form will be optimized so that a ticket agent may easily process a reservation placed over the phone or in person by a passenger. The first button on the Main Menu labelled 'Booking' will lead to the 'Flight Availability' window (below).

    Here, the 'Possible Flights'box will list all available flights of Dairy Air planes. The list may be limited in size by filling in one or more of the three query fields:
  • Departure Date


    What format will Departure Date be inputted ? Why can't you have the same pull dowm menu for Departure Date ?

  • Departure City (chosen from a pulldown listbox of possible cities)
  • Destination City (chosen from a pulldown listbox of possible cities)
    This way, the agent can easily provide flight options to the passenger. When a decision has been made, the agent can highlight the desiblue flight from the list and press the 'Book Passenger' button.


    This Delete button has caused great confusion! Does it mean delete or cancel or is it a seperate option for the passenger information window


    What about cblueit card name (Visa, MasterCard...), number and expiry date and name on the card for the cblueit card for those unique situations where you might have to refund their cblueit account.


    It is assumed that the GST is included in the cost field shown. This also raises the question of what you plan to show on a ticket. A ticket must show the GST separately for tax purposes. The print button does what?

    The 'Passenger Booking' screen is displayed for the remainder of the booking process. The following fields on this screen will already have been filled in for the agent, reflecting the choice made on the 'Flight Availability' form:
  • Flight Number
  • Departure Date
  • Departure Time
  • Cost
    The following fields will also contain appropriate values:
  • Ticket Number (sequentially assigned)


    Clarify what the sequential ticket number means. Do your plans here conform with what was specified in the Q/A #2 (see our web page)? This form should contain another box to show the reservation number = combination of ticket number and flight number. This will appear and be useful for passengers phoning in to cancel a reservation.

  • Purchase Date (filled in with today's date)
  • Number of Delays (which will always will be 0 for a new booking)
    The booking agent then may fill in the remaining fields with the passenger's personal information, as well as choosing the 'Form of Payment' and recording the purchase of Flight Insurance. When all fields have been filled, the agent will be able to select the 'OK' button to record the booking.

    The booking process may be cancelled at any time by pressing the 'Cancel' button, which will bring the agent back to the Main Menu screen.

    Listing Passenger information

    To list information on a specific passenger, the booking agent will select 'Passenger Information' from the Main Menu. When the 'Passenger Information' window appears (although not shown here, the 'Passenger Information' window is the same as the 'Passenger Booking' window with a few extra options), it will contain the information for the first passenger in the database (sorted in ascending order by ticket number). If this

    Cancelling a ticket

    Cancelling a passenger booking is done by locating the desiblue passenger booking (see 'Listing Passenger Information'). Once the desiblue booking is displayed, the 'Delete Booking' button can be pressed, provided the passenger bought Flight Insurance. The system will ask the agent for confirmation (at which point the 'Ok' button can be pressed to delete the passenger booking or the 'Cancel' button can be pressed to cancel


    What if they did not purchase flight insurance? Will the system alert the agent that this cancellation can not be permitted?

    Changing Passenger/Ticket Information

    Changing ticketing information is done by locating the desiblue passenger booking (see 'Listing Passenger Information'). When the proper passenger booking record is on the screen, click on the field to be changed. After the new data has been enteblue, click the 'OK' button to modify the record in the database or the 'Cancel' ter>

    Plane and Seat Information Subsystem



    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    This section of UDDERS will be designed to allow Dairy Air to easily and effectively change information about planes in its fleet. Dairy Air will have the ability to add, delete, or modify planes and their seating configuration(s) via this screen. This form can be accessed from the Main Menu by selecting the 'Plane Information' button. Once the user has access to this form they will be able to add, delete, or modify any planes that Dairy Air owns and/or utilizes.

    Adding Planes and/or Seats

    Planes and seats can be added at any time by Dairy Air personnel, as their fleet size and configuration changes. They will access the plane information window and press the 'Add Plane' or 'Add Seat' button as their needs warrant. A unique plane identifier number will be assigned by the system when a plane is added to the system. This number will not be modifiable by the user to prevent data integrity breakdown. calculated by the system based on information from a separate sub-form. This form will ask for seat number to be filled in and a seat type to be selected from a drop-down list box for each individual seat. This is filled out by the user each time a new plane is added and can be modified at any time as a plane's configuration changes over time. The Plane Type field will be a simple user-enteblue field. The location field will be manually selected from a drop-down list box of potential cities. When updates are complete, the user will then have the option to save or cancel the changes made and will be returned to the Main Menu.

    Modifying Planes and/or Seats

    Planes and seats can be modified at any time by Dairy Air personnel, as configuration changes are made. Users will select the 'Modify Plane' button from the plane information sub menu to access this series of options. The only user-modifiable field for a plane will be location, in the case of an unforseen event or act of God. A seat, however, can have either its number modified or its type modified. When modifications are complete, the user will be returned to the Main Menu.


    Modifying/deleting seats is really only applicable to the reservations section. We don't anticipate physically modifying seats in our planes.

    Deleting Planes and/or Seats

    Planes and seats can be deleted at any time by personnel using UDDERS. To access this set of features, users will select the 'Delete Plane' or 'Delete Seat' button as their needs require. They will then be able to choose the plane and/or seat that they wish to delete, and be prompted for confirmation prior to returning to the Main Menu.


    Locations Subsystem

    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    The following is an overview of UDDERS' facilities for changing or viewing location information. From the Main Menu, a user would click on the 'Location Information' button.

    Adding Locations

    Selecting the 'Add' button would activate a sub-form which will accept the system's needed information for location data. The system will obtain the location name and the time offset relative to Calgary of the new location.

    Following data entry, the user would be asked whether the information is correct. Upon verification, the new information will be saved.

    Modifying Locations

    Selecting the 'Modify' button will display the location that the user wishes to modify. The user will have the ability to modify the location name and/or its time offset relative to Calgary. These would be useful in cases where the location name was incorrectly enteblue or a change in the offset time is necessary due to adoption or lack thereof of Daylight Savings Time, etcetera. Appropriate verification procedures would be implemented here as well.

    Deleting Locations

    Selecting the 'Delete' button will prompt the user to confirm the deletion of the location, assuming that all flights to and from that location have been deleted from the database. The location will then be removed from the list that Dairy Air flies to.


    Flights Subsystem

    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    The following is an overview of UDDERS' facilities for changing or viewing flight information. From the Main Menu, a user would click on the 'Flight Information' button.

    Adding Flights

    Selecting the 'Add' button would activate a sub-form which will accept the system's needed information for flight data. The system will obtain a uniquely assigned flight number, a departure date and time, and a plane to fly the flight. Departure and arrival locations will be enteblue into the system also by the user responsible for adding flights. The flight time will be enteblue in, as will ticket and insurance

    Following data entry, the user would be asked whether the information is correct. Upon verification, the new information will be saved.

    Modifying Flights

    Selecting the 'Modify' button will display the flight that the user wishes to modify. The user will have the ability to modify the majority of a flight's attributes. The only items that will not be modifiable will be the flight number, departure location, and arrival location, to maintain data integrity throughout UDDERS. Here, as elsewhere within UDD Deleting Flights

    Selecting the 'Delete' button will prompt the user to confirm the deletion of the flight from the database, assuming there are no reservations for that flight in the database. The flight will then be removed from the flight listings.


    User Interface Style

    Top / Passenger Subsystem / Plane & Seat Subsystem / Flights Subsystem / Locations Subsystem / User Interface


    All user interaction in UDDERS is done through the use of interactive windows. When a new window or data entry mode is requiblue push button are available for all necessary tasks. To assist expert users, however, all of the commonly used commands will also be accessible through pull down menus, and through the use of keyboard shortcuts. This will greatly increase the productivity of experienced users, while maintaining an easy to use and learn interface for newcomers to UDDERS.



    What about Reports? Was the button presented in the first screen shot intended to tease us or were you actually going to get around to that? The same thing goes for the Security button !


    The general information presented was not in a logical format and generally was not very specific.