Professional Documents
Culture Documents
Software Architect
Testing Engineer
Requirements Engineer
Software Architect
Integration Engineer
Project Manager
Revision History
Version
Member
Comments
Date
1.0.0
Jason Adler
10/28/13
1.1.0
Jason Adler
Made changes
primarily in section
3.3 and 6
10/30/13
1.2.0
Jason Adler
10/31/13
1.2.1
Jason Adler
10/31/13
1. Introduction............................................................................................................................................5
1.1 Purpose...........................................................................................................................................5
1.2 Scope..............................................................................................................................................5
1.3 Definitions, Acronyms, and Abbreviations....................................................................................5
2. References..............................................................................................................................................5
3. Decomposition Description....................................................................................................................5
3.1 Module Decomposition (Object Model)........................................................................................5
3.1.1 Framework Package...............................................................................................................6
3.1.2 FlightService Package...........................................................................................................6
3.1.3 ReportService Package..........................................................................................................6
3.1.4 AccountService Package........................................................................................................6
3.1.5 ReservationService Package..................................................................................................6
3.1.6 PaymentService Package.......................................................................................................6
3.2 Concurrent Process Decomposition...............................................................................................6
3.3 Data Decomposition.......................................................................................................................6
3.3.1 Account..................................................................................................................................6
3.3.2 PhoneNumber........................................................................................................................6
3.3.3 Address..................................................................................................................................7
3.3.4 CreditCard..............................................................................................................................7
3.3.5 Flight......................................................................................................................................7
3.3.6 Reservation............................................................................................................................7
3.3.7 Payment.................................................................................................................................7
3.4 State Model Decomposition...........................................................................................................7
3.5 Use Case Model Decomposition....................................................................................................7
4. Dependency Description........................................................................................................................7
4.1 Intermodule Dependencies (Class Model).....................................................................................7
4.2 Interprocess Dependencies.............................................................................................................7
4.3 Data Dependencies.........................................................................................................................8
4.4 State Dependencies.........................................................................................................................8
4.5 Layer Dependencies.......................................................................................................................8
5. Interface Description..............................................................................................................................8
5.1 Module Interfaces...........................................................................................................................8
5.1.1 FlightServiceInterface............................................................................................................8
5.1.2 ReportServiceInterface..........................................................................................................8
5.1.3 AccountServiceInterface........................................................................................................8
5.1.4 ReservationServiceInterface..................................................................................................9
5.1.5 PaymentServiceInterface.......................................................................................................9
5.1.6 DatabaseServiceInterface......................................................................................................9
5.2 Process Interfaces...........................................................................................................................9
6. Detailed Design......................................................................................................................................9
6.1 Services........................................................................................................................................10
6.2 Data Objects.................................................................................................................................13
6.2.1 Account................................................................................................................................13
6.2.2 Customer..............................................................................................................................13
6.2.3 Administrator.......................................................................................................................13
6.2.4 ServiceAgent........................................................................................................................13
6.2.5 Profile..................................................................................................................................14
3
6.2.6 CreditCard............................................................................................................................14
6.2.7 ReportPermissions...............................................................................................................14
6.2.8 Address................................................................................................................................15
6.2.9 Flight....................................................................................................................................15
6.2.10 Location.............................................................................................................................15
6.2.11 DateLocale.........................................................................................................................16
6.2.12 FlightNumber.....................................................................................................................16
6.2.13 Payment.............................................................................................................................17
6.2.14 PaymentStatus...................................................................................................................17
6.2.15 Reservation........................................................................................................................17
6.2.16 ReservationState................................................................................................................18
1. Introduction
1.1 Purpose
This document describes the design of the Airline Reservation System. It is intended to
be used by developers, engineers, and customers to gain insight on the software design of the
ARS.
1.2 Scope
This design describes the structure and classes of the Airline Reservation System.
2. References
ServiceFlowAchitecture.png
ServiceProvider diagrams
Use Case document
Use Case sequence diagrams
State Transition diagrams
FlightServiceInterface.png
ReservationServices.jpg
PaymentServiceInterface.jpg
DatabaseServiceInterface.png
3. Decomposition Description
The ARS is described using two models: use case and class. The ARS is designed using a clientserver architecture and is divided into modules and tiers accordingly.
3.3.2 PhoneNumber
6
3.3.3 Address
3.3.4 CreditCard
The CreditCard table will store all saved credit card information.
3.3.5 Flight
3.3.6 Reservation
3.3.7 Payment
4. Dependency Description
4.1 Intermodule Dependencies (Class Model)
Users are directly dependent on the all services other than the database service. Services,
excluding the database service, are all dependent on the database service. Services needed are
provided via a service provider which provides the correct implementations of the services. See
ServiceFlowArchitecture.png for more details.
5. Interface Description
This section describes the interfaces for ARS. The specifics of each interface are found in their
respective class diagrams and are detailed in Section 6.
5.1.4 ReservationServiceInterface
The ReservationServiceInterface is used to place, get, or cancel reservations. All
acccess to the database is done through the database service.
Methods of the ReservationServiceInterface are the following:
Reservation getReservation(String)
List<Reservation> getReservations(String)
List<Reservation> getReservations(String, Date, Date)
boolean commitReservation(Reservation)
boolean cancelReservation(String)
More details can be found in ReservationServices.jpg
5.1.5 PaymentServiceInterface
The PaymentServiceInterface is used to process and cancel payments, and to add
or remove payment types. All access to the database is done through the database
service.The PaymentServiceInterface has the following methods:
boolean processPayment(Payment)
boolean cancelPayment(Payment)
boolean addPaymentType(CreditCard)
boolean removePaymentType(CreditCard)
More details can be found in PaymentServiceInterface.jpg
5.1.6 DatabaseServiceInterface
The DatabaseServiceInterface is directly responsible for accessing the database.
All other services use this service when accessing the database. The
DatabaseServiceInterface has the following methods:
boolean create(Object)
List<Object> retrieve(Map<String, String>)
boolean update(Object)
boolean deactivate(Object)
Further details can be found in DatabaseServiceInterface.png
6. Detailed Design
9
6.1 Services
6.1.1 Flight Service
10
11
12
6.2.2 Customer
This data object extends Account, containing two additional objects: Profile and
CreditCard.
6.2.3 Administrator
This data object extends Account and is used to represent an administrator.
6.2.4 ServiceAgent
This data object extends Account and contains two additional objects: Profile and
ReportPermissions.
13
6.2.5 Profile
This data object contains an ID, address, and phone number.
6.2.6 CreditCard
This data object contains the customers ID, cardholder name, card number,
expiration, and CSV.
6.2.7 ReportPermissions
This enumeration contains three values: Flights, Customers, and Both.
6.2.8 Address
This data object contains a street, city, state, and zip code.
14
6.2.9 Flight
This data object contains the destination, departure, number of first class seats,
number of coach seats, and a flight number for a flight.
6.2.10 Location
This enumeration contains values for all flight locations.
15
6.2.11 DateLocale
This data object stores a location and a date.
6.2.12 FlightNumber
This data object stores a string that is used to uniquely identify flights.
6.2.13 Payment
This data object contains a reservation ID, customer ID, price, credit card, and
payment status.
6.2.14 PaymentStatus
This enumeration contains four values: Unprocessed, Processing, Successful, and
Declined.
16
6.2.15 Reservation
This data object contains the ID of the reservation, flight number, account
number, state, and confirmation number.
6.2.16 ReservationState
This enumeration contains four values: Initiated, Held, PendingPayment, and
Confirmed.
17