SE Himanshu
SE Himanshu
UNIVERSITY, DWARKA
BATCH 2023-2026
SEMESTER -4
PRACTICAL FILE
SOFTWARE ENGINEERING
3 To create the function-oriented diagram: Data Flow Diagram (DFD) for Hotel
Management System
4 To perform the user’s view analysis for the Hotel Management System: Use
case diagram
5 To draw the structural view diagram for the Hotel Management System: Class
diagram
6 To draw the behavioral view diagram: Activity diagram for Hotel Management
System
7 To perform the behavioral view diagram for the Hotel Management System:
Sequence diagram
The management of a hotel involves numerous complex tasks that must be coordinated
efficiently to provide a high level of service to guests. However, as the hotel business grows
in size and complexity, the manual or outdated systems that were once sufficient can become
inefficient, prone to errors, and time-consuming.
The common problems faced by hotels due to these inefficient systems include:
Given the challenges outlined above, an integrated Hotel Management System (HMS)
becomes essential. The system should:
1. Automate and Streamline Daily Operations: The system should automate key hotel
operations like reservations, check-ins/outs, billing, and communication between
departments. This reduces the burden on staff and ensures more accurate, timely
services to guests.
2. Real-Time Data and Updates: A modern HMS should provide real-time updates on
room availability, guest check-ins, and check-outs. This will help prevent
overbookings and ensure accurate room management.
3. User-Friendly Interface for Both Staff and Guests: The system should be easy to
use for hotel staff. It should be intuitive, minimizing the need for training. For guests,
it should provide options like online booking, mobile check-in, and seamless payment
options.
4. Integrated Financial Management and Billing: The system should generate
accurate bills for guests based on their stay and services used. It should also handle
payments via multiple channels, such as credit cards, online payments, or cash, and
ensure the hotel’s financial records are up-to-date.
5. Efficient Inventory Management: With real-time inventory tracking, the system can
automatically notify the hotel when stocks are running low, enabling timely
reordering. This minimizes waste and ensures resources are always available for guest
needs.
6. Staff Scheduling and Communication: An HMS should enable better coordination
between staff members across departments. The system can help schedule shifts,
assign tasks (like cleaning or room service), and keep staff informed about the needs
of each guest.
7. Data Analytics and Reporting: The system should provide valuable insights for
hotel management, such as occupancy rates, guest preferences, revenue data, and
operational bottlenecks. This data can be used to improve service quality, optimize
pricing strategies, and identify areas for cost-saving.
The Software Requirements Specification (SRS) for a Hotel Management System (HMS)
provides a detailed description of the functional and non-functional requirements for the
system. This document is crucial for the development, testing, and implementation phases of
the software.
1. Introduction
1.1 Purpose
The purpose of this document is to define the software requirements for the development of a
Hotel Management System (HMS). The system will streamline the hotel’s operations by
managing reservations, check-in/check-out processes, billing, room assignments, guest
requests, and staff coordination.
1.2 Scope
The HMS will automate key operations for hotels, such as managing guest reservations,
assigning rooms, processing check-ins/outs, billing, and managing inventory and staff
coordination. It will provide a central system accessible by hotel management, front desk
staff, housekeeping, maintenance, and other stakeholders.
1.4 References
2. Overall Description
2.1 Product Perspective
The Hotel Management System will be a web-based application accessible by hotel staff
through web browsers. The system will consist of several modules, each with a user interface
tailored to different roles (e.g., admin, front desk, housekeeping). The system will be built on
modern technologies, with an emphasis on scalability, security, and real-time data
synchronization.
• Admin: Has full access to system configurations, user management, and reports.
• Front Desk: Manages reservations, check-ins/outs, room assignments, and guest queries.
• Housekeeping: Handles room cleaning schedules and maintains room inventory.
• Maintenance: Monitors and maintains the physical infrastructure of the hotel.
• Guest: Access to booking, checking in/out, and viewing invoice details.
2.4 Constraints
3. Functional Requirements
3.1 Reservation Management
• Requirement 1: The system shall allow guests to make reservations via the front desk or
online platform.
• Requirement 2: The system shall allow users to view available rooms based on the date and
guest preferences.
• Requirement 3: The system shall allow users to cancel or modify existing bookings.
• Requirement 4: The system shall send automatic email/SMS confirmations upon successful
reservation.
3.2 Check-In/Check-Out
• Requirement 1: The system shall allow front desk staff to check in guests by verifying their
identity.
• Requirement 2: The system shall automatically assign rooms based on availability.
• Requirement 3: The system shall process guest check-out and generate a bill for their stay,
including room charges and any additional services.
• Requirement 1: The system shall generate invoices based on room rates and services
utilized by guests.
• Requirement 2: The system shall allow for multiple payment methods (credit card, cash,
mobile payment, etc.).
• Requirement 3: The system shall store payment history and generate receipts for guests.
• Requirement 1: The system shall track inventory levels for room supplies, food, and other
consumables.
• Requirement 2: The system shall provide real-time inventory updates when items are used
(e.g., room service).
• Requirement 3: The system shall notify staff when stock levels are low.
3.5 Staff Management
• Requirement 1: The system shall allow staff scheduling based on availability and workload.
• Requirement 2: The system shall track staff attendance and working hours.
• Requirement 3: The system shall assign tasks to housekeeping and maintenance staff.
• Requirement 1: The system shall generate occupancy reports (daily, weekly, monthly).
• Requirement 2: The system shall generate financial reports including revenue, payments,
and expenses.
• Requirement 3: The system shall provide analytics on guest preferences and trends.
4. Non-Functional Requirements
4.1 Performance Requirements
• The system must support up to 500 concurrent users without significant performance
degradation.
• The system should respond to user actions within 2 seconds.
• The system must encrypt sensitive data such as guest payment information.
• The system must authenticate all users before granting access to the system.
• The system must have role-based access control to restrict access to specific data.
• The system must have an intuitive and easy-to-use interface for all types of users (staff and
guests).
• The system must be responsive and work across multiple devices (PCs, tablets, mobile
phones).
4.4 Reliability
• The system must be available 99.9% of the time, excluding planned maintenance.
• Data backups should be performed daily to prevent loss of data.
4.5 Scalability
• The system should support the addition of new hotels or branches without requiring
significant redesign.
4.6 Maintainability
• The system must be easily maintainable with clear documentation for developers.
• System updates and bug fixes must be easy to implement without downtime.
5. System Models and Diagrams
5.1 Use Case Diagram
• Depicts how different users (admin, front desk staff, housekeeping) interact with the system.
• Describes the flow of data within the system, from guest reservations to billing and
reporting.
• Shows the relationships between different entities, such as guests, rooms, payments, and
staff.
6. Appendices
6.1 Glossary
Definitions of key terms used in the document (e.g., Reservation, Invoice, Admin).
6.2 References
Data Flow Diagram (DFD) for a Hotel Management System (HMS), which illustrates the
flow of data within the system, broken into different levels of abstraction.
At the highest level, the Hotel Management System is depicted as a single process
interacting with external entities.
Entities:
Data Flows:
• Guest → HMS: Sends booking requests, payment information, and personal details.
• HMS → Guest: Sends reservation confirmations, invoices, and room assignments.
• Hotel Staff → HMS: Sends guest information, room availability requests, and billing details.
• HMS → Hotel Staff: Provides room assignments, check-in/check-out data, and reports.
• Payment System → HMS: Sends payment confirmation and updates billing data.
• HMS → Supplier: Sends inventory requirements and supply orders.
• Supplier → HMS: Sends inventory data, product details, and updates.
At this level, the Hotel Management System is broken down into major sub-systems or
modules, each handling specific tasks.
Main Processes:
1. Reservation Management
o Handles booking requests, checks room availability, and sends confirmation or
denial.
o Data Flows:
▪ Guest → Reservation System: Sends booking request.
▪ Reservation System → Guest: Sends booking confirmation.
▪ Reservation System → Room Inventory: Checks room availability.
2. Check-In/Check-Out
o Manages guest check-in, check-out, and updates room status.
o Data Flows:
▪ Guest → Check-In/Check-Out System: Provides ID, booking details.
▪ Check-In/Check-Out → Guest: Room assignment and check-in details.
▪ Check-In/Check-Out → Room Inventory: Updates room status.
▪ Check-In/Check-Out → Billing System: Updates guest’s final bill.
3. Billing and Payments
o Manages the guest's bill, including room charges and additional services, and
processes payments.
o Data Flows:
▪ Check-In/Check-Out → Billing System: Sends guest check-in details.
▪ Billing System → Payment System: Sends payment request.
▪ Payment System → Billing System: Sends payment confirmation.
▪ Billing System → Guest: Sends final invoice and payment receipt.
4. Room Management
o Tracks room status (e.g., available, occupied, under maintenance).
o Data Flows:
▪ Reservation Management → Room Management: Updates room status.
▪ Room Management → Housekeeping: Sends room cleaning requests.
▪ Room Management → Guest: Provides room details upon check-in.
5. Inventory Management
o Manages inventory for supplies such as linens, toiletries, food, and beverages.
o Data Flows:
▪ Supplier → Inventory System: Sends supply information and stock levels.
▪ Inventory System → Housekeeping: Sends stock data for room supplies.
▪ Inventory System → HMS: Notifies low inventory.
6. Staff Coordination
o Manages staff schedules, task assignments, and performance tracking.
o Data Flows:
▪ Hotel Staff → Staff Coordination System: Inputs work shifts and task
requests.
▪ Staff Coordination System → Hotel Staff: Sends staff assignments.
This level would further decompose processes like Reservation Management into more
granular processes such as:
DFD Symbols:
Here’s an outline of the actors and use cases for a typical Hotel Management System:
1. Actors
• Customer: A guest who interacts with the system to book rooms, view room details,
check in/out, etc.
• Hotel Staff: Personnel who manage bookings, check-ins, check-outs, room
availability, and more.
• Admin: The system administrator who manages system settings, user accounts, room
configurations, and overall system settings.
• Housekeeping: Staff responsible for maintaining room cleanliness and updating room
status in the system.
2. Use Cases
• Customer:
o Search for Available Rooms: The customer can search for rooms based on
date, type, and other preferences.
o Book a Room: The customer can make a reservation.
o Check-in: The customer can check-in to the hotel when they arrive.
o Check-out: The customer can check out at the end of their stay.
o View Room Details: The customer can see details about room types, prices,
and facilities.
o Make Payments: The customer can pay for their booking via the system.
• Hotel Staff:
o Manage Bookings: Staff can view, modify, or cancel customer bookings.
o Check-in Customers: Hotel staff check in customers upon arrival.
o Check-out Customers: Hotel staff check out customers and generate bills.
o Assign Rooms: Hotel staff assign rooms to customers during check-in.
• Admin:
o Manage Rooms: Admin can add, update, or remove room details such as
prices, availability, and features.
o Manage Users: Admin can create and manage user accounts (staff, customers,
etc.).
o System Settings: Admin manages the settings for the entire hotel management
system, including policies, payment methods, etc.
• Housekeeping:
o Update Room Status: Housekeeping updates the status of rooms (clean, dirty,
in-progress).
o Update Maintenance Requests: Housekeeping or staff can log maintenance
issues related to rooms (e.g., repairs needed).
4. General Flow:
• Customer's Flow: A customer can search for rooms, book a room, check in, and
check out, all of which are key processes that interact with the system.
• Staff's Flow: Hotel staff manages bookings, check-ins, and check-outs for customers.
• Admin's Flow: Admin has the highest level of control, managing room
configurations, user management, and system settings.
• Housekeeping's Flow: Housekeeping focuses on room maintenance and cleanliness,
ensuring accurate room status updates.
5.TO DRAW THE STRUCTURAL VIEW DIAGRAM
FOR THE HOTEL MANAGEMENT SYSTEM: CLASS
DIAGRAM.
To create a Class Diagram for a Hotel Management System, we'll model the system's static
structure by identifying the classes, their attributes, methods (operations), and the
relationships between them. The class diagram will show how different components of the
hotel system interact with one another.
• Hotel
• Room
• Booking
• Customer
• Staff
• Admin
• Payment
• Housekeeping
• Invoice
• Facility (e.g., WiFi, Gym, Swimming Pool, etc.)
• Attributes:
o hotelName: String
o location: String
o rooms: List
o staff: List
o bookings: List
• Methods:
o addRoom(Room room)
o removeRoom(Room room)
o checkAvailability(Date startDate, Date endDate): boolean
2. Room
• Attributes:
o roomNumber: String
o roomType: String (e.g., Single, Double, Suite)
o price: double
o status: String (e.g., Available, Occupied, Under Maintenance)
o facilities: List
• Methods:
o updateStatus(String status)
o addFacility(Facility facility)
3. Booking
• Attributes:
o bookingID: String
o customer: Customer
o room: Room
o startDate: Date
o endDate: Date
o totalAmount: double
o paymentStatus: String (e.g., Pending, Paid)
• Methods:
o generateInvoice(): Invoice
o updateBookingStatus(String status)
4. Customer
• Attributes:
o customerID: String
o name: String
o email: String
o phoneNumber: String
o address: String
• Methods:
o makeBooking(Booking booking)
o cancelBooking(Booking booking)
5. Staff
• Attributes:
o staffID: String
o name: String
o role: String (e.g., Receptionist, Housekeeper, Manager)
• Methods:
o manageBooking(Booking booking)
o assignRoom(Room room, Customer customer)
6. Admin
• Attributes:
o adminID: String
o name: String
• Methods:
o addRoom(Room room)
o removeRoom(Room room)
o manageUserAccount(User user)
7. Payment
• Attributes:
o paymentID: String
o booking: Booking
o paymentDate: Date
o amount: double
o paymentMethod: String (e.g., Credit Card, Cash)
• Methods:
o processPayment()
o refundPayment()
8. Housekeeping
• Attributes:
o staffID: String
o name: String
o roomAssigned: Room
• Methods:
o updateRoomStatus(Room room, String status)
o reportMaintenance(Room room)
9. Invoice
• Attributes:
o invoiceID: String
o booking: Booking
o amountDue: double
o dateIssued: Date
• Methods:
o generateInvoice()
o updateInvoiceStatus(String status)
10. Facility
• Attributes:
o facilityID: String
o facilityName: String (e.g., WiFi, Swimming Pool)
o facilityType: String (e.g., Free, Paid)
• Methods:
o assignFacility(Room room)
o updateFacilityInfo()
+-------------------+ +------------------+
| Hotel |------| Room |
|-------------------| |------------------|
| - hotelName | | - roomNumber |
| - location | | - roomType |
| - rooms | | - price |
| - staff | | - status |
| - bookings | | - facilities |
+-------------------+ +------------------+
| |
| |
| |
| |
v v
+-------------------+ +--------------------+
| Booking |------| Customer |
|-------------------| |--------------------|
| - bookingID | | - customerID |
| - customer | | - name |
| - room | | - email |
| - startDate | | - phoneNumber |
| - endDate | | - address |
| - totalAmount | +--------------------+
| - paymentStatus | |
+-------------------+ |
| |
v v
+------------------+ +-------------------+
| Payment |------| Admin |
|------------------| |-------------------|
| - paymentID | | - adminID |
| - amount | | - name |
| - method | +-------------------+
+------------------+
|
v
+-------------------+
| Invoice |
|-------------------|
| - invoiceID |
| - amountDue |
| - dateIssued |
+-------------------+
|
v
+------------------+
| Housekeeping |
|------------------|
| - staffID |
| - name |
| - roomAssigned |
+------------------+
|
v
+------------------+
| Facility |
|------------------|
| - facilityID |
| - facilityName |
| - facilityType |
+------------------+
5. Key Relationships:
This class diagram represents the main classes and their relationships in a hotel management
system. It serves as the structural backbone of the system and can be used to guide the
development process.
6.TO DRAW THE BEHAVIORAL VIEW DIAGRAM :
ACTIVITY DIAGRAM FOR HOTEL MANAGEMENT
SYSTEM.
To create an Activity Diagram for a Hotel Management System, we need to visualize the
dynamic flow of activities or processes that the system supports, focusing on the various
workflows or scenarios.
Here’s a breakdown of the main activities involved in key workflows for the Hotel
Management System, such as the Room Booking Process and Customer Check-in/Check-
out Process.
1. Key Activities:
The Room Booking process describes the activities a customer might engage in when
booking a room in a hotel.
Flow of Activities:
1. Start
2. Search for Rooms: The customer searches for available rooms based on their preferences.
3. Select Room: Customer selects a room from the available options.
4. Make Booking: The customer proceeds with the booking by entering details (dates,
customer info, etc.).
5. Process Payment: The system processes the payment through an available payment
method.
6. Confirm Booking: Once the payment is confirmed, a booking confirmation is sent to the
customer.
7. End
Activity Diagram for Room Booking:
+------------------+
| Start |
+------------------+
|
v
+-----------------------+
| Search for Available |
| Rooms |
+-----------------------+
|
v
+-----------------------+
| Select Room |
+-----------------------+
|
v
+-----------------------+
| Make Booking |
+-----------------------+
|
v
+-----------------------+
| Process Payment |
+-----------------------+
|
v
+-----------------------+
| Confirm Booking |
+-----------------------+
|
v
+------------------+
| End |
+------------------+
This workflow involves the customer arriving at the hotel, checking in, staying, and then
checking out.
Flow of Activities:
1. Start
2. Customer Arrival: The customer arrives at the hotel.
3. Verify Booking: The hotel staff checks the booking details.
4. Assign Room: The staff assigns the customer a room.
5. Check-in: The customer checks in to the room.
6. Stay Period: The customer stays in the room.
7. Check-out: At the end of their stay, the customer checks out.
8. Generate Invoice: An invoice is generated for the customer.
9. Process Payment: The customer makes payment for the stay.
10. End
Activity Diagram for Check-in/Check-out:
+------------------+
| Start |
+------------------+
|
v
+-----------------------+
| Customer Arrival |
+-----------------------+
|
v
+-----------------------+
| Verify Booking |
+-----------------------+
|
v
+-----------------------+
| Assign Room |
+-----------------------+
|
v
+-----------------------+
| Check-in |
+-----------------------+
|
v
+-----------------------+
| Stay Period |
+-----------------------+
|
v
+-----------------------+
| Check-out |
+-----------------------+
|
v
+-----------------------+
| Generate Invoice |
+-----------------------+
|
v
+-----------------------+
| Process Payment |
+-----------------------+
|
v
+------------------+
| End |
+------------------+
In this scenario, the Customer interacts with the Hotel System to search for available rooms,
make a booking, and process the payment.
Participants (Objects):
• Customer
• Hotel System
• Room
• Payment System
• Booking System
Flow of Events:
1. Customer initiates the Search for Rooms with the Hotel System.
2. Hotel System queries the Room database to check availability.
3. The Hotel System returns available rooms to the Customer.
4. Customer selects a room and provides booking details.
5. Hotel System creates a Booking entry in the Booking System.
6. Hotel System sends booking details to the Payment System.
7. Customer enters payment information.
8. Payment System processes the payment.
9. Payment System confirms the payment to the Hotel System.
10. Hotel System sends a confirmation to the Customer.
This diagram depicts the flow of actions involved when a Customer checks in and checks
out of the hotel.
Participants (Objects):
• Customer
• Hotel Reception System
• Room
• Booking System
• Invoice System
• Payment System
Flow of Events:
• Participants (Objects): Represent the entities involved in the interaction (e.g., Customer,
Room, Booking System).
• Messages (Arrows): Represent the interactions between the participants. They can
represent method calls, data exchanges, or events.
• Activation Bars: Represent the period during which a participant is active and processing a
task.
• Return Messages: Indicated by dashed arrows, these show the result or return value after
the execution of a message.
8.DRAW THE COMPONENT DIAGRAM FOR HOTEL
MANAGEMENT SYSTEM.
A Component Diagram is used to represent the components or modules of a system and
their relationships. In a Hotel Management System, the components might include various
parts like the Booking System, Payment System, User Interface, Database, and more. This
diagram helps in understanding how different components work together to achieve the
overall functionality of the system.
Here’s a breakdown of the key components for the Hotel Management System:
In a Hotel Management System, the deployment diagram could represent the interaction
between various hardware nodes (servers, user devices, databases) and the software
components (booking system, payment system, etc.).
1. Web Server:
o Hosts the Hotel Management System (web application).
o Serves the User Interface (UI) for customers and admins.
2. Application Server:
o Runs the core business logic and handles the Booking System, Payment
System, and Notification System.
3. Database Server:
o Stores the Hotel Management System’s data, including customer profiles,
booking records, payment details, and room information.
4. Client Devices:
o Customer devices (e.g., mobile, laptop, or tablet) that interact with the system
via the User Interface.
o Admin devices to manage bookings, rooms, and users.
Deployment Diagram
+-------------------+ +--------------------+ +-------------------
--+
| Client Devices | | Web Server | | Database Server
|
| (Customer/Laptop)| | (Hotel Website) | | (SQL Database)
|
+-------------------+ +--------------------+ +-------------------
--+
| | |
| | |
v v v
+------------------+ +--------------------+ +------------------
--+
| User Interface | <--> | Application | <--> | Database
|
| (Booking Page) | | Server | | (Bookings,
|
| (Admin Page) | | (Booking, Payment | | Customers,
Rooms)|
+------------------+ | Invoice, etc.) | +------------------
--+
+--------------------+
1. Customer:
o Attributes: CustomerID, Name, Email, Phone, Address, DOB
2. Room:
o Attributes: RoomID, RoomType, Price, RoomStatus, Floor
3. Booking:
o Attributes: BookingID, CustomerID (foreign key), RoomID (foreign key),
BookingDate, CheckInDate, CheckOutDate
4. Payment:
o Attributes: PaymentID, BookingID (foreign key), Amount, PaymentDate,
PaymentMethod, PaymentStatus
5. Invoice:
o Attributes: InvoiceID, BookingID (foreign key), TotalAmount, InvoiceDate
ER Diagram for Hotel Management System
Below is the textual representation of the ER Diagram for the Hotel Management System:
1. Customer:
o The Customer entity holds information about hotel guests, such as name,
email, phone number, and address.
o The Customer entity has a one-to-many relationship with the Booking entity,
as one customer can make multiple bookings.
2. Booking:
o The Booking entity represents the reservation made by the customer. It
includes details like the BookingID, CustomerID (as a foreign key from the
Customer entity), the RoomID (foreign key from the Room entity), check-in
and check-out dates, and the booking date.
o The Booking entity has a many-to-one relationship with the Room entity
(since multiple bookings can involve the same room) and a many-to-one
relationship with Payment and Invoice.
3. Room:
o The Room entity contains information about the room itself, such as room
type, price, availability (status), and the floor it's located on.
o The Room entity has a one-to-many relationship with the Booking entity
because a room can be booked multiple times.
4. Payment:
o The Payment entity records the payment details, including the amount paid,
payment date, method (e.g., credit card, cash), and payment status.
o Each payment corresponds to a Booking, forming a many-to-one relationship
between Payment and Booking.
5. Invoice:
o The Invoice entity represents the invoice generated for a booking. It includes
details like total amount and invoice date.
o Each Invoice is related to a specific Booking (one-to-one relationship).
Relationships: