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

Trong hoạt động kinh doanh dịch vụ giải trí karaoke tại các cơ sở có quy mô vừa và nhỏ, quy trình quản lý thủ công thường gặp nhiều khó khăn trong việc theo dõi tình trạng phòng trống, tính toán chi phí dịch vụ theo thời gian thực, quản lý kho hàng tồn và tổng hợp doanh thu định kỳ. Nhằm giải quyết các bất cập này, đề tài được thực hiện dưới dạng báo cáo đồ án môn học Công nghệ phần mềm tại Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP.HCM (HUTECH) vào tháng 11/2021, do nhóm sinh viên gồm Nguyễn Hoàng Phúc, Lê Hữu Thành, Phan Hoàng Minh Thuận, Nguyễn Bùi Hưng Dương, Đinh Ngọc Phúc Thịnh và Nguyễn Gia Khánh (Lớp 21DTHD5) thực hiện dưới sự hướng dẫn của giảng viên Phạm Văn Danh và cố vấn học phần Nguyễn Hữu Trung.

Mục tiêu chính của đề tài là xây dựng hệ thống phần mềm quản lý quán karaoke nhằm tự động hóa và tối ưu hóa các thao tác nghiệp vụ hàng ngày. Nhiệm vụ nghiên cứu và phát triển được phân rã thành các giai đoạn cụ thể:

  1. Thu thập và làm rõ yêu cầu nghiệp vụ thực tế tại cơ sở kinh doanh dịch vụ karaoke thông qua bộ câu hỏi khảo sát chuyên biệt.
  2. Phân loại và đặc tả chi tiết các yêu cầu chức năng (lưu trữ, tra cứu, tính toán) và yêu cầu phi chức năng của hệ thống.
  3. Xây dựng tài liệu mô hình hóa hướng đối tượng bằng ngôn ngữ UML (Use Case Diagram, Activity Diagram, Sequence Diagram, Class Diagram) và thiết kế cơ sở dữ liệu quan hệ (ERD).
  4. Thiết kế giao diện người dùng, lập trình xử lý các ràng buộc toàn vẹn dữ liệu và hiện thực hóa các tầng xử lý nghiệp vụ, truy xuất dữ liệu (Entity, DAO).
  5. Kiểm thử các chức năng của ứng dụng trên môi trường mạng nội bộ (LAN) và lập tài liệu hướng dẫn sử dụng cho các nhóm người dùng.

Đối tượng nghiên cứu là quy trình quản lý nghiệp vụ tại cơ sở dịch vụ karaoke. Phạm vi áp dụng của phần mềm tập trung vào các quán karaoke quy mô nhỏ và vừa, phục vụ trực tiếp ba nhóm đối tượng người dùng chính: nhân viên lễ tân, khách hàng và người quản lý/chủ quán karaoke, đồng thời hỗ trợ thông tin cho bộ phận kế toán và bộ phận kỹ thuật.


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

Đề tài áp dụng phương pháp phân tích và thiết kế hệ thống hướng đối tượng (Object-Oriented Analysis and Design - OOAD) kết hợp với mô hình dữ liệu quan hệ (Relational Data Model).

Khung lý thuyết và mô hình tiếp cận

  • Ngôn ngữ mô hình hóa thống nhất (UML): Sử dụng các biểu đồ Use Case để nắm bắt yêu cầu chức năng, biểu đồ hoạt động (Activity Diagram) và biểu đồ tuần tự (Sequence Diagram) để mô hình hóa luồng xử lý nghiệp vụ, biểu đồ lớp (Class Diagram) để biểu diễn cấu trúc tĩnh của hệ thống.
  • Mô hình thực thể kết hợp (ERD): Chuẩn hóa và chuyển đổi từ mô hình lớp sang cơ sở dữ liệu quan hệ, thiết lập các khóa chính, khóa ngoại và ràng buộc toàn vẹn dữ liệu.
  • Kiến trúc phần mềm phân tầng: Tách biệt cấu trúc dữ liệu với tầng truy xuất dữ liệu thông qua các lớp Thực thể (Entity) và Data Access Object (DAO).

