Hotel Management System
ANALYSIS AND DESIGN MODELS
prepared by Team 1
Sandra BusikSusan Le
Peter LockwoodPradeep Miglani
Reita Sikka Kai Zhang
1
TABLE OF CONTENTS
1 ANALYSIS MODEL.......................................................................................................................................................................................................................................................3
1.1 STATIC MODEL......................................................................................................................................................................................................................................................31.2 ATTRIBUTES OF THE CLASSES ON THE STATIC MODEL............................................................................................................................................................................41.3 STATE CHARTS......................................................................................................................................................................................................................................................51.4 COLLABORATION DIAGRAMS (ONE FOR EACH USE CASE) & MESSAGE SEQUENCE DESCRIPTIONS....................................................................................................8
2 DESIGN MODEL............................................................................................................................................................................................................................................................8
2.1 CONSOLIDATED COLLABORATION DIAGRAMS & MESSAGE SEQUENCE DESCRIPTIONS................................................................................................................82.1.1 CONSOLIDATED COLLABORATION DIAGRAMS............................................................................................................................................................................................92.1.2 MESSAGE SEQUENCE DESCRIPTIONS FOR CONSOLIDATED COLABORATION DIAGRAMS...............................................................................................................11
2.2 DISTRIBUTED SOFTWARE ARCHITECTURE DOCUMENT.........................................................................................................................................................................132.2.1 DESCRIPTION OF HOW THE SYSTEM IS DECOMPOSED INTO COMPONENT-BASED SUBSYSTEMS & CONCURRENT COLLABORATION DIAGRAM...............132.2.2 DESIGN OF RELATIONAL DESIGN DATABASE.............................................................................................................................................................................................15
2.3 SUBSYSTEM SOFTWARE ARCHITECTURE....................................................................................................................................................................................................162.3.1 OVERVIEW DESCRIPTION OF SUBSYSTEM SOFTWARE ARCHITECTURE...............................................................................................................................................162.3.2 TASK ARCHITECTURE......................................................................................................................................................................................................................................17
2.4 INFORMATION HIDING CLASSES....................................................................................................................................................................................................................19
2
1 ANALYSIS MODEL
1.1 STATIC MODEL
Customer
HMS Interface
Administration
Employee
Discount
Bill/Payment
Report
Scheduler
HMS
Reservation
Room
processes
updates
creates/modifies/deletesprocesses
has
processes
processes
generates
processes
completes
bills cancels
3
1.2 ATTRIBUTES OF THE CLASSES ON THE STATIC MODEL
CustomercustomerIDlastNamemiddleNameaddresscitystatezipfirstNameconfirmationNumber
HMS InterfacecustomerIDlastNamefirstNamemiddleNamediscountTypediscountAmountconfirmationNumberreservationIDroomNumberfoodItemsfoodAmountsdiscountTypediscountAmount
DiscountcustomerIDreservationIDdiscountTypediscountAmount
Bill/PaymentcustomerIDreservationIDpaymentAmountcreditAmountReport
reportType
SchedulercustomerIDreservationIDroomRatechargeRoomtimeChargeForNoShowtimeChargeForAdditionalDaytimeChargeForGuaranteedRoom
HMSemployeeIDemployeeLogInStatususerIDpassword
AdministrationemployeeIDitemIDroomNumber
EmployeeemployeeIDuserIDpassword
ReservationreservationIDcustomerIDroomNumberroomAvailStatusroomStatus
RoomroomNumberroomStatus
MenumenuItem
DatabasesqlString
4
1.3 STATE CHARTS
Bill/Payment Statechart
Recieve & add item
Generate BillAdjust Bill
Record Payment
Open
Generated
5
Room State Chart
Vacant
ReservedOccupiedRoom number entered when customer check in
Rm No entered when customer checks in
Five hrs. past check in
Customer check out
Rm. no. entered
RROOMoom Statechart
6
Scheduler Running
Retrieve Time
Billing Additional DayTime is 1:00 p.m.
Billing Guaranteed Reservations
Time is 6:30 p.m.
Cancelling Non-guaranteed Reservations
Time is 6:00 p.m.
Billing Complete
Billing CompleteReservations Canceled
System Started
System Stopped
Scheduler Statechart
7
1.4 COLLABORATION DIAGRAMS (one for each use case) & MESSAGE SEQUENCE DESCRIPTIONSWe have done individual collaboration diagrams (one for each use case). Per Dr. Wu, they are not required to be turned in. Please see Consolidated Collaboration Diagrams and Message Descriptions for Consolidated Collaboration Diagrams in section 2.1.1 and 2.1.2, respectively.
2 DESIGN MODEL
2.1 CONSOLIDATED COLLABORATION DIAGRAMS & MESSAGE SEQUENCE DESCRIPTIONS
8
2.1.1 CONSOLIDATED COLLABORATION DIAGRAMS
: Reservation
: Bill /Payment
: Report
: Scheduler
: Customer
: HotelDatabase
: <<External Timer>> Digital Clock
: Room
: Discount
: CustomerServiceRep
: HMSInterface<<user interface>>
CONSOLIDATED COLLABORATION DIAGRAM FOR RESERVATION & BOOKING SYSTEM
: Manager : Room/Food Services System
<<subsystem>>
Data returned
Update/Retrieve dataApply Discount
Create/Update/Retriev e Customer Inf o
Customer Inf o
Av ailability Status
CheckRoomAvailability (Ty pe, Dates)Set RoomAvailabi li ty
Generate BillCharge BillCredit Bill
Update Bill/Pay ment Data
Get Room/FoodService Bil l DataRoom/FoodService Bill
Get Pending CheckOut Data
Pending CheckOutData returned
Cancel Non-Guaranteed reserv ation
Get Reserv ation Data
Reserv ation Data returned
Bill No-ShowBill Additional Day
Bill Guaranteed Reserv ation
Update/Retrieve Customer Inf oCustomer Inf o
Scheduler Ev ents
Update / Retrieve Room Availabi li ty Info
Room Availabil ity Info
Get Discount
Make Pay ment, Credit Pay ment
Pay ment made, Pay ment credited
Create/Retrieve/Update Reserv ation, CheckIn, CheckOut (Trans Data)
Reserv ation Inf o
GenerateReport (PendingCheckOutRpt,
ReportParameters)
Report Generated
CSR InputDisplay Inf o
Manager Input
Display Info
9
: HMSInterface<<user interface>>
: Manager
: Report
: Administration
: HotelDatabase
: Employee
: Room
CONSOLIDATED COLLABORATION DIAGRAM FOR MANAGEMENT SERVICES SYSTEM
GenerateReport (ReportType, ReportParameters)
Report Generated
Administer User Profi leAdminister Info on Room & Rate
Manager Input Display Info
Get Report Data
Report Data
Add/Modify/Delete Info on Room & Rate
Add/Modify/Delete Employee Profile
Update/Get Employee Info
Employee Info
Update/Get Info on Room & Rate
Info on Room & Rate
10
2.1.2 MESSAGE SEQUENCE DESCRIPTIONS FOR CONSOLIDATED COLABORATION DIAGRAMS
Message Sequence Description for Consolidated Collaboration Diagram of Reservation and Booking System
The message sequence description below addresses the messages on the Consolidated Collaboration Diagram for Reservation and Booking System.
CSR or Manager actor inputs screen selection and information to HMS Interface. HMS Interface sends the CSR's or Manager's reservation & booking transaction inputs to Reservation. Reservation sends a Retrieve Customer Info request along with customer's name to Customer to search for the customer record.
If the customer record is already in the system, Customer sends Customer Info to Reservation. Reservation sends Update Customer Info request along with updated info to Customer.
If the customer record is not yet in the system, Reservation sends Create Customer Info request along with customer info to Customer to create a customer record.
Customer sends Add/Update/Retrieve Customer Info message to HotelDatabase. Reservation sends a Check Room Availability request along with information on room type, check-in date, check-out date to Room to search for a
vacant room. Room sends a Retrieve Room Availability request to HotelDatabase to get room availability information. HotelDatabase sends a Room Availability Info response to Room. Room sends Availability Status to Reservation. Reservation sends an Apply Discount request to Discount. Discount sends Get Discount message to HotelDatabase to obtain discount data. Reservation sends an Update/Retrieve Data request to HotelDatabase to update/retrieve reservation&booking data, and HotelDatabase sends
reservation&booking data to Reservation. Reservation sends a Generate Bill, Charge Bill (or Credit Bill) request along with balance due information to Bill/Payment.
Bill/Payment sends Get Room/FoodService Bill Data message to Room/Food Services System, and Room/Food Services System sends Room/FoodService Bill Data to Bill/Payment.
Timer sends Scheduler Events to Scheduler. Scheduler sends a Get Reservation Data request to HotelDatabase. HotelDatabase returns Reservation Data to Scheduler. Scheduler sends a Cancel Non-Guaranteed Reservation request to Reservation. Scheduler sends Bill No-Show, Bill Additional Day, Bill GuaranteedReservation request to Bill/Payment.
HMS Interface sends Make Payment (or Credit Payment) message along with customer's payment information to Bill/Payment.
11
Bill/Payment sends a Payment Made (or Payment Credited) acknowledgment message to HMSInterface. Bill/Payment sends an Update Bill/Payment request to HotelDatabase.
HMS Interface sends GenerateReport request along with ReportType, ReportParameters to Report. Report sends Get Pending Checkout Data message to HotelDatabase. HotelDatabase sends Pending Checkout Data to Report. Report sends Report generated to HMSInterface.
HMSInterface sends DisplayInfo message to display information to CSR or Manager actor.
Message Sequence Description for Consolidated Collaboration Diagram of Management Services System
The message sequence description below addresses the messages on the Consolidated Collaboration Diagram for Management Services System.
Manager actor inputs screen selection and information to HMS Interface. HMS Interface sends Administer User Profile (or Administer Info on Room & Rate) message along with the information inputs to Administration. Administration sends a Add/Modify/Delete Employee Profile request along with employee information inputted to Employee. Employee sends an Update/Get Employee Info request to HotelDatabase. HotelDatabase sends an Employee Info response to Employee.
Administration sends a Add/Modify/Delete Info on Room & Rate request along with room information inputted to Room. Room sends an Update/Get info on Room & Rate request to HotelDatabase. HotelDatabase sends an Info on Room & Rate response to Room.
HMS Interface sends GenerateReport request along with ReportType, ReportParameters to Report. Report sends Get Report Data message to HotelDatabase. HotelDatabase sends Report Data to Report. Report sends Report generated to HMSInterface.
HMSInterface sends DisplayInfo message to display information to Manager actor.
12
2.2 DISTRIBUTED SOFTWARE ARCHITECTURE DOCUMENT
2.2.1 DESCRIPTION OF HOW THE SYSTEM IS DECOMPOSED INTO COMPONENT-BASED SUBSYSTEMS & CONCURRENT COLLABORATION DIAGRAMAs shown on the Concurrent Collaboration Diagram below, the subsystems consist of a Reservation and Booking subsystem, a Room and Food
Services subsystem, and a Management Services subsystem. These subsystems were determined through the use-case-based collaboration diagrams. The objects in the use-case-based collaboration diagrams that communicate frequently with each other, are related to each other, and have high coupling were placed in the same subsystem. Each of these subsystems also performs a major function, which is relatively independent of the functionality provided by the other subsystems. These subsystems can be allocated to a separate node in the distributed environment or can be executed on the same node as other subsystems. These three subsystems are composite subsystems because they all reside at the same location. They all have localized autonomy. Each subsystem controls a given aspect of the system. They encapsulate the objects they contain. The communication between the three subsystems is loosely coupled asynchronous message communication. The Hotel Management System component encompasses the three subsystems. The Hotel Management System is also a composite system. It also encapsulates the objects it contains. All of these components are logical and physical containers.
Concurrent Collaboration Diagram Documentation
The Hotel Management System contains three subsystems. These are Reservation and Booking, Room and Food Services, and Management Services. The Reservation and Booking subsystem encompasses customer check in, check out, room reservation, billing for the customers' stay, and room availability. The Room and Food Services subsystem allows the customer service representative to create the customers' food order and will generate a bill for the order. The Management Services subsystem deals with the maintenance of the hotel services. This subsystem allows management to add, modify, and delete information on rooms and rates and food menu items and prices. Management Services also may administer new employee user profiles for the HMS. The managers may delete, modify, and add employee profiles. This subsystem will also generate reports on these uses.
The Hotel Management System Interface will allow the users; Managers and customer service representatives to interact with the system. The users will be able to administer Reservation & Booking services, Room & Food services, and Management services (for management only).
The external output device, the printer, is not part of the software to be created. The computers in the hotel will have printers available. The report on pending checkouts and the bill data generated from the Reservation & Booking subsystem will be able to be printed. The reports of all subsystem data from the Management Services subsystem will be able to be printed. The bill generated from the Room & Food Services subsystem will be able to be printed.
Concurrent Collaboration Diagram below
13
:Room & Food Services
<<subsystem>>:Reservation &
Booking
<<subsystem>>
:Management Services
<<subsystem>>
:Hotel Management System<<system>>
:Printer<<external output device>>
:Hotel Management System Interface
<<user interface>>
Concurrent Collaboration Diagram
menu item, price
bill generated
room & customer info
items added to cost
report pending checkout
bill data generated
reports of all subsystems' data
HMS data requested
HMS request
CONCURRENT COLLABORATION DIAGRAM
14
2.2.2 DESIGN OF RELATIONAL DESIGN DATABASE
15
2.3 SUBSYSTEM SOFTWARE ARCHITECTURE
2.3.1 OVERVIEW DESCRIPTION OF SUBSYSTEM SOFTWARE ARCHITECTURE
The Hotel Management System is functionally decomposed into the Reservations and Management subsystems. This section describes the criteria used to determine which objects are active and which are information-hiding classes. Active objects execute concurrently and run in their own thread. The active objects are modeled as tasks and the other objects are modeled as information hiding classes. A collaboration diagram is given for each subsystem. The objects having the thicker, bolded borders are tasks. In the Information Hiding Classes Diagram, each class has been given a <<stereotype>> to reflect the type of class being shown. Here are the criteria used to determine which objects in each subsystem are active.
Keep design simple by not having too many tasks Objects that execute concurrently can be made into tasks Identify user interface objects
o HMS Interface Identify device interfaces
o None, other than standard i/o (keyboard, mouse, monitor, and printer) Identify system interfaces
o Room and Food Service Systemo Reservation and Management subsystems
Identify entity objectso See Information Hiding Classes Diagram
Identify timer objectso Scheduler
Identify state dependent control objectso No state dependent control objects that need to run in their own thread
Identify coordinator objectso HotelDatabase object coordinates access to the database
Identify business logic objectso The only business logic object in this stand-alone system is the Reservation object. This object will not be accessed concurrently, so it
does not need to run in its own thread. Each client will have its own instance of the Reservation object. Identify algorithm objects
o No substantial algorithms used in the problem domain
16
2.3.2 TASK ARCHITECTURE
: Reservation
: Bill/Payment
: Report
<<Periodic>> : Scheduler
: Customer
: Room
: Discount
: Customer ServiceRep
<<User Interface>> : HMSInterface
TASK ARCHITECTURE DIAGRAM FOR RESERVATION & BOOKING SYSTEM
: Manager
Generate BillCharge BillCreditBill
Data returned
Update/Retrieve dataApply Discount
Create/Update/Retrieve Customer Info
Customer Info
CheckRoomAvailability (Type, Dates)Set Room Availability
Availability Status
Update Bill/Payment
Get Pending CheckOut Data
Pending CheckOutData
Bill No-ShowBill Additional Day
Bill GuaranteedReservation
Cancel Non-Guaranteed Reservation
Get Reservation Data
Reservation Data returned
Update/Retrieve Customer InfoCustomer Info
Timer Events
Update / Retrieve Room Availability
Room Availability Info
Get Discount
Make Payment, Credit Payment
Payment made, Payment credited
Create/Retrieve/Update Reservation, CheckIn, CheckOut (Trans Data)
Reservation Info
GenerateReport (PendingCheckOutRpt, ReportParameters)
Report Generated
CSR InputDisplay Info Manager Input
Display Info
<<External Timer>> : DigitalClock
<<Subsystem>> : FoodService
Generate Bill
Bill Data returned
<<Access DB>> : HotelDatabase
ODBC
ODBC
<<Coordinator>> : HotelDatabase
17
: Manager
: Report
: Administration
: Room
TASK ARCHITECTURE DIAGRAM FOR MANAGEMENT SERVICES SYSTEM
Administer User ProfileAdminister Menu Item & Price
Administer Info on Room & Rate
GenerateReport (ReportType, ReportParameters)
Report Generated
Manager Input Display Info
Get Report Data
Report Data
Add/Modify/Delete Info on Room & Rate
Add/Modify/Delete Employee Profile
Update/Get Info on Room & Rate
Info on Room & Rate
: Employee
Update/Get Employee Info
Employee Info
<<Coordinator>> : HotelDatabase
<<User Interface>> : HMSInterface
<<Access DB>> : HotelDatabase
ODBC
ODBC
18
2.4 INFORMATION HIDING CLASSES
19
CustomercustomerID : int = 0lastName : string = ""middleName : string = ""address : string = ""city : string = ""state : string = ""zip : string = ""firstName : string = ""confirmationNumber : int = 0
createCustomer()modifyCustomer()deleteCustomer()
<<entity>>HMS Interface
customerID : int = 0lastName : string = ""firstName : string = ""middleName : string = ""discountType : string = ""discountAmount : int = 0confirmationNumber : int = 0reservationID : int = 0roomNumber : int = 0foodItems : Vector = 0foodAmounts : Vector = 0discountType : string = ""discountAmount : int = ""
doCheckin()doCheckout()createReservation()modifyReservation()deleteReservation()applyDiscount()removeDiscount()createOrder()modifyOrder()deleteOrder()applyDiscount()removeDiscount()
<<User Interface>>
DiscountcustomerID : int = 0reservationID : int = 0discountType : string = ""discountAmount : int = 0
applyDiscount()removeDiscount()
<<entity>>
Bill/PaymentcustomerID : int = 0reservationID : int = 0paymentAmount : int = 0creditAmount : int = 0
makePayment()generateBill()chargeBill()creditBill()creditPayment()
<<entity>>
ReportreportType : string = ""
generateReport()
<<entity>>
SchedulercustomerID : int = 0reservationID : int = 0roomRate : int = 0chargeRoom : boolean = FalsetimeChargeForNoShow : string = ""timeChargeForAdditionalDay : string = ""timeChargeForGuaranteedRoom : string = ""
cancelNonGuarRes()billGuarRoom()billAddtlDay()billNoShows()
<<control>>
HMSemployeeID : int = 0employeeLogInStatus : boolean = falseuserID : string = ""password : string = ""
login()logout()
<<entity>>
AdministrationemployeeID : int = 0itemID : int = 0roomNumber : int = 0
administerUserProfile()administerFoodService()administerHotelSystem()
<<entity>>
EmployeeemployeeID : int = 0userID : string = ""password : string = ""
login()
<<entity>>
ReservationreservationID : int = 0customerID : int = 0roomNumber : int = 0roomAvailStatus : string = ""roomStatus : string = ""
createReservation()modifyReservation()deleteReservation()checkRoomAvailability()doCheckout()generateBill()assignRoom()doCheckin()
<<entity>>
RoomroomNumber : int = 0roomStatus : string = ""
changeRoomStatus()
<<entity>>
DatabasesqlString : string = ""
update()retrieve()createConnection()close()
<<Coordinator>>
20
21