Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh ngành du lịch và dịch vụ lưu trú ngày càng phát triển, nhu cầu đi lại, công tác dài ngày, nghỉ dưỡng và yêu cầu về chất lượng phục vụ của khách hàng gia tăng nhanh chóng. Để nâng cao chất lượng quản lý, tối ưu hóa chi phí vận hành và duy trì năng lực cạnh tranh trên thị trường, việc ứng dụng công nghệ thông tin vào công tác quản trị cơ sở dữ liệu và tự động hóa quy trình nghiệp vụ trở thành yêu cầu thiết yếu đối với các cơ sở kinh doanh lưu trú.

Khảo sát thực tế tại Khách sạn Katanat (địa chỉ: 82 Bình Hưng Hòa, quận Tân Bình, TP. Hồ Chí Minh) cho thấy cơ sở này có quy mô 30 phòng ngủ (được phân loại thành phòng đơn, phòng đôi và phòng VIP) đạt tiêu chuẩn 3 sao cùng nhiều dịch vụ bổ trợ như thuê xe, giặt ủi, đổi ngoại tệ và đưa đón sân bay. Trước khi triển khai đề tài, khách sạn vẫn duy trì phương thức quản trị truyền thống bằng sổ sách giấy tờ kết hợp bảng tính Microsoft Excel. Phương thức vận hành thủ công này bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Xử lý thủ tục đặt phòng, đăng ký nhận phòng và trả phòng tiêu tốn nhiều thời gian.
  • Khó kiểm soát chính xác trạng thái phòng (phòng trống, phòng đang sử dụng, phòng đang dọn dẹp hoặc hư hỏng).
  • Dễ dẫn đến sai sót, thất lạc dữ liệu khách hàng, phiếu đăng ký dịch vụ và hóa đơn thanh toán, gây nguy cơ thất thoát doanh thu.
  • Khó khăn trong việc thống kê lượt khách, thời lượng lưu trú và theo dõi hiệu suất làm việc của nhân viên.

Trước thực trạng đó, ban quản lý khách sạn đặt ra yêu cầu xây dựng một phần mềm quản lý chuyên dụng nhằm giải quyết triệt để bài toán vận hành. Đề tài "Thiết kế và xây dựng phần mềm quản lý khách sạn" do nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Sài Gòn thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Lê Thanh Trúc và Nguyễn Thanh Phước, tập trung vào hai mục tiêu nghiên cứu cụ thể:

  1. Quản lý thông tin nhanh gọn, chính xác khi khách hàng thực hiện các thao tác đặt phòng, nhận phòng, trả phòng và sử dụng các dịch vụ bổ trợ.
  2. Thống kê đầy đủ, trực quan các thông tin và chỉ số liên quan đến hoạt động vận hành, kinh doanh của khách sạn.

Phạm vi và đối tượng nghiên cứu:

  • Không gian nghiên cứu: Khảo sát nghiệp vụ và thực nghiệm dữ liệu tại Khách sạn Katanat, TP. Hồ Chí Minh.
  • Thời gian thực hiện: Tháng 11 năm 2023.
  • Phạm vi kỹ thuật: Thiết kế phần mềm ứng dụng bằng ngôn ngữ Java, xây dựng và quản trị cơ sở dữ liệu trên hệ quản trị SQL Server (đồng thời xem xét tích hợp công nghệ MySQL/XAMPP).
  • Ý nghĩa thực tiễn: Hệ thống giúp tự động hóa nghiệp vụ quản lý đặt phòng, nâng cao hiệu quả tài chính và nhân sự, tối ưu hóa tỷ lệ lấp đầy phòng, bảo mật thông tin khách hàng và nâng cao năng lực phục vụ chuyên nghiệp cho cơ sở lưu trú.

Cơ sở lý thuyết và phương pháp