Phương pháp nghiên cứu và phát triển

  • Phương pháp thu thập và làm rõ yêu cầu: Thiết lập danh mục 16 câu hỏi phỏng vấn nghiệp vụ chuyên sâu nhằm xác định rõ các quy định về đặt/hủy phòng, kiểm tra thiết bị hư hỏng, phân chia hóa đơn, cơ chế tính tiền theo khung giờ ngày/đêm và các tiêu chí thống kê hàng hóa, doanh thu.
  • Phương pháp đặc tả chức năng: Mỗi chức năng được chuẩn hóa thành một Use Case với mã định danh (UC001 đến UC026), xác định rõ mục đích, tác nhân thực hiện, điều kiện tiên quyết (pre-conditions), điều kiện kết thúc (post-conditions), luồng sự kiện chính (Basic Flows) và các luồng sự kiện phụ/rẽ nhánh (Alternative Flows).

Nguồn dữ liệu và tài liệu tham khảo

Nhóm tác giả sử dụng các tài liệu hướng dẫn học phần phát triển ứng dụng và phân tích thiết kế hệ thống bao gồm:

  • 2017_BAI TAP MON PHAT TRIEN UNG DUNG.docx
  • Application Development 2017_03_Review 1_PTTKHT.pptx
  • Application Development 2017_03_Review 2_UML to Relational Model

Thiết kế và triển khai

Hệ thống được thiết kế theo các tiêu chuẩn kỹ thuật chặt chẽ, đảm bảo tính tương thích và khả năng vận hành ổn định trong môi trường mạng nội bộ.

