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 04

Airline Reservation System

Contents:


Overview

Topic: Airline Reservation System
Related Reading: review asgn01
Due: Wednesday, 5 November 2008, 11:59pm

This assignment is a followup to the earlier ne in which teams proposed designs for an airline reservatino system. At this point, I am standardizing a new design for the system and having teams implement the new design. For this particular assignment, the goal is to focus on the implementation of the system back-end (we'll revisit the user-interface in a later assignment).


Collaboration Policy

For this assignment, you are allowed to work in groups of three. I presume that you will work with the same group that you did for the first assignment (but please feel free to speak with me if there is reason for a change).

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


Sharing Projects on turing

This project will require coordination of your team and the sharing of files. If working on turing, please note that individual home directories are not accessible by other students by default. However, it is possible to create a "shared" directory as outlined on our department webpage.

After creating a shared directory and changing everyone's default umask, it should be possible to create an Eclipse workspace within that share, so that all files are readable and writable within the team. One warning: while Eclipse is robust, it is not designed to support simultaneous editing of files by multiple users. That is, if you and a teamate are both working on the project in the single shared directory, there may be unexpected consequences. I suspect that it will do okay as long as you are sure to be editing different source files, but there is no guarantee.


A New Design

Based on the experience of the original assignment, I have created a new design for the system that all groups should use. The design is outlined in three forms:

Note: You are certainly welcome to add additional private details to your design, but you are not to modify any existing aspects of our design without express advanced approval. If you feel there is good reason for a change of the design, please provide a written proposal for the change, details the advantages of the new design versus the existing design.


Your Task

For this assignment, you are to provide a full implementation of the back-end components of our design (i.e., AirlineSystem, User, Administrator, Customer, Flight, Flight.Ticket, Reservation, ProvisionalReservation).

You are also to provide a driver named BackendTester that has a main routine that tests the band-end system. Minimally, your test should produce a system with an administrator, at least two users, and at least 3 flights (each with a different seating configuration).

There should be multiple reservations in the system and at least one failed attempt to purchase a reservation for a flight that does not have sufficient seating available.

You must also demonstate the ability to export your system to a file and then to subsequently import the system from that file.


Hints

Export/Import

Read the chapter on Serialization in our book (Ch. 7.5).


Artifacts to Submit

Please submit a single "jar" file that contains all relevant code for your project. If using Eclipse, you can export your entire project to a Jar file through the "File/Export" menu option. If working on the command line, do "man jar" for more information.


Michael Goldwasser
CSCI 290, Fall 2008
Last modified: Tuesday, 14 October 2008
Assignments | Class Photo | Course Home | Documentation | Schedule & Lecture Notes | Submit