SlideShare a Scribd company logo
1 of 35
2014
Stephen Gubenia
Developed for CMIS 330 Dr. Almarzooq
11/16/2014
Software Design Description
(SDD) for John and Joan Bed &
Breakfast
i
Table of Contents
1. Introduction ................................................................................................................................ 1
1.1 Purpose.................................................................................................................................. 1
1.2 Scope...................................................................................................................................... 1
1.3 Definitions............................................................................................................................. 1
2. References ................................................................................................................................... 2
3. Decomposition Description ........................................................................................................ 3
3.1 Module Decomposition......................................................................................................... 4
3.1.1 User Interface.................................................................................................................. 5
3.1.2 Services............................................................................................................................ 6
3.2 Concurrent Process Decomposition...................................................................................... 7
3.2.1 ReservationQuery Entity................................................................................................. 7
3.3 Data Decomposition.............................................................................................................. 7
3.3.1 Guest Entity..................................................................................................................... 7
3.3.2 Room Entity..................................................................................................................... 8
3.3.3 Reservation Entity........................................................................................................... 8
3.3.4 Payment Entity................................................................................................................ 8
3.3.5 Finances Entity................................................................................................................ 8
4. Dependency Description......................................................................................................... 9
4.1 Inter-module Dependencies................................................................................................ 10
4.2 Inter-process Dependencies ................................................................................................ 11
4.3 Data Dependencies.............................................................................................................. 12
5. Interface Description................................................................................................................. 13
5.1 User Interface Description................................................................................................... 13
5.1 CalendarQuery................................................................................................................. 14
5.2 RoomReservation............................................................................................................. 15
5.3 MakePayment .................................................................................................................. 16
5.4 GuestReservation............................................................................................................. 17
5.5 GuestInformation............................................................................................................. 18
5.6 Service Interface Description............................................................................................... 19
6. Detailed Design......................................................................................................................... 20
ii
6.1 Module Detailed Design...................................................................................................... 20
6.1.1 RoomReservation Entity............................................................................................... 20
6.1.2 CalendarQuery Entity................................................................................................... 20
6.1.3 MakePayment Entity..................................................................................................... 21
6.1.4 GuestReservation Entity................................................................................................ 21
6.1.5 TakeGuestInformation Entity....................................................................................... 23
6.1.6 ReservationQuery Entity............................................................................................... 23
6.2 Data Detailed Design........................................................................................................... 24
6.2.1 Guest Entity................................................................................................................... 24
6.2.2 Payment Entity.............................................................................................................. 26
6.2.3 Reservation Entity......................................................................................................... 28
6.2.4 Room Entity................................................................................................................... 30
6.2.5 Finances Entity.............................................................................................................. 31
1
1. Introduction
1.1 Purpose
The purpose of this document is to outline requirements that define a point of sales and
financial managementsystem used in tracking reservations, payments, profits, and expenses for
a small bed & breakfast (B&B) establishment. This document is developed for use during the
design and implementation phases of the software development.
1.2 Scope
The software will be named Bed & Breakfast Reservation and Management System, or BBRMS.
The BBRMS is designed to function as a point of sales and financial management system for a
small bed & breakfast establishment. The scope of the application and its intended functionality
should be kept small and specific to the problem set. The software should simplify the
workflow of the establishment by using a calendar graphical user interface (GUI) to view
vacancies and initiate the reservation process. GUIs should be used for all application process
to simplify data entry. The system should also automate the process of determining if a
reservation guarantee is no longer valid and return the room to a vacant status.
1.3 Definitions
Term Definition
Concurrent Process A process that runs continuously
Domain Object Object that holds information for a specific function
Expense Cost occurred by the business
Guarantee A contract between the owners of the B&B and the potential guest
Guest Person(s) who occupy a room, or who have previously occupied or will
occupy a room
Hotkey A key on the keyboard that performs a specific programmed function
Income All money collected by the business
Payment Transfer of money between guest an establishment
Price of Reservation Calculated by multiplying rate by number of nights in the reservation
Profit Money left after subtracting all expenses from income
Rate The cost of a specific room for one night
Reservation The assignment of a room to a guest for a specified date range
Service A function related to the conduct of business
Tax Calculated by multiplying Price of Reservation by the local tax rate
Total Price Calculated by adding tax to Price of Reservation
User Interface Any element that allows the user to interact with the system
Vacancy The availability of a room
Workflow A sequence of steps necessary to perform a task
2
2. References
References for this document include the following:
 IEEE Std. 1016-1998: IEEE RecommendedPractice for Software Design Descriptions
 IEEE Std 610.12-1990, IEEE StandardGlossary of Software Engineering Terminology
 IEEE Std 730-1998, IEEE Standard for Software Quality Assurance Plans.
 IEEE Std 828-1998, IEEE Standard for Software Configuration Management Plans.
 IEEE Std 830-1998, IEEE RecommendedPractice for Software Requirements
Specifications
3
3. Decomposition Description
The complete relationship between all entities of the BBRMS is represented in the Figure 1
entity relationship diagram (ERD). The ERD shows the relationship between the domain
objects (blue), their services (purple), and the concurrent process used to remove reservations
with a past-due guarantee date.
+setguestID()
+getguestID()
+setlastName()
+getlastName()
+setfirstName()
+getfirstName()
+setaddress()
+getaddres()
+setphoneNumber()
+getphoneNumber()
+seteMail()
+geteMail()
+setcreditCardNumber()
+getcreditCardNumber()
+setcreditCardExpiration()
+getcreditCardExpiration()
+setcreditCardCode()
+getcreditCardCode()
-guestID
-lastName
-firstName
-address
-phoneNumber
-eMail
-creditCardNumber
-creditCardExpiration
-creditCardCode
Guest
+setreservationID()
+getreservationID()
+setstartDate()
+getstartDate()
+setendDate()
+getendDate()
+settotalNights()
+gettotalNights()
+setrate()
+getrate()
+setprice()
+getprice()
+settax()
+gettax()
+settotalPrice()
+gettotalPrice()
+toggleGuaranteed()
+isGuaranteed()
+setguaranteeDate()
+getguaranteeDate()
+setguestID()
+getguestID()
+setroomID()
+getroomID()
+setpaymentID()
+getpaymentID()
-reservationID
-startDate
-endDate
-totalNights
-rate
-price
-tax
-totalPrice
-isGuaranteed
-guaranteeDate
-guestID
-roomID
-paymentID
Reservation
+setroomID()
+getroomID()
+togglevacancy()
+isVacant()
+setroomNumber()
+getroomNumber()
-roomID
-isVacant
-roomNumber
Room
+setpaymentID()
+getpaymentID()
+setamountPaid()
+getamountPaid()
+setamountDue()
+getamountDue()
+setpaymentDate()
+getpaymentDate()
+isPaid()
+setguestID()
+getguestID()
-paymentID
-amountPaid
-amountDue
-paymentDate
-isPaid
-guestID
Payment
+setincome()
+getincome()
+setexpense()
+getexpense()
+setexpenseType()
+getexpenseType()
+expenseAccount()
+setexpenseTotal()
+getexpenseTotal()
+setprofit()
+getprofit()
-assets
-income
-expense
-expenseType
-expenseTotal
-profits
Finances
*1
+ReservationfoundExpiredRreservation()
+scan()()
+stop()()
-Reservation[]reservation
ReservationQuery
*
1
+Room getRoom()
+deleteRoom()
+createRoom()
-Room[]rooms
RoomReservation
+makePayment()
+assignGuest()
-Payment[]payments
-Finance[]finaces
MakePayment
+Room getRoom()
+deleteRoom()
+createRoom()
-Reservatio[]reservations
-RoomReservation roomreservation
-Guest[]guests
-MakePayment makepayment
-TakeGuestInformation guestinformation
GuestReservation
+Reservation[]checkDates()
+assignReservation()
-GuestReservation guestreservation
CalendarQuery
+takeGuestInfo()
-Guest[]guests
TakeGuestInformation
* 1
1
1
*
1
*
1
*
1
*
1
1
1
1
1
1
Figure 1. Entity Relationship Diagram
This section outlines the entities and their relationships, which are divided into modules,
continuous processes, and data.
4
3.1 Module Decomposition
The BBRMS is comprised of four different components that provide specific functionality in the
system. Figure 2 shows a high level architectural context diagram (ACD) of the system. The
overall system is composed of four primary functions:
1. User Interface
2. Services
3. Domain Objects
4. Database
The following representation and design specification will cover numbers 1-3. The database
persistence is covered in the description of each service. A database entity is included in the
diagram as a generic reference which summarizes persistence activities.
The architectural context diagram illustrates the human-computer interface (HCI) for users of
the BBRMS through the user interface, and interaction between domain objects and the user
interface through the service layer. This design enables data to be abstracted from the views in
the services component, through functional business logic, reducing system complexity.
Services
1.1 Room
Reservation
1.2
Calendar
Query
1.3 Make
Payment 1.4 Guest
Reservation
Store Data
2.0 User
Interface
2.1 Room
Reservation
2.2 Make
Payement
2.3 Guest
Reservation
2.4 Guest
Information
2.5 Calendar
Query
3.0 Domain
Objects
3.1 Guest
1.5 Take
Guest
Information
1.6
Reservation
Query
3.2 Finances
3.3 Payment
3.4 Room
3.5 Reservation
Out: RoomNumber, In: isVacant
Out: startDate, endDate, in: Room In: Payment In: Reservation
<<delete>>
In: Guest
<<manages>>
<<store>>
<<retrieve>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>> <<interacts>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>> <<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
Figure 2. High Level Architectural Context Diagram
5
3.1.1 User Interface
This module is for end users of the system at the bed and breakfast. The users are able to
interact with the system exclusively through this interface. The only external interface needed to
access to this user interface is a keyboard and mouse with a single-user view set.
Services
User Interface
Calendar Query
Room
Reservation
Make
Payement
Guest
Reservation
Guest
Information
Domain ObjectsStore Data
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>> <<interacts>>
<<interacts>>
<<interacts>>
<<manages>><<stores>
<<retrieves>>
Figure 3. Architectural Context Diagram – User Interface
3.1.1.1 Calendar Query
This object displays a calendar layout with information aboutroom vacancies reservations. The
design for the calendar lookup is represented in section 5.1.
3.1.1.2 Room Reservation
This object displays information about a room, and a data entry GUI to reserve a room. The
design for the room reservation is represented in section 5.2.
3.1.1.3 Make Payment
This object displays information about payments related to a specific guest. The design for
making a payment is represented in section 5.3.
3.1.1.4 Guest Reservation
This object displays information about a guest’s reservation for a specific room in a specified
date range. The design for the guest reservation is represented in section 5.4.
3.1.1.5 Take Guest Information
This object displays a data entry GUI to enter guest contact and payment information. If the
guest has been a guest previously, a database query can be performed using the guest’s name
and/or phone number. If the guest’s information is found during the query, the remaining
6
fields in the GUI will be auto-filled by the system. The design for take guest information is
represented in section 5.5.
3.1.2 Services
This module contains the business logic for the processes that the BBRMS needs to conduct in
which domain objects are involved, such as looking up a reservation date or saving a payment.
The service module provides output to the user interface, and manages the domain objects
through input from the user interface. The service module also manages persistence of the
domain objects to the database.
Services
1.1 Room
Reservation
1.2
Calendar
Query
1.3 Make
Payment 1.4 Guest
Reservation
Store Data
2.0 User
Interface
3.0 Domain
Objects
1.5 Take
Guest
Information
1.6
Reservation
Query
Out: RoomNumber, In: isVacant
Out: startDate, endDate, in: Room In: Payment In: Reservation
<<delete>>
In: Guest
<<manages>>
<<store>>
<<retrieve>>
<<interacts>>
<<interacts>>
Figure 4. Architectural Context Diagram – Services
3.1.2.1 RoomReservation Entity
This service entity handles the reservation of rooms function, and manages the Room object.
3.1.2.2 CalendarQuery Entity
This service entity handles the function to search for rooms in a date range, and return a room
that is vacant.
3.1.1.3 MakePayment Entity
This service entity component handles the business logic for receiving a payment, and adjusting
a Finances balance, as well as association to a room reservation and guest.
3.1.1.4 GuestReservation Entity
This service entity assigns guest information to a vacant room, and holds other data, such as
guarantee dates and associated payments.
7
3.1.1.5 TakeGuestInformation Entity
This service entity records guest information, such as name, contact information, and credit
card information.
3.2 Concurrent Process Decomposition
This module describes any services that act independent of the user, including processes that
create, manage, update, or delete any domain object within the system. Figure 5 depicts an
ACD representing all Domain Objects.
Services
Store Data
2.0 User
Interface
3.0 Domain
Objects
3.1 Guest
3.2 Finances
3.3 Payment
3.4 Room
3.5 Reservation
<<manages>>
<<store>>
<<retrieve>>
<<interacts>>
<<interacts>>
<<create>>
<<delete>>
<<edit>> <<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
Figure 5. Architectural Context Diagram – Domain Objects
3.2.1 ReservationQuery Entity
This service entity scans all Reservation objects searching for those with a guarantee date that
equals the current date. Any reservation that meets this criterion is deleted and the room status
is changed to vacant.
3.3 Data Decomposition
This module covers all entities that hold data about a specific function in the BBRMS system.
The term Domain Objects will be used to refer to these objects.
3.3.1 Guest Entity
This entity stores all information about a guest that has made a reservation. This information
includes data such as name, contact information, and credit card information.
8
3.3.2 Room Entity
This entity holds information related to an individual room in the establishment. This
information is used in relation to reservations.
3.3.3 Reservation Entity
This entity holds all information about an active reservation. This information includes data
such as start date, end date, guest information, guarantee date, and payment information. M
This entity is the hub between other domain objects within the BBRMS.
3.3.4 Payment Entity
This entity holds information about a payment that relates a guest to a specific room
reservation.
3.3.5 Finances Entity
This entity stores information about all payments made through the BBRMS.
9
4. Dependency Description
Service modules edit, save and delete domain objects directly through the database
module entries. The user interface module interacts with the service module. The
service module controls and manages the domain objects. The level 1 data flow
diagram (DFD) in Figure 6 illustrates these dependencies. These dependencies for
modules, services, and data are explained in more detail below.
Services
1.1 Room
Reservation
1.2
Calendar
Query
1.3 Make
Payment 1.4 Guest
Reservation
Store Data
2.0 User
Interface
2.1 Room
Reservation
2.2 Make
Payement
2.3 Guest
Reservation
2.4 Guest
Information
2.5 Calendar
Query
3.0 Domain
Objects
3.1 Guest
1.5 Take
Guest
Information
1.6
Reservation
Query
3.2 Finances
3.3 Payment
3.4 Room
3.5 Reservation
Out: RoomNumber, In: isVacant
Out: startDate, endDate, in: Room In: Payment In: Reservation
<<delete>>
In: Guest
<<manages>>
<<store>>
<<retrieve>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>>
<<interacts>> <<interacts>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>> <<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
<<create>>
<<delete>>
<<edit>>
Figure 6. Level 1 Data Flow Diagram
10
4.1 Inter-module Dependencies
There are 4 core modules for the BBRMS software. These include the user interface, services,
domain objects, and database.For the scope of this document, the database module is accessed
directly by the service modules as, and will not be described in the core modules description.
Figure 7 illustrates these dependencies, with the added interaction between the user and the
user interface.
Services
Store Data
2.0 User
Interface
3.0 Domain
Objects
<<manages>>
<<store>>
<<retrieve>>
<<interacts>>
<<interacts>>
Figure 7. Inter-module Dependency Diagram
1. The User Interface module is dependent on the service module. The user interface is
responsible for displaying information from the BBRMS to the user. This dependency
allows the business logic from the services module to be represented in the user
interface view. Additionally, the user is dependent on the user interface to interact with
the system.
2. The Services module is dependent on both the user interface module to display
information, as well as the domain objects module to store information. Because
business logic is represented in the service module, but information is stored in the
domain objects, this dependency is critical to represent the state of actions and
information within the system.
3. The Domain Objects module is dependent on the services module to process information
using business logic, as explained in dependency #2.
11
4.2 Inter-process Dependencies
There are six process dependencies in the BBRMS, which are represented in Figure 8. The
domain object in the inter-process dependency diagram is essential to describe the relationship
between the RoomReservation service and a Room domain object, and how these relate to the
ReservationQuery concurrent service.
+setroomID()
+getroomID()
+togglevacancy()
+isVacant()
+setroomNumber()
+getroomNumber()
-roomID
-isVacant
-roomNumber
Room
*1
+ReservationfoundExpiredRreservation()
+scan()()
+stop()()
-Reservation[]reservation
ReservationQuery
+getRoom()
+deleteRoom()
+createRoom()
-Room[]rooms
RoomReservation
+makePayment()
+assignGuest()
-Payment[]payments
-Finance[]finaces
MakePayment
+Room getRoom()
+deleteRoom()
+createRoom()
-Reservatio[]reservations
-RoomReservation roomreservation
-Guest[]guests
-MakePayment makepayment
-TakeGuestInformation guestinformation
GuestReservation
+Reservation[]checkDates()
+assignReservation()
-GuestReservation guestreservation
CalendarQuery
+takeGuestInfo()
-Guest[]guests
TakeGuestInformation
* 1
1
1
1
1
1
1
1
Figure 8. Inter-process Dependency Diagram
1. GuestReservation is dependent on several other services, which include:
a. RoomReservation – Defines the room information for a guest reservation.
b. CalendarQuery – This relationship is defined by the link between a date range,
and the corresponding guest reservation at the establishment.
c. TakeGuestInformation – This dependency drives the collection of information to
instantiate a Guest object, which corresponds to a reservation.
d. MakePayment – The relationship is defined as the payment by a guest that is
linked to a room reservation
2. The ReservationQuery process is weakly related to the RoomReservation service.
Because this process is a concurrent service, it scans reservations continuously and
removes any in which the guarantee date has been exceeded.
12
4.3 Data Dependencies
Data dependencies in the BBRMS are weakly linked through process dependencies to services.
This allows for the abstraction of business logic away from both the user interface module, and
the domain object model. Because of this, there is no direct relation between any of the domain
objects. Instead, the dependencies are shared by the services and process to assist in managing
business logic needs and abstraction between modules. The data dependency diagram is
displayed in Figure 9.
+setguestID()
+getguestID()
+setlastName()
+getlastName()
+setfirstName()
+getfirstName()
+setaddress()
+getaddres()
+setphoneNumber()
+getphoneNumber()
+seteMail()
+geteMail()
+setcreditCardNumber()
+getcreditCardNumber()
+setcreditCardExpiration()
+getcreditCardExpiration()
+setcreditCardCode()
+getcreditCardCode()
-guestID
-lastName
-firstName
-address
-phoneNumber
-eMail
-creditCardNumber
-creditCardExpiration
-creditCardCode
Guest
+setreservationID()
+getreservationID()
+setstartDate()
+getstartDate()
+setendDate()
+getendDate()
+settotalNights()
+gettotalNights()
+setrate()
+getrate()
+setprice()
+getprice()
+settax()
+gettax()
+settotalPrice()
+gettotalPrice()
+toggleGuaranteed()
+isGuaranteed()
+setguaranteeDate()
+getguaranteeDate()
+setguestID()
+getguestID()
+setroomID()
+getroomID()
+setpaymentID()
+getpaymentID()
-reservationID
-startDate
-endDate
-totalNights
-rate
-price
-tax
-totalPrice
-isGuaranteed
-guaranteeDate
-guestID
-roomID
-paymentID
Reservation
+setroomID()
+getroomID()
+togglevacancy()
+isVacant()
+setroomNumber()
+getroomNumber()
-roomID
-isVacant
-roomNumber
Room
+setpaymentID()
+getpaymentID()
+setamountPaid()
+getamountPaid()
+setamountDue()
+getamountDue()
+setpaymentDate()
+getpaymentDate()
+isPaid()
+setguestID()
+getguestID()
-paymentID
-amountPaid
-amountDue
-paymentDate
-isPaid
-guestID
Payment
+setincome()
+getincome()
+setexpense()
+getexpense()
+setexpenseType()
+getexpenseType()
+expenseAccount()
+setexpenseTotal()
+getexpenseTotal()
+setprofit()
+getprofit()
-assets
-income
-expense
-expenseType
-expenseTotal
-profits
Finances
*1
+ReservationfoundExpiredRreservation()
+scan()()
+stop()()
-Reservation[]reservation
ReservationQuery
*
1
+getRoom()
+deleteRoom()
+createRoom()
-Room[]rooms
RoomReservation
+makePayment()
+assignGuest()
-Payment[]payments
-Finance[]finaces
MakePayment
+Room getRoom()
+deleteRoom()
+createRoom()
-Reservatio[]reservations
-RoomReservation roomreservation
-Guest[]guests
-MakePayment makepayment
-TakeGuestInformation guestinformation
GuestReservation
+takeGuestInfo()
-Guest[]guests
TakeGuestInformation
* 1
*
1
*
1
*
1
*
1
Figure 9. Data Dependency Diagram
13
5. Interface Description
5.1 User Interface Description
The user interface allows the user to interact with the BBRMS system. It facilitates the user in
creating records, reservations, and associations that culminate in a successful business
transaction between a guest and the establishment. Figure 10 below illustrates the workflow
from a HCI perspective, and how a daily user of the BBRMS interacts with the system to create
a reservation for a guest.
Figure 10. User Interface Workflow
14
5.1 CalendarQuery
CalendarQuery is the primary interface for the user handling phone calls for reservations at bed
and breakfast. This screen provides three capabilities:
1. Calendar – This displays a calendar in month view, or in a specified date range.
2. Room Vacancy Status – Displays room vacancies for a given date.
3. Make Reservation – Takes the room information and date range to create a room
reservation.
The CalendarQuery user interface provides the user with the ability to start workflow while
communicating with a guest. The user of the BBRMS can start the process of guaranteeing a
room for a guest and creating a reservation by selecting a date range that the guest inquires
about and determining if an acceptable room is vacant within that range. The CalenderQuery
GUI is shown in Figure 11.
Figure 11. CalendarQuery GUI
15
5.2 RoomReservation
The RoomReservation GUI is used to update vacancy statuses of rooms within the bed &
breakfast establishment. This is a simple GUI which only gives information specific to the room
for a number and vacancy status. Two buttons are provided to save and delete the rooms based
on user choices. The RoomReservation GUI is shown in Figure 12.
Figure 12. RoomReservation GUI
16
5.3 MakePayment
The payment element of the user interface captures all elements of a guest’s payment for a
reservation. The total amount of the stay is entered, along with a current payment amount. The
guest list is displayed to associate the payment to the correct credit card provided by the guest
when their information was entered. The buttons allow the user to process the payment, or
cancel the transaction. The MakePayment GUI is shown in Figure 13.
Figure 13. MakePayment GUI
17
5.4 GuestReservation
The GuestReservation GUI allows the user to input information specific to a guest’s intended
stay at the bread & breakfast. This includes start and end dates, price per day, guaranteed
status and date, and options to input information related to the reservation.
The buttons at the bottom of the GUI, allow the user to make a payment associated with the
reservation, input guest information, and options to save and delete the reservation. The
GuestReservation GUI is shown in Figure 14.
Figure 14. Guest Reservation GUI
18
5.5 GuestInformation
In order to guarantee and/or reserve a room for a guest, the user must be able to record the
guest’s information. This GUI provides data entry fields for guest name, address, phone
number, and credit card to be used in all payment transactions. Buttons to either save guest
information or cancel the transaction are included. The GuestInformation GUI is shown in
Figure 15.
Figure 15. Guest Information GUI
19
5.6 Service Interface Description
Information about service interface (domain object, service, and concurrent service)
relationships is located in the ERD in section 3 (Decomposition Description). Detailed interface
descriptions and class models is located in in section 6.1 (Module Detailed Design) and section
6.2 (Data Detailed Design)
20
6. Detailed Design
6.1 Module Detailed Design
6.1.1 RoomReservation Entity
The RoomReservation entity is a service that manages the business logic for a collection of
Room domain objects. The class diagram for RoomReservation is displayed in Figure 16.
Three methods are present in this entity:
1. getRoom() – Returns the Room object for a given room number.
2. deleteRoom() – Deletes the Room object from the collection for a given room number.
3. createRoom() – Adds a Room object to the collection.
This entity has on attribute:
1. Room[] rooms – Represents a collection of Room objects.
+getRoom()
+deleteRoom()
+createRoom()
-Room[]rooms
RoomReservation
Figure 16. RoomReservation Class
6.1.2 CalendarQuery Entity
The CalendarQuery entity is a service containing a single object, GuestReservation. It is used to
define the relationship between a date range, and an available reservation for a vacant room.
The class diagram for CalendarQuery is displayed in Figure 17.
This entity has two methods:
1. Reservation[] checkDates() – Returns a valid Reservation object that that is available
between the start date and the end date.
2. assignReservation() – Assigns a reservation between a start date and an end date.
21
This entity has one attribute:
1. GuestReservation[]guestReservation – This is an instance of GuestReservation . It is
used to collect information about the guest, room, and payment for the reservation.
+Reservation[]checkDates()
+assignReservation()
-GuestReservation guestreservation
CalendarQuery
Figure 17. CalendarQuery Class
6.1.3 MakePayment Entity
The MakePayment entity is a service containing a collection of Payment objects, a Finances
object for tracking total payments, and methods to make a payment and assign a guest. The
class diagram for MakePayment is displayed in Figure 18.
This entity contains two methods:
1. makePayment() – Parses a payment object and adds it to the total income of the
establishment.
2. assignGuest() – Assigns a guest object to a payment in corresponding to a reservation.
This entity contains two attributes:
1. Payments[] payments – A collection of payment.
2. Finances []finances – A utility to track all financial balances for the establishment.
+makePayment()
+assignGuest()
-Payment[]payments
-Finance[]finaces
MakePayment
Figure 18. MakePayment Class
6.1.4 GuestReservation Entity
The GuestReservation entity is a service that representing a bulk of the business logic for the
BBRMS. This service contains object instances which manage most of the domain objects. The
class diagram for GuestReservation is displayed in Figure 19.
22
This entity contains five methods:
1. createReservation() – Adds a Reservation object to the collection.
2. deleteReservation() – Removes the Reservation object from the collection.
3. takeGuestInformation() – Performs the service management for the
TakeGuestInformation service entity.
4. takeRoomReservation() - Performs the service management for the RoomReservation
service entity.
5. takePayment() – Performs the service management for the MakePayment service entity.
This entity has five attributes:
1. Reservation[] reservation – Collection of Reservation domain objects.
2. RoomReservation roomReservation – Instance of the RoomReservation service entity.
3. Guest[] guests – Collection of Guest domain objects.
4. MakePayment makePayment – Instance of the MakePayment service entity.
5. TakeGuestInformation guestInformation– Instance of the TakeGuestInformation service
entity.
+Room getRoom()
+deleteRoom()
+createRoom()
-Reservatio[]reservations
-RoomReservation roomreservation
-Guest[]guests
-MakePayment makepayment
-TakeGuestInformation guestinformation
GuestReservation
Figure 19. GuestReservation Class
23
6.1.5 TakeGuestInformation Entity
The TakeGuestInformation entity is a service to enter or retrieve information about a specific
guest. This service retrieves information, and creates a Guest domain object from its result. The
class diagram for TakeGuestInformation is displayed in Figure 20.
This entity contains one method:
1. takeGuestInfo() – Creates a Guest object using relevant guest information, such as start
date, end date, price, guarantee,and guarantee date.
This entity contains one attribute:
1. Guest[] guests – Collection of Guest domain objects.
+takeGuestInfo()
-Guest[]guests
TakeGuestInformation
Figure 20. TakeGuestInformation Class
6.1.6 ReservationQuery Entity
The ReservationQuery entity is a concurrent service that scans the collection of Reservation
objects, removes those with expired guaranteed dates, and sets the room status back to vacant.
This service differs from the others in that it is constantly scansthe collection, and runs in the
background without other interaction. The class diagram for ReservationQuery is displayed in
Figure 21.
This entity contains three methods:
1. Reservation foundExpiredReservation() – Polling function call that returns a
Reservation with an expired guarantee date.
2. scan() – Starts the scanning/polling of all Reservation objects.
3. stop() – Stops the scanning/polling of all Reservation objects.
This entity contains one attribute:
1. Reservation[] reservations – Collection of Reservation domain objects.
24
+ReservationfoundExpiredRreservation()
+scan()()
+stop()()
-Reservation[]reservation
ReservationQuery
Figure 21. ReservationQuery Class
6.2 Data Detailed Design
6.2.1 Guest Entity
The Guest entity is a domain object used to represent information about a guest. This domain
object stores information about a guest, and is primarily composed of attributes and accessory
methods. The class diagram for Guest is displayed in Figure 23.
This entity contains eighteen methods:
1. setguestID() - Sets the unique ID of the guest.
2. getguestID() - Returns the unique ID of the guest.
3. getlastName() - Returns the last name of the guest.
4. setlastName() - Sets the last name of the guest.
5. getfirstName() - Returns the first name of the guest.
6. setfirstName() - Sets the first name of the guest.
7. getaddress() - Returns the address of the guest.
8. setaddress () - Sets the address of the guest.
9. getphoneNumber() - Returns the phone number of the guest.
10. setPhoneNumber() - Sets the phone number of the guest.
11. seteMail() - Sets the eMail of the guest.
12. geteMail() - Returns the eMail of the guest.
13. getcreditCardNumber() - Returns the credit card number of the guest.
14. setcreditCardNumber() - Sets the credit card number of the guest.
15. setcreditCardExpiration() - Sets the credit card expiration date.
25
16. getcreditCardNumber() - Returns the credit card expiration.
17. setcreditCardCode() - Sets the credit card security code.
18. getcreditCardCode() - Returns the credit card security code.
This entity contains nine attributes:
1. guestID - This is an integer representing a unique instance of a guest.
2. lastName - This is a string representing the last name of a guest.
3. firstName -This is a string representing the first name of a guest.
4. Address - This is a string representing the address of a guest. This is a complex attribute
consisting of street address, city, state, and zip code.
5. phoneNumber - This is an integer representing the phone number of a guest. A guest
can have more than one phone number making this a multivalued attribute.
6. eMail - This is a string representing the email address of the guest
7. creditCardNumber - This is an integer representing the credit card number used for
payment by a guest.
8. creditCardExpiration - This is an integer representing the expiration date of the credit
card.
9. creditCardCode - This is an integer representing the 3 digit security code on the back of
the credit card.
26
+setguestID()
+getguestID()
+setlastName()
+getlastName()
+setfirstName()
+getfirstName()
+setaddress()
+getaddres()
+setphoneNumber()
+getphoneNumber()
+seteMail()
+geteMail()
+setcreditCardNumber()
+getcreditCardNumber()
+setcreditCardExpiration()
+getcreditCardExpiration()
+setcreditCardCode()
+getcreditCardCode()
-guestID
-lastName
-firstName
-address
-phoneNumber
-eMail
-creditCardNumber
-creditCardExpiration
-creditCardCode
Guest
Figure 22. Guest Class
6.2.2 Payment Entity
The Payment entity is a domain object tused to represent payment information for a
reservation. This domain object stores information about a payment, and is primarily composed
of attributes and accessory methods. the class diagram for Payment is displayed in Figure 23.
This entity contains eleven methods:
1. setpaymentID() - Sets the integer value representing a single payment.
2. getpaymentID() - Returns the paymentID representing a single payment.
3. setamountPaid() - Sets the total dollar amount paid.
4. getamountPaid() - Returns the total dollar amount paid.
5. setamountDue() - Subtracts the amountPaid from the totalPrice.
6. getamountDue() - Returns the total amount due.
7. setpaymentDate() - Sets the date value for paymentDate to current date.
27
8. getpaymentDate() - Returns the date value for paymentDate.
9. isPaid() - Boolean value set to true if the amountDue is equal to zero.
10. setguestID() - Sets the guestID associated with the payment.
11. getguestID() - Returns the guestID associated with the payment.
This entity contains six attributes:
1. paymentID - This is an integer that represents a specific payment.
2. amountPaid - Double precision point number representing the dollar amount paid at the
time of transaction.
3. amountDue - The remaining dollar amount determined by subtracting the payment
from the totalPrice of the reservation.
4. paymentDate() - Date value for the date of payment.
5. isPaid() - Boolean value to determine if the bill is paid in full.
6. guestID - Reference to a specific guestID.
+setpaymentID()
+getpaymentID()
+setamountPaid()
+getamountPaid()
+setamountDue()
+getamountDue()
+setpaymentDate()
+getpaymentDate()
+isPaid()
+setguestID()
+getguestID()
-paymentID
-amountPaid
-amountDue
-paymentDate
-isPaid
-guestID
Payment
Figure 23. Payment Class
28
6.2.3 Reservation Entity
The Reservation entity is a domain used to represent information for a reservation. This domain
object stores information about a reservation, and is primarily composed of attributes and
accessory methods. The class diagram for Reservation is displayed in Figure 24.
This entity contains twenty-six methods:
1. int setreservationID() -Sets the unique integer ID representing a specific reservation.
2. int getreservationID() -Returns the unique integer ID representing a specific reservation.
3. setstartDate() - Sets the startDate of the reservation.
4. getstartDate() - Returns the startDate of the reservation.
5. setendDate() - Sets the endDate of the reservation.
6. getendDate() - Returns the endDateof the reservation.
7. settotalNights() - Calculates the total nights of the reservation by subtracting the
startDate from the endDate.
8. gettotalNights() - Returns the totalNights of the reservation.
9. setrate() - Sets the daily rate of the reservation.
10. getrate() - Returns the rate of the reservation.
11. setprice() - Sets the price of the reservation of the reservation.
12. getprice() - Returns the price of the reservation.
13. settax() - Sets the tax of the reservation.
14. gettax() - Returns the tax of the reservation.
15. settotalPrice() - Calculates the totalPrice of the reservation by adding the tax to the price.
16. gettotalPrice() - Returns the totalPrice of the reservation.
17. toggleGuaranteed() - Toggles the guaranteed status of the Reservation, and returns the
current value.
18. isGuaranteed() - Returns the guaranteed status of the Reservation.
19. setguaranteeDate() - Sets the guarantee date of the reservation.
29
20. getGuaranteeDate() - Returns the guaranteeDate of the reservation.
21. setguestId(int) - Sets the guestID associated with the reservation.
22. getGuestId() - Returns the guestID associated with the reservation.
23. setroomID() - Sets the roomID associated with the reservation.
24. getRoomId() - Returns the roomID associated with the reservation.
25. setpaymentId(i) - Sets the paymentID associated with the reservation.
26. getpaymentId() - Returns the paymentID associated with the reservation.
This entity contains thirteen attributes:
1. reservationID - This is an integer ID representing the specific record of a reservation.
2. startDate - This is a date object representing the starting date of a reservation.
3. endDate - This is a date object representing the ending date of a reservation.
4. totalNights - This is an integer representing the total number of nights of a reservation.
5. Rate - Double precision point number representing the dollar amount of the room rate.
6. Price - Double precision point number representing the dollar amount of the room rate
multiplied by the totalNights.
7. Tax - Double precision point number representing the local sales tax rate.
8. totalPrice - Double precision point number representing the dollar amount of the room
price plus the tax.
9. isGuaranteed - This is a Boolean value representing the guaranteed status of a
reservation. This value is determined by a payment or a guarantee date, which
guarantees a room’s reservation status.
10. guaranteeDate - This is a date object representing the ending date of guarantee for the
reservation. It would be set to the endDate of the reservation if a payment has been
made, or to the guarantee date entered for the reservation if no payment has been made.
11. guestID - Reference to the unique guestID.
12. roomID - Integer representing the specific room.
13. paymentID - Integer representing this specific payment.
30
+setreservationID()
+getreservationID()
+setstartDate()
+getstartDate()
+setendDate()
+getendDate()
+settotalNights()
+gettotalNights()
+setrate()
+getrate()
+setprice()
+getprice()
+settax()
+gettax()
+settotalPrice()
+gettotalPrice()
+toggleGuaranteed()
+isGuaranteed()
+setguaranteeDate()
+getguaranteeDate()
+setguestID()
+getguestID()
+setroomID()
+getroomID()
+setpaymentID()
+getpaymentID()
-reservationID
-startDate
-endDate
-totalNights
-rate
-price
-tax
-totalPrice
-isGuaranteed
-guaranteeDate
-guestID
-roomID
-paymentID
Reservation
Figure 24. Payment Class
6.2.4 Room Entity
The Room entity is a domain object used to represent information for a room. This domain
object stores information about a room, and is primarily composed of attributes and accessory
methods. The class diagram for Room is displayed in Figure 25.
This entity contains six methods:
1. setroomID() - Sets integer value representing a specific room.
2. getroomID() - Returns the value for roomID.
31
3. togglevacancy() - Toggles the vacancy status of a Room, and returns the current value.
4. isVacant() - Returns the current vacancy status of a Room.
5. setroomNumber() - Sets the roomNumber associated with the room.
6. getroomNumber() - Returns the room number associated with the room.
This entity contains three attributes:
1. roomID - This is an integer ID that represents a specific room.
2. isVacant - Boolean value specifying if the room is vacant (true) or not (false).
3. roomNumber - Integer value of the room number.
+setroomID()
+getroomID()
+togglevacancy()
+isVacant()
+setroomNumber()
+getroomNumber()
-roomID
-isVacant
-roomNumber
Room
Figure 25. Room Class
6.2.5 Finances Entity
The Finances entity is a domain object that is used to represent financial information for the
totality of the establishment. This domain object stores information about a total finances, and is
primarily composed of attributes and accessory methods. Figure 26 represents the class diagram
for Finances.
This entity contains eleven methods:
1. setincome() - Totals all payments.
2. getincome() - Returns the income value.
3. setexpense() - Sets expense amount.
4. getexpense() - Returns expense amount.
5. setexpenseType() - Sets expenseType.
32
6. getexpenseType() - Returns expense amount.
7. expenseAccount() - Decrements money from the establishments account.
8. setexpenseTotal() - Totals all expense objects.
9. getexpenseTotal() - Returns expenseTotal.
10. setprofit() - Calculates the profit amount by subtracting expenseTotal from income.
11. getprofit() - Returns profit amount.
This entity contains six attributes:
1. assets - Total amount of money in the establishments account determined by a starting
value and accounting for all income and expenses.
2. income - This is a collection of payment objects that represent income.
3. expense - Any money that is debited from the establishments account.
4. expenseType - String value categorizing an expense (ie. Rent, utilities, food, beverage,
salaries, maintenance).
5. expenseTotal - Total value of all expenses.
6. profits - Amount of money that is determined by subtracting expenseTotal from income.
+setincome()
+getincome()
+setexpense()
+getexpense()
+setexpenseType()
+getexpenseType()
+expenseAccount()
+setexpenseTotal()
+getexpenseTotal()
+setprofit()
+getprofit()
-assets
-income
-expense
-expenseType
-expenseTotal
-profits
Finances
Figure 26. Finances Class