Đề tài áp dụng các lý thuyết quy chuẩn trong quy trình công nghệ phần mềm và hệ thống thông tin quản lý, bao gồm:

  • Mô hình quy trình phát triển phần mềm Thác nước (Waterfall Model): Dự án tổ chức quản lý vòng đời phát triển phần mềm theo tiến trình tuần tự gồm 6 giai đoạn nối tiếp: Thu thập yêu cầu $\rightarrow$ Thiết kế hệ thống $\rightarrow$ Lập trình $\rightarrow$ Kiểm thử $\rightarrow$ Triển khai $\rightarrow$ Bảo trì. Mô hình này phù hợp với các dự án có phạm vi xác định rõ ràng, yêu cầu đầu vào - đầu ra minh bạch, thuận lợi cho việc kiểm soát tiến độ và lập tài liệu.
  • Kiến trúc phân lớp (3-Tier Architecture): Hệ thống được cấu trúc thành ba tầng tách biệt nhằm đảm bảo tính module hóa, dễ bảo trì và mở rộng:
    • Lớp giao diện (GUI - View): Tiếp nhận thao tác từ người dùng và hiển thị thông tin xử lý.
    • Lớp xử lý nghiệp vụ (BUS - Business Logic Layer): Tiếp nhận yêu cầu từ GUI, thực thi các thuật toán, kiểm tra tính hợp lệ của dữ liệu nghiệp vụ và chuyển tiếp dữ liệu xuống tầng DAO.
    • Lớp truy cập dữ liệu (DAO - Data Access Object Layer): Trực tiếp thực thi các câu lệnh truy vấn đọc/ghi cơ sở dữ liệu.
    • Các gói phụ trợ bao gồm: DTO (chứa các đối tượng truyền tải dữ liệu), Images (lưu trữ biểu tượng và hình ảnh giao diện), FileJar (lưu trữ các thư viện ngoài).

Phương pháp nghiên cứu thực tế:

  • Phương pháp khảo sát thực tế: Thực hiện phỏng vấn trực tiếp vào ngày 06/11/2023 giữa đại diện nhóm nghiên cứu (Lê Chánh Huy) và Quản lý Khách sạn Katanat (Nguyễn Văn Huy), kết hợp quan sát quy trình làm việc thực tế tại cơ sở để ghi nhận các quy định về đặt phòng, khung giờ nhận/trả phòng và tính phụ phí.
  • Phương pháp nghiên cứu tài liệu: Nghiên cứu các tài liệu chuyên ngành về quản lý khách sạn, cú pháp ngôn ngữ SQL và tài liệu kỹ thuật về hệ quản trị cơ sở dữ liệu SQL Server.
  • Phương pháp thực nghiệm: Phân tích quy trình nghiệp vụ, chuyển đổi mô hình thực thể liên kết (ERD) sang lược đồ quan hệ và cài đặt dữ liệu thực tế vào hệ quản trị SQL Server.

Nội dung chính theo từng chương

Tài liệu đặc tả yêu cầu phần mềm

Chương này tập hợp kết quả điều tra hiện trạng, xác định yêu cầu nghiệp vụ và xây dựng các tiêu chuẩn kỹ thuật cho hệ thống:

Kết quả khảo sát quy tắc nghiệp vụ tại Khách sạn Katanat:

  • Phương thức đặt phòng: Tiếp nhận qua 2 kênh gồm gọi điện hotline (0237.99999 – 0913 19 3368) hoặc đăng ký trực tiếp tại quầy lễ tân. Hệ thống hỗ trợ một khách hàng có thể đặt và thanh toán nhiều phòng cùng lúc.
  • Quy định thời gian nhận/trả phòng và phụ phí trễ: Khung giờ nhận phòng chuẩn là 14:00 và giờ trả phòng chuẩn là 12:00 hàng ngày. Phụ phí trả phòng trễ được áp dụng theo bảng biểu giá niêm yết:
Khung thời gian trả phòng trễ Mức phụ phí áp dụng
Từ 14:00 đến 15:00 Tính thêm 30% giá phòng
Từ sau 15:00 đến 18:00 Tính thêm 50% giá phòng
Sau 18:00 Tính thêm 100% giá phòng (tương đương 1 ngày lưu trú)

Đặc tả yêu cầu phi chức năng: Hệ thống thiết lập 9 tiêu chuẩn chất lượng gồm: Tính dễ sử dụng (Usability), Hiệu suất và đáp ứng nhanh (Performance and Responsiveness), Tính bảo mật (Security qua mã hóa và phân quyền), Khả năng mở rộng (Scalability), Tính tương thích (Compatibility), Độ tin cậy và phục hồi (Reliability), Dễ bảo trì (Maintainability), Tính linh hoạt (Flexibility), và Tuân thủ pháp luật, tiêu chuẩn ngành.

Phân loại đối tượng người dùng và yêu cầu chức năng: Hệ thống phân quyền cho 3 nhóm tác tử chính (Admin, Quản lý, Lễ tân) với các nhóm chức năng cốt lõi:

  • Quản lý đặt phòng: Tạo phiếu thuê, hủy/sửa phiếu, cập nhật dịch vụ phát sinh, tính tiền theo phòng đơn lẻ hoặc thanh toán gộp toàn bộ các phòng của khách.
  • Quản lý khách hàng: Lưu trữ thông tin cá nhân (Họ tên, CCCD, Địa chỉ, SĐT, Ngày sinh, Giới tính), thêm mới, tra cứu và điều chỉnh dữ liệu.
  • Quản lý dịch vụ & Khuyến mãi: Quản lý danh mục dịch vụ bổ trợ, cấu hình chương trình giảm giá (phần trăm khuyến mãi, thời hạn, đơn tối thiểu, mức giảm tối đa).
  • Quản lý điều hành & Thống kê: Quản lý hồ sơ nhân viên, khóa/mở tài khoản, kết xuất biểu đồ doanh thu theo năm và thống kê dịch vụ được sử dụng nhiều nhất.

Tài liệu thiết kế

Chương này trình bày chi tiết các mô hình thiết kế cơ sở dữ liệu, kiến trúc phần mềm, biểu đồ ca sử dụng và đặc tả hành vi của các giao diện chức năng:

Mô hình dữ liệu quan hệ (Relational Schema): Hệ thống chuyển đổi mô hình ERD sang 9 bảng quan hệ chuẩn hóa:

  1. phong (#MaPhong, SoGiuong, LoaiPhong, GiaTheoNgay, GiaTheoGio, TinhTrang)
  2. khachhang (#MaKH, HoTen, CCCD, DiaChi, SDT, NgaySinh, GioiTinh)
  3. nhanvien (#MaNV, HoTen, CCCD, DiaChi, SDT, NgaySinh, GioiTinh)
  4. taikhoan (#MaNV, TaiKhoan, MatKhau, Quyen, TinhTrang)
  5. dichvu (#MaDV, TenDV, GiaDV, TTDV)
  6. khuyenmai (#MaKM, TenKM, PhanTramKM, NgayBD, NgayKT, TrangThai, DonToiThieu, GiamToiDa)
  7. phieuthue (#MaPT, MaNV, MaKH, MaPhong, HinhThucThue, NgayDen, GioDen, NgayTra, GioTra, TinhTrang)
  8. phieusudungdichvu (#MaPSDDV, MaKH, MaPhong, MaDV, SoLuong, ThoiGianSDDV, TinhTrang)
  9. hoadon (#MaHD, MaNV, MaKH, SoTienKM, TienDV, TongTien, ThoiGianGD)

Thiết kế ca sử dụng và biểu đồ trình tự (Sequence Diagrams): Báo cáo mô hình hóa các Use Case tổng quát và Use Case chi tiết cho từng tác tử (Admin, Quản lý, Lễ tân). Đồng thời, các biểu đồ trình tự được xây dựng cho các tương tác trọng yếu:

  • Đăng nhập / Đăng xuất: Kiểm tra thông tin tài khoản và xác thực quyền hạn.
  • Quản lý đặt và trả phòng: Luồng thông điệp khi thêm phiếu thuê, cập nhật phiếu, trả phòng và truy vấn phiếu thuê.
  • Quản lý danh mục (Khách hàng, Dịch vụ, Khuyến mãi, Nhân viên): Trình tự thực thi các thao tác Tìm kiếm $\rightarrow$ Thêm $\rightarrow$ Sửa $\rightarrow$ Xóa (quyền xóa giới hạn riêng cho Quản lý).

Đặc tả quy tắc hoạt động của các Form giao diện: Tài liệu định nghĩa cơ chế tương tác trên 8 màn hình làm việc: Màn hình Đăng nhập, Form Phòng (tích hợp bộ lọc theo "Tầng" và "Trang", hiển thị trực quan trạng thái phòng trống, đã thuê hoặc đang dọn dẹp), Form Khách hàng, Form Dịch vụ, Form Khuyến mãi, Form Thống kê, Form Điều hành và Form Tài khoản.


Tài liệu kiểm thử (Test Design)

Chương kiểm thử thiết lập cấu trúc kiểm thử chức năng (Functional Testing), kiểm thử hiệu năng và bảo mật. Trọng tâm của tài liệu kiểm thử là đối soát các ca kiểm thử (Test Cases) nhằm thẩm định tính chính xác của các luồng nghiệp vụ: kiểm tra tính hợp lệ của dữ liệu đầu vào khi lập phiếu thuê, kiểm tra tính toán phụ phí trả phòng trễ theo đúng công thức nghiệp vụ, kiểm tra cơ chế phân quyền truy cập giữa Lễ tân và Quản lý, cùng tính toàn vẹn của dữ liệu trong các giao dịch thanh toán hóa đơn.


Thiết kế và triển khai

Hệ thống được xây dựng hoàn chỉnh dựa trên mô hình kiến trúc 3 lớp với ngăn xếp công nghệ cụ thể:

+-------------------------------------------------------------+
|                      LỚP GIAO DIỆN (GUI)                    |
|      (Màn hình Swing: Đăng nhập, Phòng, Dịch vụ, Khách...)  |
+-------------------------------------------------------------+
                              |   ^
        Gửi yêu cầu người dùng |   | Trả về dữ liệu hiển thị
                              v   |
+-------------------------------------------------------------+
|                    LỚP XỬ LÝ NGHIỆP VỤ (BUS)                |
|      (Kiểm tra ràng buộc, tính phụ phí, phân quyền...)     |
+-------------------------------------------------------------+
                              |   ^
          Truy vấn nghiệp vụ  |   | Kết quả bản ghi
                              v   |
+-------------------------------------------------------------+
|                  LỚP TRUY XUẤT DỮ LIỆU (DAO)                |
|           (Thực thi kết nối và câu lệnh SQL Server)         |
+-------------------------------------------------------------+
                              |   ^
                    Đọc / Ghi |   | Dữ liệu thô
                              v   |
+-------------------------------------------------------------+
|                    CƠ SỞ DỮ LIỆU SQL SERVER                 |
|   (9 bảng: phong, phieuthue, hoadon, khachhang, dichvu...)  |
+-------------------------------------------------------------+

Chi tiết các thành phần công nghệ:

  • Ngôn ngữ lập trình: Java, sử dụng để xây dựng toàn bộ giao diện người dùng (GUI), các lớp logic nghiệp vụ (BUS) và các lớp kết nối dữ liệu (DAO).
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server, dùng để tạo lập cấu trúc các bảng, quản lý khóa chính, khóa ngoại và lưu trữ dữ liệu tập trung.
  • Cấu trúc Package:
    • GUI: Tiếp nhận đầu vào từ nhân viên/quản lý, điều hướng hiển thị trạng thái phòng và biểu đồ thống kê.
    • BUS: Đóng gói quy tắc nghiệp vụ như kiểm tra phòng trống, áp dụng mã khuyến mãi, tính tiền dịch vụ và phụ phí quá giờ.
    • DAO: Thực hiện các hàm thêm, sửa, xóa, tìm kiếm dữ liệu qua JDBC.
    • DTO: Khởi tạo các lớp đối tượng ánh xạ tương ứng với các thực thể trong cơ sở dữ liệu.
    • Images & FileJar: Chứa tài nguyên đồ họa và các tệp thư viện liên kết ngoài phục vụ quá trình biên dịch và chạy phần mềm.

Kết quả và đóng góp

  1. Kết quả khảo sát và chuẩn hóa quy trình: Đề tài đã khảo sát và số hóa thành công toàn bộ quy trình nghiệp vụ lưu trú của một khách sạn 3 sao thực tế (Khách sạn Katanat), thiết lập công thức rõ ràng cho việc tính phụ phí trả phòng trễ (30%, 50%, 100%) và hình thức đặt - trả gộp nhiều phòng.
  2. Thiết kế hệ thống thông tin hoàn chỉnh: Xây dựng thành công cơ sở dữ liệu quan hệ gồm 9 bảng chuẩn hóa, bảo đảm tính toàn vẹn dữ liệu giữa hoạt động lưu trú (phieuthue), sử dụng dịch vụ phát sinh (phieusudungdichvu), áp dụng ưu đãi (khuyenmai) và xuất hóa đơn giao dịch (hoadon).
  3. Phân quyền và bảo mật chặt chẽ: Phân định rõ ràng vai trò của từng nhóm người dùng: Lễ tân chỉ được quyền thao tác lập phiếu, tra cứu và sửa thông tin cơ bản; Quản lý có quyền can thiệp xóa dữ liệu, thay đổi danh mục dịch vụ, phòng ốc và theo dõi báo cáo; Admin quản lý tài khoản và phân quyền hệ thống.
  4. Giải pháp thay thế phương thức quản lý thủ công: Sản phẩm phần mềm cung cấp giải pháp chuyển đổi số trực tiếp, khắc phục hoàn toàn tình trạng mất mát thông tin, chậm trễ thủ tục và thất thoát doanh thu so với việc ghi chép sổ sách và bảng tính Excel trước đây.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế:
    • Phạm vi khảo sát và thực nghiệm của đề tài chỉ tập trung xử lý bài toán vận hành của một đơn vị cụ thể là Khách sạn Katanat với quy mô 30 phòng, chưa đánh giá trên các chuỗi khách sạn quy mô lớn.
    • Việc áp dụng mô hình Thác nước (Waterfall) đòi hỏi các yêu cầu nghiệp vụ phải cố định từ đầu, khiến việc điều chỉnh các thay đổi phát sinh ở giai đoạn sau gặp nhiều chi phí và khó khăn.
    • Hệ thống chưa tích hợp cổng thanh toán trực tuyến hoặc các giao diện kết nối API đặt phòng đa kênh từ bên thứ ba.
  • Hướng nghiên cứu tiếp:
    • Mở rộng kiến trúc và chức năng để đáp ứng tiêu chuẩn nâng hạng của khách sạn lên 4 sao hoặc 5 sao theo định hướng phát triển trong tương lai của cơ sở khảo sát.
    • Hoàn thiện mở rộng các kịch bản kiểm thử tải nặng (Performance & Stress Testing) và bổ sung module sao lưu cơ sở dữ liệu tự động định kỳ.

Giá trị tham khảo

Đồ án là tài liệu tham khảo thiết thực cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin: Tham khảo mẫu tài liệu đặc tả yêu cầu phần mềm (SRS), cách chuyển đổi mô hình ERD sang lược đồ quan hệ và quy trình áp dụng mô hình kiến trúc 3 lớp (GUI - BUS - DAO) bằng ngôn ngữ Java và SQL Server.
  • Các nhóm phát triển phần mềm quản lý vừa và nhỏ: Tham khảo quy trình phỏng vấn nghiệp vụ thực tế, cách thiết kế biểu đồ ca sử dụng (Use Case), biểu đồ trình tự (Sequence Diagram) và bảng cấu trúc dữ liệu cho bài toán quản lý dịch vụ lưu trú.

Câu hỏi thường gặp

1. Cơ sở thực tế được nhóm tác giả khảo sát có quy mô và hiện trạng ban đầu như thế nào?

Khách sạn được khảo sát là Khách sạn Katanat (địa chỉ tại 82 Bình Hưng Hòa, Tân Bình, TP. Hồ Chí Minh), đạt tiêu chuẩn 3 sao với quy mô 30 phòng ngủ (gồm phòng đơn, phòng đôi, phòng VIP). Ban đầu, khách sạn chưa có phần mềm chuyên dụng mà chỉ sử dụng sổ sách kết hợp Microsoft Excel để quản lý đặt phòng, dẫn đến thủ tục chậm chạp và khó kiểm soát trạng thái phòng cũng như dữ liệu hóa đơn.

2. Quy định thời gian nhận, trả phòng và phụ phí trả trễ được thiết kế trong hệ thống như thế nào?

Quy định thời gian nhận phòng chuẩn là 14:00 và trả phòng là 12:00 hàng ngày. Nếu trả phòng trễ từ 14:00 – 15:00, hệ thống tính phụ phí 30% giá phòng; trả trễ từ sau 15:00 đến 18:00 tính phụ phí 50%; trả phòng sau 18:00 tính đủ 100% giá phòng một ngày lưu trú theo giá niêm yết.

3. Hệ thống phần mềm sử dụng kiến trúc và công nghệ lập trình nào?

Phần mềm được phát triển theo mô hình kiến trúc 3 lớp (GUI - BUS - DAO) kết hợp các package DTO, Images, FileJar. Nhóm tác giả sử dụng ngôn ngữ Java để lập trình giao diện và xử lý nghiệp vụ, kết hợp hệ quản trị cơ sở dữ liệu Microsoft SQL Server (cùng công nghệ tham chiếu MySQL/XAMPP) để lưu trữ và quản lý dữ liệu.

4. Cơ sở dữ liệu của phần mềm bao gồm những bảng quan hệ chính nào?

Cơ sở dữ liệu được chuẩn hóa thành 9 bảng quan hệ: phong (thông tin phòng và giá), khachhang (thông tin cá nhân khách), nhanvien (thông tin nhân viên), taikhoan (tài khoản đăng nhập và phân quyền), dichvu (danh mục dịch vụ), khuyenmai (chính sách ưu đãi), phieuthue (phiếu đặt/thuê phòng), phieusudungdichvu (dịch vụ khách sử dụng) và hoadon (hóa đơn thanh toán giao dịch).

5. Hệ thống phân định quyền hạn giữa các vai trò người dùng như thế nào?

Hệ thống phân định 3 vai trò:

  • Lễ tân: Thực hiện tạo phiếu thuê phòng, cập nhật dịch vụ khách dùng, tra cứu thông tin khách hàng, thực hiện thanh toán trả phòng và xem thống kê cơ bản.
  • Quản lý: Có toàn quyền quản trị danh mục (thêm, sửa, xóa phòng, khách hàng, dịch vụ, khuyến mãi), quản lý thông tin và tài khoản nhân viên, xem biểu đồ thống kê doanh thu theo năm.
  • Admin (Quản trị viên): Quản lý tài khoản đăng nhập, cấu hình trạng thái và phân quyền sử dụng hệ thống.

Kết luận

Báo cáo đồ án môn học Công nghệ phần mềm của nhóm sinh viên Trường Đại học Sài Gòn đã giải quyết thành công bài toán chuyển đổi số công tác quản trị lưu trú tại Khách sạn Katanat. Thông qua việc áp dụng mô hình thác nước, kiến trúc phân lớp 3-tier (GUI - BUS - DAO) trên nền tảng Java và SQL Server, nhóm đã xây dựng trọn vẹn bộ hồ sơ đặc tả yêu cầu, thiết kế 9 bảng dữ liệu quan hệ và hệ thống hóa chi tiết các luồng nghiệp vụ đặt phòng, tính phụ phí và quản lý dịch vụ. Kết quả nghiên cứu không chỉ giải quyết triệt để các bất cập trong quản lý thủ công tại cơ sở khảo sát mà còn cung cấp một tài liệu tham khảo chuẩn mực cho các đồ án phát triển phần mềm quản lý cùng lĩnh vực.