To provide a detailed description of the key issues of the system for its future
maintenance. It gives the reader an overview of the system and describes the functionality of
Point of contacts
The airline reservation system is an open-source software. No organization has any copy
right over this system.
Point of contacts:
1. Chris Lewin
2. Paul Jackson
3. Anne Morley
4. Meng Zhao
5. Denish Gandhi
 The project can be found at: http://code.google.com/p/fmp-aviation/
 A copy of the code can be found directly at:
Operating System : Microsoft Windows XP/Vista/7
Hard Disk : 512 MB
Memory : 128 MB
The system was built in the Microsoft Visual C++ 2010 Express. The BOOST test libraries
were used to write the test units during the early stages of the software development.
The fully functional system contains two separate sub-systems. The first is the
reservation system, which contains the main functionality of the program. The second sub-
system is the unit test system, which was written during the early stages of the coding to test
the code for errors.
The airline reservation system has different user levels; normal travel agent staff and
administrative staff. Both users will have the functionality to search for flight details, search
for customer details, make a reservation on a flight and cancel a reservation. Administrative
users have some additional functionality. They can add and remove new flights, new
customers and new users.
The system is a stand-alone system. It can be installed and used on any machine, with
or without an internet connection. The system is designed in C++ and is a simple DOS based
system. Being a DOS based system, it does not have any command line operations. To choose
an operation, the user is asked to select a function from a list of choices by entering an
appropriate character. The user can use the keyboard to move through the program and
manipulate the system data.
The system works on XML based databases, by using XML documents as to store data.
There are four separate XML documents to store different types of data: flight details,
customer details, user details and reservation details.
Structure of the system
The system has two user levels:
1. Regular travel agent staff
2. Administrative staff
The functionality which is shared between both user levels are:
1. Add a customer
2. Make a flight inquiry
3. Make a customer inquiry
4. Add a reservation
5. Cancel a reservation
The additional administrative functions are:
1. Add a user
2. Remove a user
3. Add a flight
4. Remove a flight
Implementation of the system
The system has several classes for the different operations and data abstractions. In the
table below, each module represents its respective class. Each class is implemented using
separate header and CPP files. The header file contains the declaration of the variables and the
procedures involved with that class. The CPP file contains the implementation of the procedures
declared in the header file.
The table below shows us a summary of all the classes used in the Airline Reservation
Module Class files Description
User interface userinterface.h Implements the user interface for different
userinterface.cpp operations, such as to print the screen, to
accept input from the user and the calling of
procedures that alter the databases.
User operations user.h Authenticates the user.
Customer customer.h Implements operations on customer details. It
operations customer.cpp contains the procedure to create the unique
Airport airport.h Implements the procedure to validate source
operations airport.cpp and destination airport names.
Database database.h Implements different operations on the
operations database.cpp database. It contains procedures to retrieve
data from a database and to alter a database.
Date date.h Maintains a standard date format for the
Flight operations flight.h Maintains a standard flight format. It contains
flight.cpp procedures to alter and retrieve flight details.
Flight number flightnumber.h Implements the procedures to validate the
flightnumber.cpp flight number. It also maintains the standard
flight number format for the system.
Reservation reservation.h Represents the reservation for a customer on a
operations reservation.cpp flight.
Reservation reservationsystem.h Performs the database operations and controls
System reservationsystem.cpp the file i/o.
Time time_24.h Maintain the standard time format for the
Utility operations util.h Contains utility procedures to typecast the
basic data types.
The table below gives a complete summary of the test system.
The test system contains code to test the underlying procedures of each class. There is a
test file for each class, which tests the error checking in each procedure from that class. These
files should test both valid and invalid data and should return appropriate error messages for
those tests which fail. The test files are listed below.
Module Class files
The database is implemented in XML files. The data is stored in the nodes of these XML
files. The table below shows a list of the database files.
Database XML file Field Names Description
User data userSerialization.xml 1. userName Stores the user login
2. hashedPassword name, encoded
3. adminRights password, and
whether the user has
admin rights or not.
Flight data flightSerialization.xml 1. m_flightNumber Stores the flight
2. m_time details of a flight in
3. m_date the format: flight
4. m_source number, flight time,
5. m_destination flight date, source,
6. m_maxStandardSeats destination,
7. m_maxFirstSeats maximum seats,
8. m_ID maximum first-class
seats, and ID of the
Customer customerSerialization.xml 1. m_title Stores the customer’s
data 2. m_firstName details in the form:
3. m_lastName title, first name, last
4. m_address name, address,
5. m_passportNumber passport number,
6. m_teleNumber telephone number,
7. m_ID and customer ID.
Reservation reservationSerialization.xml 1. m_flighID Stores the reservation
data 2. m_customerID data in the form:
3. m_reservatinoStatus flight ID, customer ID,