More Related Content

What's hot

Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2ambitlick
 
SRS example
SRS exampleSRS example
SRS examplegentzone
 
Software Requirement Specification Master Template
Software Requirement Specification Master TemplateSoftware Requirement Specification Master Template
Software Requirement Specification Master TemplateWayne Chen
 
Software Requirement Specification - Software Pack Solution 14
Software Requirement Specification - Software Pack Solution 14Software Requirement Specification - Software Pack Solution 14
Software Requirement Specification - Software Pack Solution 14Syed Farjad Zia Zaidi
 
Srs template
Srs templateSrs template
Srs templatemuqeet19
 
Software Design Specification For Smart Internet Cafe
Software Design Specification For Smart Internet CafeSoftware Design Specification For Smart Internet Cafe
Software Design Specification For Smart Internet CafeHari
 
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...Principled Technologies
 
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)Sage CRM 7.2 Patch Release Notes (Patch E June 2014)
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)Sundae Solutions Co., Ltd.
 
Deploying GFI EventsManager™
Deploying GFI EventsManager™Deploying GFI EventsManager™
Deploying GFI EventsManager™GFI Software
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]Rajon
 
Ch19-Software Engineering 9
Ch19-Software Engineering 9Ch19-Software Engineering 9
Ch19-Software Engineering 9Ian Sommerville
 
Software Requirements Specification Final
Software Requirements Specification FinalSoftware Requirements Specification Final
Software Requirements Specification Finaljangjong
 
Water management portal
Water management portalWater management portal
Water management portalPradeep Kiran
 

What's hot (20)

Employee Time and Task Tracking System
Employee Time and Task Tracking SystemEmployee Time and Task Tracking System
Employee Time and Task Tracking System
 
Ch18 service oriented software engineering
Ch18 service oriented software engineeringCh18 service oriented software engineering
Ch18 service oriented software engineering
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2
 
SRS example
SRS exampleSRS example
SRS example
 
Ch2 - SW Processes
Ch2 - SW ProcessesCh2 - SW Processes
Ch2 - SW Processes
 
Software Requirement Specification Master Template
Software Requirement Specification Master TemplateSoftware Requirement Specification Master Template
Software Requirement Specification Master Template
 
Software Requirement Specification - Software Pack Solution 14
Software Requirement Specification - Software Pack Solution 14Software Requirement Specification - Software Pack Solution 14
Software Requirement Specification - Software Pack Solution 14
 
Srs template
Srs templateSrs template
Srs template
 
Software Design Specification For Smart Internet Cafe
Software Design Specification For Smart Internet CafeSoftware Design Specification For Smart Internet Cafe
Software Design Specification For Smart Internet Cafe
 
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...
Client management with SCCM 2012: Dell Latitude 6430u Ultrabook vs. older Del...
 
Ch17 distributed software engineering
Ch17 distributed software engineeringCh17 distributed software engineering
Ch17 distributed software engineering
 
Sample SRS format
Sample SRS formatSample SRS format
Sample SRS format
 
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)Sage CRM 7.2 Patch Release Notes (Patch E June 2014)
Sage CRM 7.2 Patch Release Notes (Patch E June 2014)
 
Deploying GFI EventsManager™
Deploying GFI EventsManager™Deploying GFI EventsManager™
Deploying GFI EventsManager™
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
Ch19-Software Engineering 9
Ch19-Software Engineering 9Ch19-Software Engineering 9
Ch19-Software Engineering 9
 
Software Requirements Specification Final
Software Requirements Specification FinalSoftware Requirements Specification Final
Software Requirements Specification Final
 
Water management portal
Water management portalWater management portal
Water management portal
 
Ch11 reliability engineering
Ch11 reliability engineeringCh11 reliability engineering
Ch11 reliability engineering
 
Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 

Viewers also liked

