Assignments | Class Photo | Course Home | Documentation | Schedule & Lecture Notes | Submit

Saint Louis University

Computer Science 290
Object-Oriented Software Design

Michael Goldwasser

Fall 2008

Dept. of Math & Computer Science

Assignment 01

Airline Reservation System

Contents:


Overview

Topic: Airline Reservation System
Related Reading: Ch. 2 of text
Due: Thursday, 11 September 2008, 2:15pm

The goal of this assignment is to work in teams to do a complete design of a simple airline reservation system, using techniques similar to those used in Chapter 2 of the text to develop the Voice Mail System design.


Collaboration Policy

For this assignment, you are allowed to work in groups of three (if you are having trouble forming a group of three, please contact me as soon as possible).

Please make sure you adhere to the policies on academic integrity in this regard.


Requirements Analysis

Note: You are not to add any functionality beyond what is outlined in the following analysis. If you feel that any of the requirements are ambiguous, please seek clarification from the airline liason (i.e., me).

Our goal is to develop a simple system for handling airline reservations and seating assignments. In general, it will allow

Domain Rules

  1. Registered users will be idenitifed by a userid and associated password.
  2. A single administrative account should be pre-registered in the system with username admin and password secret.
  3. A customer must login as a registered user before initiating any other features.
  4. A registered customer can view a list of available flights.
  5. A registered customer can book a reservation including a group of "traveling companions". The purchasing customer must be one of the travelers.
  6. Each reservation is assigned a unique "Record Locator".
  7. A single reservation might involve an itinerary composed of multiple flights ("legs"). Yet all traveling companions booked on a single reservation must have the same itinerary.
  8. When booking a group, if there are not enough available seats on the plane for the full group, none of the passengers should be booked on a flight. Furthermore, if there is not sufficient room for all legs of an itinerary, none of the itinerary should be reserved.
  9. When cancelling a reservation, all companions should be removed from all legs of the itinerary. That is to say, you cannot selectively remove individual companions from the group, or individual legs from the itinerary.
  10. Initial seeating assignments for all passengers should be automatically created when a reservation is booked.
  11. Each flight will have a seating configuration that is presumed to be some number of identical rows, with each row described using a string such as "AC_DEFG_HJ" to represent the seats from left-to-right, with an underscore designating an aisle. In this case, two seats named A and C are at the far left, then an aisle followed by four seats DEFG, then another aisle and two more seats labeled H and J. Notice that the alphabet symbols might not be consecutive, but they must be unique.

Use Cases

Connect to System
1. System offers choices:
      "Login to Existing Account"
      "Register New Customer Account"
      "Quit"

Register as Customer
1. Customer carries out "Connect to System"
2. Customer selects "Register"
3. Select userid
4. Provide full name
5. Provide password

Variation #1:
1.1 Start at Step 3
1.2 User selects a userid that is already reserved
1.3 System informs customer of problem
1.4 Return to Step 3

Login as Customer
1. Customer carries out "Connect to System"
2. Customer selects "Login"
3. Provide userid
4. Provide password
5. System accepts password
6. Proceed to "Main Customer Menu"

Variation #1:
1.1 Start at Step 4
1.2 User has provided improper username/password combination
1.3 System informs customer of problem
1.4 Return to Step 3

Main Customer Menu
1. Customer executes "Login as Customer"
2. System offers choices:
       "View Available Flights"
       "Create New Reservation"
       "Modify/Cancel Existing Reservation"
       "Logout"

View Available Flights
1. Customer executes "Main Customer Menu"
2. Customer selects "View Available Flights"
3. System displays list of available flights
4. System returns to "Main Customer Menu"

Create New Reservation
1. Customer executes "Main Customer Menu"
2. Customer selects "Create New Reservation"
3. System executes "Select Traveling Companions"
4. System executes "Select Flights"
5. System asks customer whether to finalize reservation
6. Customer indicates "Yes"
7. System finalizes reservation and automatically selects seats
8. System returns to "Main Customer Menu"

Variation #1:
1.1 Start at Step 6
1.2 Customer indicates "No"
1.3 System drops the preliminary reservation
1.4 System returns to "Main Customer Menu"

Select Traveling Companions
1. Customer is automatically considered the first traveling companion
2. System asks if there are any other companions
3. Customer indicates "Yes"
4. System asks for name
5. Customer provides name
6. Continue with Step 2

Variation #1:
1.1 Start at Step 3
1.2 Customer indicates "No"
1.3 System returns to Step 4 of "Create Reservation"

