Software design document

Published on December 2016 | Categories: Documents | Downloads: 31 | Comments: 0 | Views: 197
of 17
Download PDF   Embed   Report

Comments

Content

Purdue University Calumet
CS416: Software Engineering

Software Design Document
TravelSoft, INC Team:
Jason Adler
Mustafa Jassim Aloqayli
Jeremiah Eikenberg
Christopher Nelson
Raymond Smith
Bradley Van Cleave

Software Architect
Testing Engineer
Requirements Engineer
Software Architect
Integration Engineer
Project Manager

Author: Jason Adler

October 31, 2013

Revision History
Version

Member

Comments

Date

1.0.0

Jason Adler

Created first draft

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

Updated section 3.3

10/31/13

1.2.1

Jason Adler

Updated section 3.3
and resized images

10/31/13

2

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

4

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.

1.3 Definitions, Acronyms, and Abbreviations
ARS—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.1 Module Decomposition (Object Model)
The ARS is divided into several service modules that are placed in a tiered structure
depending on the level of service they provide. See ServiceFlowAchitecture.png for more
details.
All packages are prefixed with edu.purduecal.cs416.travelsoft. Data objects and service
interfaces are located in the sub-package: framework. Each implementation of a service is
located in a sub-package named after the service it is implementing. For example, a class called
CustomerFlightService would be located in the package:
“edu.purduecal.cs416.travelsoft.FlightService”.
5

3.1.1 Framework Package
This package (edu.purduecal.cs416.travelsoft.framework) consists of all data
objects and service interfaces.
3.1.2 FlightService Package
This package (edu.purduecal.cs416.travelsoft.FlightService) contains all
implementations of FlightServiceInterface.
3.1.3 ReportService Package
This package (edu.purduecal.cs416.travelsoft.ReportService) contains all
implementations of ReportServiceInterface.
3.1.4 AccountService Package
This package (edu.purduecal.cs416.travelsoft.AccountService) contains all
implementations of AccountServiceInterface.
3.1.5 ReservationService Package
This package (edu.purduecal.cs416.travelsoft.ReservationService) contains all
implementations of ReservationServiceInterface.
3.1.6 PaymentService Package
This package (edu.purduecal.cs416.travelsoft.PaymentService) contains all
implementations of PaymentServiceInterface.

3.2 Concurrent Process Decomposition
-intentionally left blank

3.3 Data Decomposition
The database will consist of seven tables: Account, PhoneNumber, Address, CreditCard,
Flight, Reservation, and Payment.
3.3.1 Account


The Account table will store all user account information.

3.3.2 PhoneNumber
6



The PhoneNumber table will store all users' phone numbers.

3.3.3 Address


The Address table will store all users' addresses.

3.3.4 CreditCard


The CreditCard table will store all saved credit card information.

3.3.5 Flight


The Flight table will store all available flights.

3.3.6 Reservation


The Reservation table will store all reservations placed.

3.3.7 Payment


The Payment Table will store all payments made.

3.4 State Model Decomposition
See section 4.4 of this document.

3.5 Use Case Model Decomposition
See Use Case document and Use Case sequence diagrams.

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.

4.2 Interprocess Dependencies
-intentionally left blank

7

4.3 Data Dependencies
The data structures flowing among the packages are defined by the classes. See the class
diagrams and Section 6 of this document for more information.

4.4 State Dependencies
See state transition diagrams.

4.5 Layer Dependencies
Layer dependencies between classes consist of a service provider which provides the
class with the appropriate implementations of the services below it. See
ServiceFlowArchitecture.png and the service provider diagrams for 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 Module Interfaces
This section describes the interfaces for the services of the ARS.
5.1.1 FlightServiceInterface
The FlightServiceInterface is used, depending on the implementation, to look up,
add, or remove flights from the database using the database service. The
FlightServiceInterface consists of the following methods:
addFlight(Flight)
removeFlight(Flight)
Flight getFlight(String)
List<Flight> getFlights(Location, Date)
Further details can be found in FlightServiceInterface.png
5.1.2 ReportServiceInterface
-not designed yet
5.1.3 AccountServiceInterface
-not designed yet
8

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

5.2 Process Interfaces
-intentionally left blank

6. Detailed Design
9

6.1 Services
6.1.1 Flight Service

6.1.2 Report Service
-not designed yet
6.1.3 Account Service
-not designed yet
6.1.4 Reservation Service

10

6.1.5 Payment Service

11

12

6.2 Data Objects
A list of all data objects created for the ARS and their diagrams are presented here.
6.2.1 Account
This data object contains the name, ID, and email of the user.

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 customer’s 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

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close