Software requirements Specification
Software requirements SpecificationSoftware requirements Specification
Software requirements SpecificationPreshan Pradeepa
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using umlDhiraj Shetty
 
Hotel+management+system
Hotel+management+systemHotel+management+system
Hotel+management+systemsonikaushal
 
SRS document for Hotel Management System
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management SystemCharitha Gamage
 
Uml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemUml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemPradeep Bhosale
 
SRS for Hospital Management System
SRS for Hospital Management SystemSRS for Hospital Management System
SRS for Hospital Management Systemkataria Arvind
 
Online Hotel Room Booking System
Online Hotel Room Booking SystemOnline Hotel Room Booking System
Online Hotel Room Booking SystemAbhishek Kumar
 

Viewers also liked (7)

Software requirements Specification
Software requirements SpecificationSoftware requirements Specification
Software requirements Specification
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using uml
 
Hotel+management+system
Hotel+management+systemHotel+management+system
Hotel+management+system
 
SRS document for Hotel Management System
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management System
 
Uml diagram for_hospital_management_system
Uml diagram for_hospital_management_systemUml diagram for_hospital_management_system
Uml diagram for_hospital_management_system
 
SRS for Hospital Management System
SRS for Hospital Management SystemSRS for Hospital Management System
SRS for Hospital Management System
 
Online Hotel Room Booking System
Online Hotel Room Booking SystemOnline Hotel Room Booking System
Online Hotel Room Booking System
 

Similar to John and Joan B&B SDD

4.2 Service TestThis test is for the Services module. It designe.docx
4.2 Service TestThis test is for the Services module. It designe.docx4.2 Service TestThis test is for the Services module. It designe.docx
4.2 Service TestThis test is for the Services module. It designe.docxgilbertkpeters11344
 
Software Design Specification Document (SDD) By Da.docx
Software Design Specification Document (SDD) By Da.docxSoftware Design Specification Document (SDD) By Da.docx
Software Design Specification Document (SDD) By Da.docxjensgosney
 
Buisness strategy
Buisness strategy Buisness strategy
Buisness strategy Rū Sh
 
Github-Source code management system SRS
Github-Source code management system SRSGithub-Source code management system SRS
Github-Source code management system SRSAditya Narayan Swami
 
ARDUINO EMBEDDED SYSTEM
ARDUINO EMBEDDED SYSTEMARDUINO EMBEDDED SYSTEM
ARDUINO EMBEDDED SYSTEMVishal GARG
 
Oosd shopping (1)
Oosd shopping (1)Oosd shopping (1)
Oosd shopping (1)shaj13
 
En clipboard app quick_reference_guide
En clipboard app quick_reference_guideEn clipboard app quick_reference_guide
En clipboard app quick_reference_guideshivamagarwal223
 
LunchBox:- A Web And Mobile Application
LunchBox:- A Web And Mobile ApplicationLunchBox:- A Web And Mobile Application
LunchBox:- A Web And Mobile ApplicationIRJET Journal
 
Fingerprint based transaction system
Fingerprint based transaction systemFingerprint based transaction system
Fingerprint based transaction systemsagar solanky
 
Hotel Management system in C++
Hotel Management system in C++ Hotel Management system in C++
Hotel Management system in C++ Prince Kumar
 
Online shopping Report
Online shopping ReportOnline shopping Report
Online shopping ReportPragnya Dash
 
hotel management dbms.docx
 hotel management dbms.docx hotel management dbms.docx
hotel management dbms.docxKaranamManideep1
 
System Insight Manager on HP Servers
System Insight Manager on HP ServersSystem Insight Manager on HP Servers
System Insight Manager on HP Serverskoesteruk22
 

Similar to John and Joan B&B SDD (20)

4.2 Service TestThis test is for the Services module. It designe.docx
4.2 Service TestThis test is for the Services module. It designe.docx4.2 Service TestThis test is for the Services module. It designe.docx
4.2 Service TestThis test is for the Services module. It designe.docx
 
Software Design Specification Document (SDD) By Da.docx
Software Design Specification Document (SDD) By Da.docxSoftware Design Specification Document (SDD) By Da.docx
Software Design Specification Document (SDD) By Da.docx
 
Buisness strategy
Buisness strategy Buisness strategy
Buisness strategy
 
Github-Source code management system SRS
Github-Source code management system SRSGithub-Source code management system SRS
Github-Source code management system SRS
 
ARDUINO EMBEDDED SYSTEM
ARDUINO EMBEDDED SYSTEMARDUINO EMBEDDED SYSTEM
ARDUINO EMBEDDED SYSTEM
 
Oosd shopping (1)
Oosd shopping (1)Oosd shopping (1)
Oosd shopping (1)
 
SRS document
SRS documentSRS document
SRS document
 
En clipboard app quick_reference_guide
En clipboard app quick_reference_guideEn clipboard app quick_reference_guide
En clipboard app quick_reference_guide
 
LunchBox:- A Web And Mobile Application
LunchBox:- A Web And Mobile ApplicationLunchBox:- A Web And Mobile Application
LunchBox:- A Web And Mobile Application
 
Fingerprint based transaction system
Fingerprint based transaction systemFingerprint based transaction system
Fingerprint based transaction system
 
Hotel Management system in C++
Hotel Management system in C++ Hotel Management system in C++
Hotel Management system in C++
 
Online shopping Report
Online shopping ReportOnline shopping Report
Online shopping Report
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
hotel management dbms.docx
 hotel management dbms.docx hotel management dbms.docx
hotel management dbms.docx
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
Tc Management Srs
Tc Management SrsTc Management Srs
Tc Management Srs
 
System Insight Manager on HP Servers
System Insight Manager on HP ServersSystem Insight Manager on HP Servers
System Insight Manager on HP Servers
 