Select Flights
1. System asks user for flight number
2. Customer indicates flight number
3. System adds that flight to the building itinerary
4. System asks user whether to add another flight
5. Customer indicates "No"
6. System returns to step 5 of "Create Reservation"

Variation #1:
1.1 Start at Step 5
1.2 Customer indicates "Yes"
1.3 System returns to Step 1 of "Select Flights"

Modify/Cancel Existing Reservations
1. Customer executes "Main Customer Menu"
2. Customer selects "Modify/Cancel Existing Reservation"
3. System displays reservation summary for all reservations initiated by this customer
4. Customer selects one of those reservations
5. System offers choices:
       "Review Reservation Details"
       "Cancel Reservation"

Variation #1:
1.1 Start at Step 4
1.2 Customer cancels the action
1.3 System returns to Step 2 of "Main Customer Menu"

Review Reservation Details
1. Customer selects "Review Reservation Details" at Step 5 of "Modify/Cancel Existing Reservations
2. System displays list of passengers on this reservation
3. System displays list of flights on the itinerary
4. System offers choices:
       "Review Seating Assignments"
       "Done"
5. Customer Selects "Done"
6. System returns to Step 3 of "Modify/Cancel Existing Reservations"

Variation #1:
1.1 Start at Step 5
1.2 Customer Selects "Review Seating Assignments"
1.3 System executes "Display Seating Chart" for first leg of flight

Display Seating Chart
1. System displays current seating chart for selected flight, highlighting available seats and current assignments for passengers booked on this reservation.
2. System offers options to:
       "Change Seats"
       "View next flight" (if such flight exists)
       "View previous flight" (if such flight exists)
       "Done"
3. Customer selects "Change Seats"
4. System executes "Choose Individual Seats"

Variation #1:
1.1 Start at Step 3
1.2 Customer selects "View next flight"
1.3 System initiates "Display Seating Chart" for next flight of leg

Variation #2:
2.1 Start at Step 3
2.2 Customer selects "View previous flight"
2.3 System initiates "Display Seating Chart" for previous flight of leg

Variation #3:
3.1 Start at Step 3
3.2 Customer selects "Done"
3.3 System returns to Step 2 of "Review Reservation Details"

Choose Individual Seats
1. Customer identifies a passenger from among the reservation's travelers
2. Customer identifies an available seat
3. System reassigns that passenger to that seat.
4. System asks if done
5. Customer indicates "done"
6. System returns to Step 2 of "Display Seating Chart"

Variation #1:
1.1 Start at Step 5
1.2 Customer indicates that he is not done
1.3 System returns to Step 1 of "Choose Individual Seats"

Cancel Reservation
1. Customer selects "Cancel Reservation" at Step 5 of "Modify/Cancel Existing Reservations
2. System cancels entire reservation 3. System returns to Step 3 of "Modify/Cancel Existing Reservations"

Main Administrator Menu
1. Administrator executes "Login as Customer" using administrator credentials
2. System gives choice between
      "Add New Flight"
      "View Existing Flights"
      "View Passenger List"
      "Export Database"
      "Import Database"
      "Logout"

Add Flight to System
1. Administrator executes "Main Administrator Menu"
2. Administrator selects "Add New Flight"
3. Administrator provides new flight number
    Administrator indicates origin/destionation
    Administrator indicates number of rows on aircraft
    Administrator indicates row configuration
4. System returns to Step 2 of "Main Administrator Menu"

View Existing Flights
1. Administrator executes "Main Administrator Menu"
2. Administrator selects "View Existing Flights"
3. System display code/origin/destination for all existing flights
4. System returns to Step 2 of "Main Administrator Menu"

View Passenger List
1. Administrator executes "Main Administrator Menu"
2. Administrator selects "View Passenger List"
3. Administrator provides flight number
4. System displays passenger list for that flight
5. System returns to Step 2 of "Main Administrator Menu"

Export Database
1. Administrator executes "Main Administrator Menu"
2. Administrator selects "Export Database"
3. Administrator provides filename for exported database
4. System writes out all data to the file
5. System returns to Step 2 of "Main Administrator Menu"

Import Database
1. Administrator executes "Main Administrator Menu"
2. Administrator selects "Import Database"
3. Administrator provides filename for imported database
4. System reads database into the system (discarding any previous information)
5. System returns to Step 2 of "Main Administrator Menu"


Artifacts to Submit

Please submit the following artifacts of your design:


Michael Goldwasser
CSCI 290, Fall 2008
Last modified: Friday, 21 November 2008
Assignments | Class Photo | Course Home | Documentation | Schedule & Lecture Notes | Submit