+ All Categories
Home > Documents > Software design document

Software design document

Date post: 18-May-2017
Category:
Upload: amant
View: 226 times
Download: 0 times
Share this document with a friend
17
Purdue University Calumet CS416: Software Engineering TravelSoft, INC Team: Jason Adler Software Architect Mustafa Jassim Aloqayli Testing Engineer Jeremiah Eikenberg Requirements Engineer Christopher Nelson Software Architect Raymond Smith Integration Engineer Bradley Van Cleave Project Manager Author: Jason Adler October 31, 2013 Software Design Document
Transcript

Purdue University Calumet

CS416: Software Engineering

TravelSoft, INC Team:Jason Adler Software ArchitectMustafa Jassim Aloqayli Testing EngineerJeremiah Eikenberg Requirements EngineerChristopher Nelson Software ArchitectRaymond Smith Integration EngineerBradley Van Cleave Project Manager

Author: Jason Adler

October 31, 2013

Software Design Document

Revision History

Version Member Comments Date

1.0.0 Jason Adler Created first draft 10/28/13

1.1.0 Jason Adler Made changesprimarily 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.3and 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..............................................................................................................................................53. 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...........................................................................................................................96. 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.pngServiceProvider diagramsUse Case documentUse Case sequence diagramsState Transition diagramsFlightServiceInterface.pngReservationServices.jpgPaymentServiceInterface.jpgDatabaseServiceInterface.png

3. Decomposition Description

The ARS is described using two models: use case and class. The ARS is designed using a client-server 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 classdiagrams 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.png5.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 andReportPermissions.

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, andDeclined.

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, andConfirmed.

17


Recommended