John and Joan B&B SDD

  • 1. 2014 Stephen Gubenia Developed for CMIS 330 Dr. Almarzooq 11/16/2014 Software Design Description (SDD) for John and Joan Bed & Breakfast
  • 2. i Table of Contents 1. Introduction ................................................................................................................................ 1 1.1 Purpose.................................................................................................................................. 1 1.2 Scope...................................................................................................................................... 1 1.3 Definitions............................................................................................................................. 1 2. References ................................................................................................................................... 2 3. Decomposition Description ........................................................................................................ 3 3.1 Module Decomposition......................................................................................................... 4 3.1.1 User Interface.................................................................................................................. 5 3.1.2 Services............................................................................................................................ 6 3.2 Concurrent Process Decomposition...................................................................................... 7 3.2.1 ReservationQuery Entity................................................................................................. 7 3.3 Data Decomposition.............................................................................................................. 7 3.3.1 Guest Entity..................................................................................................................... 7 3.3.2 Room Entity..................................................................................................................... 8 3.3.3 Reservation Entity........................................................................................................... 8 3.3.4 Payment Entity................................................................................................................ 8 3.3.5 Finances Entity................................................................................................................ 8 4. Dependency Description......................................................................................................... 9 4.1 Inter-module Dependencies................................................................................................ 10 4.2 Inter-process Dependencies ................................................................................................ 11 4.3 Data Dependencies.............................................................................................................. 12 5. Interface Description................................................................................................................. 13 5.1 User Interface Description................................................................................................... 13 5.1 CalendarQuery................................................................................................................. 14 5.2 RoomReservation............................................................................................................. 15 5.3 MakePayment .................................................................................................................. 16 5.4 GuestReservation............................................................................................................. 17 5.5 GuestInformation............................................................................................................. 18 5.6 Service Interface Description............................................................................................... 19 6. Detailed Design......................................................................................................................... 20
  • 3. ii 6.1 Module Detailed Design...................................................................................................... 20 6.1.1 RoomReservation Entity............................................................................................... 20 6.1.2 CalendarQuery Entity................................................................................................... 20 6.1.3 MakePayment Entity..................................................................................................... 21 6.1.4 GuestReservation Entity................................................................................................ 21 6.1.5 TakeGuestInformation Entity....................................................................................... 23 6.1.6 ReservationQuery Entity............................................................................................... 23 6.2 Data Detailed Design........................................................................................................... 24 6.2.1 Guest Entity................................................................................................................... 24 6.2.2 Payment Entity.............................................................................................................. 26 6.2.3 Reservation Entity......................................................................................................... 28 6.2.4 Room Entity................................................................................................................... 30 6.2.5 Finances Entity.............................................................................................................. 31
  • 4. 1 1. Introduction 1.1 Purpose The purpose of this document is to outline requirements that define a point of sales and financial managementsystem used in tracking reservations, payments, profits, and expenses for a small bed & breakfast (B&B) establishment. This document is developed for use during the design and implementation phases of the software development. 1.2 Scope The software will be named Bed & Breakfast Reservation and Management System, or BBRMS. The BBRMS is designed to function as a point of sales and financial management system for a small bed & breakfast establishment. The scope of the application and its intended functionality should be kept small and specific to the problem set. The software should simplify the workflow of the establishment by using a calendar graphical user interface (GUI) to view vacancies and initiate the reservation process. GUIs should be used for all application process to simplify data entry. The system should also automate the process of determining if a reservation guarantee is no longer valid and return the room to a vacant status. 1.3 Definitions Term Definition Concurrent Process A process that runs continuously Domain Object Object that holds information for a specific function Expense Cost occurred by the business Guarantee A contract between the owners of the B&B and the potential guest Guest Person(s) who occupy a room, or who have previously occupied or will occupy a room Hotkey A key on the keyboard that performs a specific programmed function Income All money collected by the business Payment Transfer of money between guest an establishment Price of Reservation Calculated by multiplying rate by number of nights in the reservation Profit Money left after subtracting all expenses from income Rate The cost of a specific room for one night Reservation The assignment of a room to a guest for a specified date range Service A function related to the conduct of business Tax Calculated by multiplying Price of Reservation by the local tax rate Total Price Calculated by adding tax to Price of Reservation User Interface Any element that allows the user to interact with the system Vacancy The availability of a room Workflow A sequence of steps necessary to perform a task
  • 5. 2 2. References References for this document include the following:  IEEE Std. 1016-1998: IEEE RecommendedPractice for Software Design Descriptions  IEEE Std 610.12-1990, IEEE StandardGlossary of Software Engineering Terminology  IEEE Std 730-1998, IEEE Standard for Software Quality Assurance Plans.  IEEE Std 828-1998, IEEE Standard for Software Configuration Management Plans.  IEEE Std 830-1998, IEEE RecommendedPractice for Software Requirements Specifications
  • 6. 3 3. Decomposition Description The complete relationship between all entities of the BBRMS is represented in the Figure 1 entity relationship diagram (ERD). The ERD shows the relationship between the domain objects (blue), their services (purple), and the concurrent process used to remove reservations with a past-due guarantee date. +setguestID() +getguestID() +setlastName() +getlastName() +setfirstName() +getfirstName() +setaddress() +getaddres() +setphoneNumber() +getphoneNumber() +seteMail() +geteMail() +setcreditCardNumber() +getcreditCardNumber() +setcreditCardExpiration() +getcreditCardExpiration() +setcreditCardCode() +getcreditCardCode() -guestID -lastName -firstName -address -phoneNumber -eMail -creditCardNumber -creditCardExpiration -creditCardCode Guest +setreservationID() +getreservationID() +setstartDate() +getstartDate() +setendDate() +getendDate() +settotalNights() +gettotalNights() +setrate() +getrate() +setprice() +getprice() +settax() +gettax() +settotalPrice() +gettotalPrice() +toggleGuaranteed() +isGuaranteed() +setguaranteeDate() +getguaranteeDate() +setguestID() +getguestID() +setroomID() +getroomID() +setpaymentID() +getpaymentID() -reservationID -startDate -endDate -totalNights -rate -price -tax -totalPrice -isGuaranteed -guaranteeDate -guestID -roomID -paymentID Reservation +setroomID() +getroomID() +togglevacancy() +isVacant() +setroomNumber() +getroomNumber() -roomID -isVacant -roomNumber Room +setpaymentID() +getpaymentID() +setamountPaid() +getamountPaid() +setamountDue() +getamountDue() +setpaymentDate() +getpaymentDate() +isPaid() +setguestID() +getguestID() -paymentID -amountPaid -amountDue -paymentDate -isPaid -guestID Payment +setincome() +getincome() +setexpense() +getexpense() +setexpenseType() +getexpenseType() +expenseAccount() +setexpenseTotal() +getexpenseTotal() +setprofit() +getprofit() -assets -income -expense -expenseType -expenseTotal -profits Finances *1 +ReservationfoundExpiredRreservation() +scan()() +stop()() -Reservation[]reservation ReservationQuery * 1 +Room getRoom() +deleteRoom() +createRoom() -Room[]rooms RoomReservation +makePayment() +assignGuest() -Payment[]payments -Finance[]finaces MakePayment +Room getRoom() +deleteRoom() +createRoom() -Reservatio[]reservations -RoomReservation roomreservation -Guest[]guests -MakePayment makepayment -TakeGuestInformation guestinformation GuestReservation +Reservation[]checkDates() +assignReservation() -GuestReservation guestreservation CalendarQuery +takeGuestInfo() -Guest[]guests TakeGuestInformation * 1 1 1 * 1 * 1 * 1 * 1 1 1 1 1 1 Figure 1. Entity Relationship Diagram This section outlines the entities and their relationships, which are divided into modules, continuous processes, and data.
  • 7. 4 3.1 Module Decomposition The BBRMS is comprised of four different components that provide specific functionality in the system. Figure 2 shows a high level architectural context diagram (ACD) of the system. The overall system is composed of four primary functions: 1. User Interface 2. Services 3. Domain Objects 4. Database The following representation and design specification will cover numbers 1-3. The database persistence is covered in the description of each service. A database entity is included in the diagram as a generic reference which summarizes persistence activities. The architectural context diagram illustrates the human-computer interface (HCI) for users of the BBRMS through the user interface, and interaction between domain objects and the user interface through the service layer. This design enables data to be abstracted from the views in the services component, through functional business logic, reducing system complexity. Services 1.1 Room Reservation 1.2 Calendar Query 1.3 Make Payment 1.4 Guest Reservation Store Data 2.0 User Interface 2.1 Room Reservation 2.2 Make Payement 2.3 Guest Reservation 2.4 Guest Information 2.5 Calendar Query 3.0 Domain Objects 3.1 Guest 1.5 Take Guest Information 1.6 Reservation Query 3.2 Finances 3.3 Payment 3.4 Room 3.5 Reservation Out: RoomNumber, In: isVacant Out: startDate, endDate, in: Room In: Payment In: Reservation <<delete>> In: Guest <<manages>> <<store>> <<retrieve>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> Figure 2. High Level Architectural Context Diagram
  • 8. 5 3.1.1 User Interface This module is for end users of the system at the bed and breakfast. The users are able to interact with the system exclusively through this interface. The only external interface needed to access to this user interface is a keyboard and mouse with a single-user view set. Services User Interface Calendar Query Room Reservation Make Payement Guest Reservation Guest Information Domain ObjectsStore Data <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<manages>><<stores> <<retrieves>> Figure 3. Architectural Context Diagram – User Interface 3.1.1.1 Calendar Query This object displays a calendar layout with information aboutroom vacancies reservations. The design for the calendar lookup is represented in section 5.1. 3.1.1.2 Room Reservation This object displays information about a room, and a data entry GUI to reserve a room. The design for the room reservation is represented in section 5.2. 3.1.1.3 Make Payment This object displays information about payments related to a specific guest. The design for making a payment is represented in section 5.3. 3.1.1.4 Guest Reservation This object displays information about a guest’s reservation for a specific room in a specified date range. The design for the guest reservation is represented in section 5.4. 3.1.1.5 Take Guest Information This object displays a data entry GUI to enter guest contact and payment information. If the guest has been a guest previously, a database query can be performed using the guest’s name and/or phone number. If the guest’s information is found during the query, the remaining
  • 9. 6 fields in the GUI will be auto-filled by the system. The design for take guest information is represented in section 5.5. 3.1.2 Services This module contains the business logic for the processes that the BBRMS needs to conduct in which domain objects are involved, such as looking up a reservation date or saving a payment. The service module provides output to the user interface, and manages the domain objects through input from the user interface. The service module also manages persistence of the domain objects to the database. Services 1.1 Room Reservation 1.2 Calendar Query 1.3 Make Payment 1.4 Guest Reservation Store Data 2.0 User Interface 3.0 Domain Objects 1.5 Take Guest Information 1.6 Reservation Query Out: RoomNumber, In: isVacant Out: startDate, endDate, in: Room In: Payment In: Reservation <<delete>> In: Guest <<manages>> <<store>> <<retrieve>> <<interacts>> <<interacts>> Figure 4. Architectural Context Diagram – Services 3.1.2.1 RoomReservation Entity This service entity handles the reservation of rooms function, and manages the Room object. 3.1.2.2 CalendarQuery Entity This service entity handles the function to search for rooms in a date range, and return a room that is vacant. 3.1.1.3 MakePayment Entity This service entity component handles the business logic for receiving a payment, and adjusting a Finances balance, as well as association to a room reservation and guest. 3.1.1.4 GuestReservation Entity This service entity assigns guest information to a vacant room, and holds other data, such as guarantee dates and associated payments.
  • 10. 7 3.1.1.5 TakeGuestInformation Entity This service entity records guest information, such as name, contact information, and credit card information. 3.2 Concurrent Process Decomposition This module describes any services that act independent of the user, including processes that create, manage, update, or delete any domain object within the system. Figure 5 depicts an ACD representing all Domain Objects. Services Store Data 2.0 User Interface 3.0 Domain Objects 3.1 Guest 3.2 Finances 3.3 Payment 3.4 Room 3.5 Reservation <<manages>> <<store>> <<retrieve>> <<interacts>> <<interacts>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> Figure 5. Architectural Context Diagram – Domain Objects 3.2.1 ReservationQuery Entity This service entity scans all Reservation objects searching for those with a guarantee date that equals the current date. Any reservation that meets this criterion is deleted and the room status is changed to vacant. 3.3 Data Decomposition This module covers all entities that hold data about a specific function in the BBRMS system. The term Domain Objects will be used to refer to these objects. 3.3.1 Guest Entity This entity stores all information about a guest that has made a reservation. This information includes data such as name, contact information, and credit card information.
  • 11. 8 3.3.2 Room Entity This entity holds information related to an individual room in the establishment. This information is used in relation to reservations. 3.3.3 Reservation Entity This entity holds all information about an active reservation. This information includes data such as start date, end date, guest information, guarantee date, and payment information. M This entity is the hub between other domain objects within the BBRMS. 3.3.4 Payment Entity This entity holds information about a payment that relates a guest to a specific room reservation. 3.3.5 Finances Entity This entity stores information about all payments made through the BBRMS.
  • 12. 9 4. Dependency Description Service modules edit, save and delete domain objects directly through the database module entries. The user interface module interacts with the service module. The service module controls and manages the domain objects. The level 1 data flow diagram (DFD) in Figure 6 illustrates these dependencies. These dependencies for modules, services, and data are explained in more detail below. Services 1.1 Room Reservation 1.2 Calendar Query 1.3 Make Payment 1.4 Guest Reservation Store Data 2.0 User Interface 2.1 Room Reservation 2.2 Make Payement 2.3 Guest Reservation 2.4 Guest Information 2.5 Calendar Query 3.0 Domain Objects 3.1 Guest 1.5 Take Guest Information 1.6 Reservation Query 3.2 Finances 3.3 Payment 3.4 Room 3.5 Reservation Out: RoomNumber, In: isVacant Out: startDate, endDate, in: Room In: Payment In: Reservation <<delete>> In: Guest <<manages>> <<store>> <<retrieve>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<interacts>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> <<create>> <<delete>> <<edit>> Figure 6. Level 1 Data Flow Diagram
  • 13. 10 4.1 Inter-module Dependencies There are 4 core modules for the BBRMS software. These include the user interface, services, domain objects, and database.For the scope of this document, the database module is accessed directly by the service modules as, and will not be described in the core modules description. Figure 7 illustrates these dependencies, with the added interaction between the user and the user interface. Services Store Data 2.0 User Interface 3.0 Domain Objects <<manages>> <<store>> <<retrieve>> <<interacts>> <<interacts>> Figure 7. Inter-module Dependency Diagram 1. The User Interface module is dependent on the service module. The user interface is responsible for displaying information from the BBRMS to the user. This dependency allows the business logic from the services module to be represented in the user interface view. Additionally, the user is dependent on the user interface to interact with the system. 2. The Services module is dependent on both the user interface module to display information, as well as the domain objects module to store information. Because business logic is represented in the service module, but information is stored in the domain objects, this dependency is critical to represent the state of actions and information within the system. 3. The Domain Objects module is dependent on the services module to process information using business logic, as explained in dependency #2.
  • 14. 11 4.2 Inter-process Dependencies There are six process dependencies in the BBRMS, which are represented in Figure 8. The domain object in the inter-process dependency diagram is essential to describe the relationship between the RoomReservation service and a Room domain object, and how these relate to the ReservationQuery concurrent service. +setroomID() +getroomID() +togglevacancy() +isVacant() +setroomNumber() +getroomNumber() -roomID -isVacant -roomNumber Room *1 +ReservationfoundExpiredRreservation() +scan()() +stop()() -Reservation[]reservation ReservationQuery +getRoom() +deleteRoom() +createRoom() -Room[]rooms RoomReservation +makePayment() +assignGuest() -Payment[]payments -Finance[]finaces MakePayment +Room getRoom() +deleteRoom() +createRoom() -Reservatio[]reservations -RoomReservation roomreservation -Guest[]guests -MakePayment makepayment -TakeGuestInformation guestinformation GuestReservation +Reservation[]checkDates() +assignReservation() -GuestReservation guestreservation CalendarQuery +takeGuestInfo() -Guest[]guests TakeGuestInformation * 1 1 1 1 1 1 1 1 Figure 8. Inter-process Dependency Diagram 1. GuestReservation is dependent on several other services, which include: a. RoomReservation – Defines the room information for a guest reservation. b. CalendarQuery – This relationship is defined by the link between a date range, and the corresponding guest reservation at the establishment. c. TakeGuestInformation – This dependency drives the collection of information to instantiate a Guest object, which corresponds to a reservation. d. MakePayment – The relationship is defined as the payment by a guest that is linked to a room reservation 2. The ReservationQuery process is weakly related to the RoomReservation service. Because this process is a concurrent service, it scans reservations continuously and removes any in which the guarantee date has been exceeded.
  • 15. 12 4.3 Data Dependencies Data dependencies in the BBRMS are weakly linked through process dependencies to services. This allows for the abstraction of business logic away from both the user interface module, and the domain object model. Because of this, there is no direct relation between any of the domain objects. Instead, the dependencies are shared by the services and process to assist in managing business logic needs and abstraction between modules. The data dependency diagram is displayed in Figure 9. +setguestID() +getguestID() +setlastName() +getlastName() +setfirstName() +getfirstName() +setaddress() +getaddres() +setphoneNumber() +getphoneNumber() +seteMail() +geteMail() +setcreditCardNumber() +getcreditCardNumber() +setcreditCardExpiration() +getcreditCardExpiration() +setcreditCardCode() +getcreditCardCode() -guestID -lastName -firstName -address -phoneNumber -eMail -creditCardNumber -creditCardExpiration -creditCardCode Guest +setreservationID() +getreservationID() +setstartDate() +getstartDate() +setendDate() +getendDate() +settotalNights() +gettotalNights() +setrate() +getrate() +setprice() +getprice() +settax() +gettax() +settotalPrice() +gettotalPrice() +toggleGuaranteed() +isGuaranteed() +setguaranteeDate() +getguaranteeDate() +setguestID() +getguestID() +setroomID() +getroomID() +setpaymentID() +getpaymentID() -reservationID -startDate -endDate -totalNights -rate -price -tax -totalPrice -isGuaranteed -guaranteeDate -guestID -roomID -paymentID Reservation +setroomID() +getroomID() +togglevacancy() +isVacant() +setroomNumber() +getroomNumber() -roomID -isVacant -roomNumber Room +setpaymentID() +getpaymentID() +setamountPaid() +getamountPaid() +setamountDue() +getamountDue() +setpaymentDate() +getpaymentDate() +isPaid() +setguestID() +getguestID() -paymentID -amountPaid -amountDue -paymentDate -isPaid -guestID Payment +setincome() +getincome() +setexpense() +getexpense() +setexpenseType() +getexpenseType() +expenseAccount() +setexpenseTotal() +getexpenseTotal() +setprofit() +getprofit() -assets -income -expense -expenseType -expenseTotal -profits Finances *1 +ReservationfoundExpiredRreservation() +scan()() +stop()() -Reservation[]reservation ReservationQuery * 1 +getRoom() +deleteRoom() +createRoom() -Room[]rooms RoomReservation +makePayment() +assignGuest() -Payment[]payments -Finance[]finaces MakePayment +Room getRoom() +deleteRoom() +createRoom() -Reservatio[]reservations -RoomReservation roomreservation -Guest[]guests -MakePayment makepayment -TakeGuestInformation guestinformation GuestReservation +takeGuestInfo() -Guest[]guests TakeGuestInformation * 1 * 1 * 1 * 1 * 1 Figure 9. Data Dependency Diagram
  • 16. 13 5. Interface Description 5.1 User Interface Description The user interface allows the user to interact with the BBRMS system. It facilitates the user in creating records, reservations, and associations that culminate in a successful business transaction between a guest and the establishment. Figure 10 below illustrates the workflow from a HCI perspective, and how a daily user of the BBRMS interacts with the system to create a reservation for a guest. Figure 10. User Interface Workflow
  • 17. 14 5.1 CalendarQuery CalendarQuery is the primary interface for the user handling phone calls for reservations at bed and breakfast. This screen provides three capabilities: 1. Calendar – This displays a calendar in month view, or in a specified date range. 2. Room Vacancy Status – Displays room vacancies for a given date. 3. Make Reservation – Takes the room information and date range to create a room reservation. The CalendarQuery user interface provides the user with the ability to start workflow while communicating with a guest. The user of the BBRMS can start the process of guaranteeing a room for a guest and creating a reservation by selecting a date range that the guest inquires about and determining if an acceptable room is vacant within that range. The CalenderQuery GUI is shown in Figure 11. Figure 11. CalendarQuery GUI
  • 18. 15 5.2 RoomReservation The RoomReservation GUI is used to update vacancy statuses of rooms within the bed & breakfast establishment. This is a simple GUI which only gives information specific to the room for a number and vacancy status. Two buttons are provided to save and delete the rooms based on user choices. The RoomReservation GUI is shown in Figure 12. Figure 12. RoomReservation GUI
  • 19. 16 5.3 MakePayment The payment element of the user interface captures all elements of a guest’s payment for a reservation. The total amount of the stay is entered, along with a current payment amount. The guest list is displayed to associate the payment to the correct credit card provided by the guest when their information was entered. The buttons allow the user to process the payment, or cancel the transaction. The MakePayment GUI is shown in Figure 13. Figure 13. MakePayment GUI
  • 20. 17 5.4 GuestReservation The GuestReservation GUI allows the user to input information specific to a guest’s intended stay at the bread & breakfast. This includes start and end dates, price per day, guaranteed status and date, and options to input information related to the reservation. The buttons at the bottom of the GUI, allow the user to make a payment associated with the reservation, input guest information, and options to save and delete the reservation. The GuestReservation GUI is shown in Figure 14. Figure 14. Guest Reservation GUI
  • 21. 18 5.5 GuestInformation In order to guarantee and/or reserve a room for a guest, the user must be able to record the guest’s information. This GUI provides data entry fields for guest name, address, phone number, and credit card to be used in all payment transactions. Buttons to either save guest information or cancel the transaction are included. The GuestInformation GUI is shown in Figure 15. Figure 15. Guest Information GUI
  • 22. 19 5.6 Service Interface Description Information about service interface (domain object, service, and concurrent service) relationships is located in the ERD in section 3 (Decomposition Description). Detailed interface descriptions and class models is located in in section 6.1 (Module Detailed Design) and section 6.2 (Data Detailed Design)
  • 23. 20 6. Detailed Design 6.1 Module Detailed Design 6.1.1 RoomReservation Entity The RoomReservation entity is a service that manages the business logic for a collection of Room domain objects. The class diagram for RoomReservation is displayed in Figure 16. Three methods are present in this entity: 1. getRoom() – Returns the Room object for a given room number. 2. deleteRoom() – Deletes the Room object from the collection for a given room number. 3. createRoom() – Adds a Room object to the collection. This entity has on attribute: 1. Room[] rooms – Represents a collection of Room objects. +getRoom() +deleteRoom() +createRoom() -Room[]rooms RoomReservation Figure 16. RoomReservation Class 6.1.2 CalendarQuery Entity The CalendarQuery entity is a service containing a single object, GuestReservation. It is used to define the relationship between a date range, and an available reservation for a vacant room. The class diagram for CalendarQuery is displayed in Figure 17. This entity has two methods: 1. Reservation[] checkDates() – Returns a valid Reservation object that that is available between the start date and the end date. 2. assignReservation() – Assigns a reservation between a start date and an end date.
  • 24. 21 This entity has one attribute: 1. GuestReservation[]guestReservation – This is an instance of GuestReservation . It is used to collect information about the guest, room, and payment for the reservation. +Reservation[]checkDates() +assignReservation() -GuestReservation guestreservation CalendarQuery Figure 17. CalendarQuery Class 6.1.3 MakePayment Entity The MakePayment entity is a service containing a collection of Payment objects, a Finances object for tracking total payments, and methods to make a payment and assign a guest. The class diagram for MakePayment is displayed in Figure 18. This entity contains two methods: 1. makePayment() – Parses a payment object and adds it to the total income of the establishment. 2. assignGuest() – Assigns a guest object to a payment in corresponding to a reservation. This entity contains two attributes: 1. Payments[] payments – A collection of payment. 2. Finances []finances – A utility to track all financial balances for the establishment. +makePayment() +assignGuest() -Payment[]payments -Finance[]finaces MakePayment Figure 18. MakePayment Class 6.1.4 GuestReservation Entity The GuestReservation entity is a service that representing a bulk of the business logic for the BBRMS. This service contains object instances which manage most of the domain objects. The class diagram for GuestReservation is displayed in Figure 19.
  • 25. 22 This entity contains five methods: 1. createReservation() – Adds a Reservation object to the collection. 2. deleteReservation() – Removes the Reservation object from the collection. 3. takeGuestInformation() – Performs the service management for the TakeGuestInformation service entity. 4. takeRoomReservation() - Performs the service management for the RoomReservation service entity. 5. takePayment() – Performs the service management for the MakePayment service entity. This entity has five attributes: 1. Reservation[] reservation – Collection of Reservation domain objects. 2. RoomReservation roomReservation – Instance of the RoomReservation service entity. 3. Guest[] guests – Collection of Guest domain objects. 4. MakePayment makePayment – Instance of the MakePayment service entity. 5. TakeGuestInformation guestInformation– Instance of the TakeGuestInformation service entity. +Room getRoom() +deleteRoom() +createRoom() -Reservatio[]reservations -RoomReservation roomreservation -Guest[]guests -MakePayment makepayment -TakeGuestInformation guestinformation GuestReservation Figure 19. GuestReservation Class
  • 26. 23 6.1.5 TakeGuestInformation Entity The TakeGuestInformation entity is a service to enter or retrieve information about a specific guest. This service retrieves information, and creates a Guest domain object from its result. The class diagram for TakeGuestInformation is displayed in Figure 20. This entity contains one method: 1. takeGuestInfo() – Creates a Guest object using relevant guest information, such as start date, end date, price, guarantee,and guarantee date. This entity contains one attribute: 1. Guest[] guests – Collection of Guest domain objects. +takeGuestInfo() -Guest[]guests TakeGuestInformation Figure 20. TakeGuestInformation Class 6.1.6 ReservationQuery Entity The ReservationQuery entity is a concurrent service that scans the collection of Reservation objects, removes those with expired guaranteed dates, and sets the room status back to vacant. This service differs from the others in that it is constantly scansthe collection, and runs in the background without other interaction. The class diagram for ReservationQuery is displayed in Figure 21. This entity contains three methods: 1. Reservation foundExpiredReservation() – Polling function call that returns a Reservation with an expired guarantee date. 2. scan() – Starts the scanning/polling of all Reservation objects. 3. stop() – Stops the scanning/polling of all Reservation objects. This entity contains one attribute: 1. Reservation[] reservations – Collection of Reservation domain objects.
  • 27. 24 +ReservationfoundExpiredRreservation() +scan()() +stop()() -Reservation[]reservation ReservationQuery Figure 21. ReservationQuery Class 6.2 Data Detailed Design 6.2.1 Guest Entity The Guest entity is a domain object used to represent information about a guest. This domain object stores information about a guest, and is primarily composed of attributes and accessory methods. The class diagram for Guest is displayed in Figure 23. This entity contains eighteen methods: 1. setguestID() - Sets the unique ID of the guest. 2. getguestID() - Returns the unique ID of the guest. 3. getlastName() - Returns the last name of the guest. 4. setlastName() - Sets the last name of the guest. 5. getfirstName() - Returns the first name of the guest. 6. setfirstName() - Sets the first name of the guest. 7. getaddress() - Returns the address of the guest. 8. setaddress () - Sets the address of the guest. 9. getphoneNumber() - Returns the phone number of the guest. 10. setPhoneNumber() - Sets the phone number of the guest. 11. seteMail() - Sets the eMail of the guest. 12. geteMail() - Returns the eMail of the guest. 13. getcreditCardNumber() - Returns the credit card number of the guest. 14. setcreditCardNumber() - Sets the credit card number of the guest. 15. setcreditCardExpiration() - Sets the credit card expiration date.
  • 28. 25 16. getcreditCardNumber() - Returns the credit card expiration. 17. setcreditCardCode() - Sets the credit card security code. 18. getcreditCardCode() - Returns the credit card security code. This entity contains nine attributes: 1. guestID - This is an integer representing a unique instance of a guest. 2. lastName - This is a string representing the last name of a guest. 3. firstName -This is a string representing the first name of a guest. 4. Address - This is a string representing the address of a guest. This is a complex attribute consisting of street address, city, state, and zip code. 5. phoneNumber - This is an integer representing the phone number of a guest. A guest can have more than one phone number making this a multivalued attribute. 6. eMail - This is a string representing the email address of the guest 7. creditCardNumber - This is an integer representing the credit card number used for payment by a guest. 8. creditCardExpiration - This is an integer representing the expiration date of the credit card. 9. creditCardCode - This is an integer representing the 3 digit security code on the back of the credit card.
  • 29. 26 +setguestID() +getguestID() +setlastName() +getlastName() +setfirstName() +getfirstName() +setaddress() +getaddres() +setphoneNumber() +getphoneNumber() +seteMail() +geteMail() +setcreditCardNumber() +getcreditCardNumber() +setcreditCardExpiration() +getcreditCardExpiration() +setcreditCardCode() +getcreditCardCode() -guestID -lastName -firstName -address -phoneNumber -eMail -creditCardNumber -creditCardExpiration -creditCardCode Guest Figure 22. Guest Class 6.2.2 Payment Entity The Payment entity is a domain object tused to represent payment information for a reservation. This domain object stores information about a payment, and is primarily composed of attributes and accessory methods. the class diagram for Payment is displayed in Figure 23. This entity contains eleven methods: 1. setpaymentID() - Sets the integer value representing a single payment. 2. getpaymentID() - Returns the paymentID representing a single payment. 3. setamountPaid() - Sets the total dollar amount paid. 4. getamountPaid() - Returns the total dollar amount paid. 5. setamountDue() - Subtracts the amountPaid from the totalPrice. 6. getamountDue() - Returns the total amount due. 7. setpaymentDate() - Sets the date value for paymentDate to current date.
  • 30. 27 8. getpaymentDate() - Returns the date value for paymentDate. 9. isPaid() - Boolean value set to true if the amountDue is equal to zero. 10. setguestID() - Sets the guestID associated with the payment. 11. getguestID() - Returns the guestID associated with the payment. This entity contains six attributes: 1. paymentID - This is an integer that represents a specific payment. 2. amountPaid - Double precision point number representing the dollar amount paid at the time of transaction. 3. amountDue - The remaining dollar amount determined by subtracting the payment from the totalPrice of the reservation. 4. paymentDate() - Date value for the date of payment. 5. isPaid() - Boolean value to determine if the bill is paid in full. 6. guestID - Reference to a specific guestID. +setpaymentID() +getpaymentID() +setamountPaid() +getamountPaid() +setamountDue() +getamountDue() +setpaymentDate() +getpaymentDate() +isPaid() +setguestID() +getguestID() -paymentID -amountPaid -amountDue -paymentDate -isPaid -guestID Payment Figure 23. Payment Class
  • 31. 28 6.2.3 Reservation Entity The Reservation entity is a domain used to represent information for a reservation. This domain object stores information about a reservation, and is primarily composed of attributes and accessory methods. The class diagram for Reservation is displayed in Figure 24. This entity contains twenty-six methods: 1. int setreservationID() -Sets the unique integer ID representing a specific reservation. 2. int getreservationID() -Returns the unique integer ID representing a specific reservation. 3. setstartDate() - Sets the startDate of the reservation. 4. getstartDate() - Returns the startDate of the reservation. 5. setendDate() - Sets the endDate of the reservation. 6. getendDate() - Returns the endDateof the reservation. 7. settotalNights() - Calculates the total nights of the reservation by subtracting the startDate from the endDate. 8. gettotalNights() - Returns the totalNights of the reservation. 9. setrate() - Sets the daily rate of the reservation. 10. getrate() - Returns the rate of the reservation. 11. setprice() - Sets the price of the reservation of the reservation. 12. getprice() - Returns the price of the reservation. 13. settax() - Sets the tax of the reservation. 14. gettax() - Returns the tax of the reservation. 15. settotalPrice() - Calculates the totalPrice of the reservation by adding the tax to the price. 16. gettotalPrice() - Returns the totalPrice of the reservation. 17. toggleGuaranteed() - Toggles the guaranteed status of the Reservation, and returns the current value. 18. isGuaranteed() - Returns the guaranteed status of the Reservation. 19. setguaranteeDate() - Sets the guarantee date of the reservation.
  • 32. 29 20. getGuaranteeDate() - Returns the guaranteeDate of the reservation. 21. setguestId(int) - Sets the guestID associated with the reservation. 22. getGuestId() - Returns the guestID associated with the reservation. 23. setroomID() - Sets the roomID associated with the reservation. 24. getRoomId() - Returns the roomID associated with the reservation. 25. setpaymentId(i) - Sets the paymentID associated with the reservation. 26. getpaymentId() - Returns the paymentID associated with the reservation. This entity contains thirteen attributes: 1. reservationID - This is an integer ID representing the specific record of a reservation. 2. startDate - This is a date object representing the starting date of a reservation. 3. endDate - This is a date object representing the ending date of a reservation. 4. totalNights - This is an integer representing the total number of nights of a reservation. 5. Rate - Double precision point number representing the dollar amount of the room rate. 6. Price - Double precision point number representing the dollar amount of the room rate multiplied by the totalNights. 7. Tax - Double precision point number representing the local sales tax rate. 8. totalPrice - Double precision point number representing the dollar amount of the room price plus the tax. 9. isGuaranteed - This is a Boolean value representing the guaranteed status of a reservation. This value is determined by a payment or a guarantee date, which guarantees a room’s reservation status. 10. guaranteeDate - This is a date object representing the ending date of guarantee for the reservation. It would be set to the endDate of the reservation if a payment has been made, or to the guarantee date entered for the reservation if no payment has been made. 11. guestID - Reference to the unique guestID. 12. roomID - Integer representing the specific room. 13. paymentID - Integer representing this specific payment.
  • 33. 30 +setreservationID() +getreservationID() +setstartDate() +getstartDate() +setendDate() +getendDate() +settotalNights() +gettotalNights() +setrate() +getrate() +setprice() +getprice() +settax() +gettax() +settotalPrice() +gettotalPrice() +toggleGuaranteed() +isGuaranteed() +setguaranteeDate() +getguaranteeDate() +setguestID() +getguestID() +setroomID() +getroomID() +setpaymentID() +getpaymentID() -reservationID -startDate -endDate -totalNights -rate -price -tax -totalPrice -isGuaranteed -guaranteeDate -guestID -roomID -paymentID Reservation Figure 24. Payment Class 6.2.4 Room Entity The Room entity is a domain object used to represent information for a room. This domain object stores information about a room, and is primarily composed of attributes and accessory methods. The class diagram for Room is displayed in Figure 25. This entity contains six methods: 1. setroomID() - Sets integer value representing a specific room. 2. getroomID() - Returns the value for roomID.
  • 34. 31 3. togglevacancy() - Toggles the vacancy status of a Room, and returns the current value. 4. isVacant() - Returns the current vacancy status of a Room. 5. setroomNumber() - Sets the roomNumber associated with the room. 6. getroomNumber() - Returns the room number associated with the room. This entity contains three attributes: 1. roomID - This is an integer ID that represents a specific room. 2. isVacant - Boolean value specifying if the room is vacant (true) or not (false). 3. roomNumber - Integer value of the room number. +setroomID() +getroomID() +togglevacancy() +isVacant() +setroomNumber() +getroomNumber() -roomID -isVacant -roomNumber Room Figure 25. Room Class 6.2.5 Finances Entity The Finances entity is a domain object that is used to represent financial information for the totality of the establishment. This domain object stores information about a total finances, and is primarily composed of attributes and accessory methods. Figure 26 represents the class diagram for Finances. This entity contains eleven methods: 1. setincome() - Totals all payments. 2. getincome() - Returns the income value. 3. setexpense() - Sets expense amount. 4. getexpense() - Returns expense amount. 5. setexpenseType() - Sets expenseType.
  • 35. 32 6. getexpenseType() - Returns expense amount. 7. expenseAccount() - Decrements money from the establishments account. 8. setexpenseTotal() - Totals all expense objects. 9. getexpenseTotal() - Returns expenseTotal. 10. setprofit() - Calculates the profit amount by subtracting expenseTotal from income. 11. getprofit() - Returns profit amount. This entity contains six attributes: 1. assets - Total amount of money in the establishments account determined by a starting value and accounting for all income and expenses. 2. income - This is a collection of payment objects that represent income. 3. expense - Any money that is debited from the establishments account. 4. expenseType - String value categorizing an expense (ie. Rent, utilities, food, beverage, salaries, maintenance). 5. expenseTotal - Total value of all expenses. 6. profits - Amount of money that is determined by subtracting expenseTotal from income. +setincome() +getincome() +setexpense() +getexpense() +setexpenseType() +getexpenseType() +expenseAccount() +setexpenseTotal() +getexpenseTotal() +setprofit() +getprofit() -assets -income -expense -expenseType -expenseTotal -profits Finances Figure 26. Finances Class