Môi trường phát triển và cấu hình vận hành

  • Hạ tầng phần cứng: Máy tính cá nhân có cấu hình bộ nhớ RAM tối thiểu 4GB, hỗ trợ kết nối mạng nội bộ (LAN).
  • Hệ điều hành: Microsoft Windows 7 trở lên.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server phiên bản 18.
  • Môi trường phát triển tích hợp (IDE): Eclipse phiên bản 2020 và NetBeans IDE.
  • Ngôn ngữ lập trình: Java (tuân thủ quy chuẩn viết mã Coding Convention chung cho Java/C#).

Thiết kế mô hình dữ liệu và các thực thể hệ thống

Mô hình hướng đối tượng và cơ sở dữ liệu quan hệ được xây dựng dựa trên 10 thực thể chính, phản ánh đầy đủ cấu trúc quản lý của quán karaoke:

STT Tên thực thể (Class/Entity) Vai trò và chức năng quản lý
1 NhanVien Lưu trữ thông tin nhân sự (họ tên, CMND, số điện thoại, chức vụ, tài khoản).
2 KhachHang Quản lý danh sách khách hàng thường và khách hàng thân thiết (họ tên, tuổi, SĐT, địa chỉ).
3 Phong Quản lý danh mục phòng hát, trạng thái phòng (đang trống, đã đặt trước, đang sử dụng).
4 LoaiPhong Phân loại phòng (phòng Thường tối đa 10 người, phòng VIP tối đa 20 người).
5 PhieuDatPhong Ghi nhận thông tin đặt trước phòng của khách hàng và thời gian hẹn.
6 DichVu Danh mục thức ăn, nước uống và các dịch vụ cung cấp kèm theo đơn giá.
7 LoaiDichVu Phân nhóm các loại dịch vụ phục vụ cho công tác quản lý và tìm kiếm.
8 HoaDon Quản lý hóa đơn tổng hợp gồm tiền giờ hát và tiền dịch vụ sử dụng.
9 CT_HoaDon Chi tiết từng dịch vụ, số lượng sử dụng và phụ thu phát sinh trong hóa đơn.
10 TaiKhoan Quản lý thông tin đăng nhập và phân quyền truy cập hệ thống.

Phân quyền người dùng và danh mục Use Case

Hệ thống phân quyền truy cập thành 3 nhóm tác nhân chính trên giao diện phần mềm cùng 2 bộ phận phối hợp:

  • Người quản lý (NQL): Toàn quyền sử dụng tất cả chức năng trong hệ thống, bao gồm quản lý danh mục nhân viên, quản lý phòng và theo dõi toàn bộ báo cáo thống kê chuyên sâu.
  • Nhân viên lễ tân (NV): Thực hiện các nghiệp vụ đặt/trả phòng, quản lý khách hàng, quản lý danh mục dịch vụ, lập hóa đơn, xuất hóa đơn, thanh toán và xem các thống kê bán hàng, khách hàng thân thiết.
  • Khách hàng (KH): Được cấp quyền tra cứu phòng trống, xem thông tin phòng và thực hiện đăng ký đặt phòng trước.
  • Bộ phận Kế toán & Kỹ thuật: Tiếp nhận dữ liệu thu chi, tính lương, theo dõi hư hỏng và bảo trì thiết bị phòng hát.

Hệ thống thiết lập 26 trường hợp sử dụng (Use Case) chi tiết được phân bổ theo nhóm chức năng:

Mã Use Case Tên Use Case Tác nhân chính Chức năng nghiệp vụ
UC001 - UC004 Thêm, Xóa, Cập nhật, Tìm kiếm nhân viên Người quản lý Quản lý hồ sơ nhân viên theo mã và CMND
UC005 - UC008 Thêm, Xóa, Cập nhật, Tìm kiếm khách hàng Nhân viên Quản lý thông tin khách hàng, số điện thoại
UC009 - UC010 Đặt phòng, Tìm kiếm phòng NQL, NV, KH Tra cứu phòng trống, đăng ký giữ chỗ
UC011 - UC013 Xuất hóa đơn, Thanh toán, Lập hóa đơn Nhân viên Xử lý thanh toán tổng hợp tiền giờ và dịch vụ
UC014 - UC017 Thêm, Xóa, Sửa, Tìm kiếm dịch vụ Nhân viên Quản lý danh mục đồ ăn, thức uống, giá bán
UC018 - UC020 Thêm, Xóa, Sửa thông tin phòng Người quản lý Quản lý cơ sở vật chất, loại phòng, mở rộng quy mô
UC021 Đăng nhập hệ thống NQL, NV, KH Xác thực quyền hạn truy cập
UC022 Thống kê doanh thu Người quản lý Báo cáo doanh thu theo ngày, tháng, năm
UC023 - UC025 Thống kê hàng hết hạn, sắp hết, bán chạy Người quản lý Quản trị tồn kho, lập kế hoạch nhập xuất hàng
UC026 Thống kê khách hàng vàng Người quản lý Xếp hạng khách hàng sử dụng dịch vụ nhiều nhất

Quy tắc xử lý nghiệp vụ (Business Rules)

  1. Quy định đặt và hủy phòng: Cho phép đặt phòng trực tiếp hoặc qua điện thoại. Nhân viên thiết lập trạng thái "Đã đặt trước" cùng thời gian hẹn. Nếu quá 15 phút so với giờ hẹn mà khách không đến nhận phòng, hệ thống tự động hủy trạng thái đặt trước và chuyển phòng về trạng thái "Đang trống".
  2. Cơ chế tính tiền giờ hát: Phân biệt giá theo khung giờ ngày và đêm:
    • Khung giờ ban ngày (08:00 - 18:00): 25.000 VNĐ/giờ.
    • Khung giờ ban đêm (sau 18:00): 45.000 VNĐ/giờ.
    • Trường hợp khách hát chuyển tiếp giữa hai ca: Thời gian trước 18:00 tính theo mức 25.000 VNĐ/giờ, thời gian từ 18:00 trở đi tính theo mức 45.000 VNĐ/giờ.
  3. Cấu trúc hóa đơn và thanh toán: Hóa đơn được bóc tách làm hai phần rõ rệt (chi phí thời gian thuê phòng và chi phí sử dụng dịch vụ thức ăn/nước uống). Hỗ trợ các phương thức thanh toán: tiền mặt, ví điện tử, thẻ ngân hàng và internet banking.
  4. Quy định trả lại dịch vụ: Chỉ những dịch vụ nằm trong danh mục được phép hoàn trả mới được nhân viên cập nhật giảm trừ trên hệ thống sau khi khách gọi món.

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

Báo cáo đồ án được cấu trúc thành các phần rõ ràng, bám sát tiến trình phát triển phần mềm theo tiêu chuẩn:

Kế hoạch thực hiện

Phần này trình bày kế hoạch làm việc chi tiết được phân bổ trong 10 tuần học tập, xác định rõ trách nhiệm cụ thể của từng thành viên:

  • Tuần 01 - Tuần 02: Đăng ký nhóm, bầu nhóm trưởng, xây dựng kế hoạch làm việc, thu thập yêu cầu và chuẩn bị tài liệu đặc tả.
  • Tuần 03: Thiết kế các mô hình UML (Use Case, Activity, Sequence, Class Diagram) và thiết kế cơ sở dữ liệu quan hệ.
  • Tuần 04: Thiết kế giao diện các màn hình, xác định luồng tương tác và xử lý các ràng buộc nhập liệu (giao cho Hoàng Phúc, Minh Thuận, Gia Khánh).
  • Tuần 05 - Tuần 07: Lập trình tầng xử lý nghiệp vụ, viết các lớp Entity, DAO, lập trình chức năng đăng nhập, xử lý sự kiện, tìm kiếm, tính toán hóa đơn, báo cáo thống kê và trợ giúp (do Hoàng Phúc, Phúc Thịnh, Minh Thuận, Gia Khánh đảm nhiệm).
  • Tuần 08: Kiểm thử toàn diện các chức năng ứng dụng trên môi trường thực nghiệm.
  • Tuần 09 - Tuần 10: Hoàn thiện báo cáo đồ án và báo cáo đánh giá trước hội đồng giảng viên.

Thu thập và làm rõ yêu cầu của ứng dụng

Chương này tổng hợp 16 câu hỏi - trả lời khảo sát thực tế, phân định rõ ràng các nhóm chức năng:

  • Nhóm lưu trữ: Quản lý thông tin nhân viên, đặt phòng, thu tiền thuê phòng, phân công công việc, quản lý tồn kho và quản lý dữ liệu thống kê.
  • Nhóm tra cứu: Tra cứu thông tin phòng, nhân viên, hóa đơn tính tiền và hàng tồn kho.
  • Nhóm tính toán: Tính tiền thuê phòng theo khung giờ và tính tổng tiền dịch vụ phát sinh.
  • Yêu cầu phi chức năng: Đảm bảo giao diện trực quan, hỗ trợ điều hướng nhanh bằng phím tắt và phím Tab; mã nguồn tuân thủ Coding Convention.

Đặc tả yêu cầu ứng dụng

Trình bày chi tiết danh mục 26 Use Case, mô tả tổng quan ứng dụng, điều kiện phụ thuộc về phần cứng - phần mềm, và cung cấp tài liệu đặc tả chi tiết kèm theo biểu đồ hoạt động và biểu đồ tuần tự cho từng luồng chức năng cơ bản và nâng cao (từ UC001 đến UC026).

Tài liệu thiết kế hướng đối tượng và cơ sở dữ liệu

Bao gồm sơ đồ lớp phân tích (Class Diagram), đặc tả chi tiết 10 lớp thực thể, sơ đồ quan hệ cơ sở dữ liệu (ERD), định nghĩa các ràng buộc toàn vẹn dữ liệu và bản vẽ chi tiết các giao diện người dùng:

  • Trang chủ và màn hình đăng nhập hệ thống.
  • Màn hình quản lý phòng hát và tìm kiếm phòng.
  • Màn hình tiếp nhận và quản lý khách hàng.
  • Màn hình quản lý dịch vụ và đặt dịch vụ.
  • Màn hình lập hóa đơn, thanh toán và in hóa đơn.
  • Màn hình quản lý tài khoản người dùng và phân quyền.
  • Màn hình quản trị nhân viên.
  • Màn hình báo cáo và quản lý thống kê.

Kiểm thử chức năng ứng dụng và Tài liệu hướng dẫn sử dụng

Xác định tài nguyên phần cứng phục vụ thử nghiệm, xây dựng bộ kịch bản kiểm thử (test cases) theo từng tình huống cụ thể, lập biên bản báo cáo kết quả kiểm thử (Test Report). Phần cuối cung cấp tài liệu hướng dẫn vận hành chi tiết, phân định rõ các thao tác nghiệp vụ cho nhân viên lễ tân, người quản lý và khách hàng.


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

Kết quả đạt được

  • Hoàn thiện bộ tài liệu phân tích thiết kế phần mềm quản lý quán karaoke quy mô vừa và nhỏ với đầy đủ 26 chức năng nghiệp vụ chuẩn hóa.
  • Xây dựng thành công mô hình cơ sở dữ liệu quan hệ gồm 10 bảng thực thể, đảm bảo tính toàn vẹn dữ liệu và tối ưu hóa cho các thao tác tra cứu, tính tiền.
  • Tự động hóa được các quy tắc tính toán phức tạp: chia tách hóa đơn giờ/dịch vụ, tự động áp giá phòng 25.000 VNĐ/giờ (ban ngày) và 45.000 VNĐ/giờ (ban đêm) khi khách sử dụng vắt ca, tự động hủy giữ chỗ sau 15 phút.
  • Xây dựng 5 biểu mẫu thống kê chuyên dụng phục vụ việc quản lý hàng tồn, dự báo nhập hàng và chăm sóc khách hàng thân thiết.

Đóng góp thực tiễn và giải pháp đề xuất

Đề tài cung cấp một giải pháp phần mềm khép kín, giải quyết đồng bộ từ khâu tiếp nhận khách hàng, điều phối phòng hát, phục vụ dịch vụ ăn uống đến thanh toán và thống kê kinh doanh. Giải pháp phân quyền chặt chẽ giúp bảo mật thông tin tài chính, đồng thời hỗ trợ nhân viên lễ tân thao tác nhanh chóng, giảm thiểu sai sót trong việc tính tiền giờ và kiểm soát hàng tồn kho.


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

Hạn chế

  • Theo nhìn nhận của nhóm tác giả trong lời nói đầu, do giới hạn về mặt thời gian thực hiện và kiến thức chuyên môn, tài liệu thiết kế và phần trình bày vẫn còn một số thiếu sót nhất định.
  • Phạm vi ứng dụng của hệ thống mới chỉ tập trung cho các cơ sở karaoke đơn lẻ quy mô vừa và nhỏ, chưa hỗ trợ mô hình chuỗi cơ sở liên kết tập trung.
  • Quá trình kiểm thử mới được tiến hành trên môi trường mạng máy tính cá nhân kết nối LAN, chưa triển khai thử nghiệm trên diện rộng hoặc môi trường mạng Internet công cộng.

Hướng nghiên cứu tiếp

  • Mở rộng và hoàn thiện các module nghiệp vụ chuyên sâu dành riêng cho bộ phận kỹ thuật (theo dõi nhật ký bảo trì thiết bị tự động) và bộ phận kế toán (quản lý lương nhân viên, chi tiết thu chi đa cơ sở).
  • Nâng cấp phần mềm để hỗ trợ triển khai trên nền tảng đám mây, phục vụ quản lý chuỗi quán karaoke tập trung.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện đồ án môn học Công nghệ phần mềm, Phân tích thiết kế hệ thống hoặc Phát triển ứng dụng hướng đối tượng (Java/SQL Server).
  • Người học cần tài liệu mẫu chuẩn về cách viết tài liệu đặc tả yêu cầu phần mềm (SRS), cách phân rã Use Case, xây dựng biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram) và chuyển đổi từ Class Diagram sang ERD.
  • Các nhà phát triển phần mềm đang tìm kiếm mô hình xử lý nghiệp vụ thực tế cho các bài toán quản lý dịch vụ tính tiền theo thời gian kết hợp dịch vụ gia tăng (karaoke, khách sạn, bida).

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

1. Hệ thống xử lý việc tính tiền giờ hát như thế nào khi khách sử dụng dịch vụ vắt qua hai khung giờ ngày và đêm?
Hệ thống thiết lập mức giá 25.000 VNĐ/giờ cho khung giờ ban ngày (08:00 đến 18:00) và 45.000 VNĐ/giờ cho khung giờ ban đêm (sau 18:00). Nếu khách hàng sử dụng dịch vụ liên tục qua mốc 18:00, hệ thống sẽ tự động bóc tách thời gian: khoảng thời gian trước 18:00 được tính theo đơn giá 25.000 VNĐ/giờ và khoảng thời gian từ 18:00 trở đi được tính theo đơn giá 45.000 VNĐ/giờ.

2. Quy định hủy đặt phòng tự động của hệ thống được thiết lập theo điều kiện nào?
Khi khách hàng đặt phòng trước (trực tiếp hoặc qua điện thoại), nhân viên cập nhật trạng thái phòng là "Đã đặt trước" kèm thời gian hẹn. Nếu khách đến trễ quá 15 phút so với giờ đã hẹn, hệ thống sẽ tự động hủy trạng thái đặt trước và chuyển trạng thái phòng trở lại là "Đang trống".

3. Cơ sở dữ liệu của phần mềm quản lý bao nhiêu loại phòng và sức chứa tối đa của từng loại là bao nhiêu?
Hệ thống quản lý 2 loại phòng thông qua thực thể LoaiPhong: phòng Thường với sức chứa tối đa 10 người và phòng VIP với sức chứa tối đa 20 người.

4. Người quản lý có thể theo dõi những dạng báo cáo thống kê chuyên biệt nào trên phần mềm?
Người quản lý có quyền truy cập vào 5 chức năng thống kê chuyên biệt gồm: Thống kê doanh thu theo ngày/tháng/năm (UC022), Thống kê mặt hàng sắp hết hạn (UC023), Thống kê mặt hàng sắp hết trong kho (UC024), Thống kê mặt hàng bán chạy nhất (UC025) và Thống kê khách hàng vàng theo tháng (UC026).

5. Ứng dụng được xây dựng trên nền tảng công nghệ và yêu cầu môi trường phần cứng như thế nào?
Ứng dụng được phát triển bằng ngôn ngữ lập trình Java trên các môi trường phát triển Eclipse 2020 và NetBeans, cơ sở dữ liệu quản trị bằng Microsoft SQL Server 18. Hệ thống yêu cầu cấu hình máy tính cá nhân tối thiểu RAM 4GB, chạy hệ điều hành Windows 7 trở lên và kết nối mạng nội bộ LAN để thực hiện kiểm thử.


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 Công nghệ TP.HCM (HUTECH) đã hoàn thành toàn diện việc phân tích, thiết kế và xây dựng giải pháp phần mềm quản lý quán karaoke quy mô vừa và nhỏ. Thông qua việc đặc tả 26 Use Case chi tiết, thiết lập mô hình 10 lớp thực thể và xây dựng cơ sở dữ liệu quan hệ trên SQL Server, đồ án đã giải quyết hiệu quả các bài toán thực tế như quản lý đặt phòng, chia tách hóa đơn dịch vụ và báo cáo tồn kho. Mặc dù còn hạn chế về môi trường triển khai diện rộng, tài liệu đồ án thể hiện tính chuẩn mực cao về phương pháp luận kỹ thuật phần mềm, mang lại giá trị tham khảo thiết thực cho sinh viên và nhà phát triển hệ thống quản lý dịch vụ.