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

Đồ án môn học Phân tích và Thiết kế Hướng đối tượng (OOAD) với đề tài "Hệ thống quản lý rạp chiếu phim" được thực hiện bởi nhóm sinh viên Đinh Hoàng Luôn, Nguyễn Du Lịch và Nguyễn Văn Đông dưới sự hướng dẫn của ThS. Lê Thanh Trọng tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh (hoàn thành ngày 06/01/2020).

1. Lý do chọn đề tài và bối cảnh thực tiễn

Theo mô tả trong văn bản, Công ty trách nhiệm hữu hạn I&T có nhu cầu mở rộng thị trường thông qua việc phát triển một hệ thống rạp chiếu phim mới nhằm phục vụ nhu cầu giải trí điện ảnh của khách hàng. Tuy nhiên, hoạt động vận hành và quản lý hệ thống theo phương thức thủ công phát sinh nhiều hạn chế:

  • Gây khó khăn và tốn nhiều công sức trong khâu tổ chức vận hành.
  • Khả năng tiếp cận người dùng còn nhiều rào cản.
  • Dễ dẫn đến phiền hà, sai sót trong quá trình kiểm soát thông tin và phục vụ khách hàng.

Nhằm giải quyết các vấn đề trên, đề tài được triển khai để tin học hóa quy trình quản lý rạp chiếu phim, tối ưu hóa các hoạt động nghiệp vụ từ bán vé, quản lý lịch chiếu, quản lý thiết bị phòng chiếu đến chăm sóc khách hàng và quản trị nhân sự.

2. Mục tiêu và yêu cầu đề tài

Văn bản xác định các mục tiêu và yêu cầu cụ thể của hệ thống như sau:

  • Mục đích nghiên cứu:
    1. Giảm thiểu khối lượng công việc thủ công, tiết kiệm thời gian và công sức vận hành.
    2. Nâng cao tính chính xác và tăng cường bảo mật trong công tác quản lý thông tin của rạp chiếu phim.
  • Yêu cầu đối với hệ thống:
    1. Giao diện và trải nghiệm người dùng (UI/UX) hợp lý, thuận tiện trong thao tác.
    2. Cung cấp thông tin đầy đủ, chính xác và kịp thời.
    3. Xây dựng cơ chế quản lý tự động hóa các khâu nghiệp vụ.
    4. Tạo điều kiện thuận lợi cho khách hàng trong việc tiếp cận dịch vụ và đặt vé.

3. Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý rạp chiếu phim đa chức năng (quản lý bán vé, phim, phòng chiếu, lịch chiếu, nhân sự, khách hàng, hàng hóa dịch vụ) và các mô hình hướng đối tượng hỗ trợ thiết kế phần mềm.
  • Phạm vi hệ thống: Ứng dụng quản lý nội bộ kết hợp cổng thông tin đặt vé cho khách hàng của Công ty TNHH I&T, phục vụ 3 nhóm người dùng chính: Quản trị hệ thống, Nhân viên rạp và Khách hàng.

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

1. Khung lý thuyết và mô hình sử dụng

  • Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Đề tài sử dụng chuẩn mô hình hóa ngôn ngữ UML để phân tích yêu cầu nghiệp vụ thông qua mô hình Use-case, mô tả quan hệ tĩnh thông qua danh sách lớp đối tượng (Class) và mô tả hành vi động qua sơ đồ trình tự (Sequence Diagram).
  • Mô hình kiến trúc phần mềm: Hệ thống áp dụng mô hình kiến trúc MVC (Model – View – Controller), tách biệt rõ ràng giữa giao diện hiển thị, tầng điều khiển nghiệp vụ và tầng lưu trữ dữ liệu.
  • Mô hình dữ liệu quan hệ: Chuẩn hóa dữ liệu theo các thực thể logic phục vụ việc lưu trữ trên hệ quản trị cơ sở dữ liệu quan hệ.

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

  • Phương pháp khảo sát và phát biểu bài toán: Thu thập yêu cầu thực tế từ quy trình hoạt động rạp chiếu phim của doanh nghiệp.
  • Phương pháp đặc tả hình thức: Xây dựng danh sách 9 tác nhân (Actors) và 16 Use-case chức năng, chi tiết hóa luồng sự kiện chính, sự kiện phụ, điều kiện tiên quyết và trạng thái sau thực thi.
  • Phương pháp thiết kế cơ sở dữ liệu logic: Xây dựng bảng quan hệ gồm 21 thực thể/bảng liên kết, xác định khóa chính, khóa ngoại và kiểu dữ liệu chuẩn cho từng thuộc tính.
  • Phương pháp thiết kế giao diện: Lập danh mục và bố cục màn hình tương tác người dùng theo từng phân hệ chức năng.

3. Nguồn dữ liệu và công cụ

  • Dữ liệu thực nghiệm: Dữ liệu mẫu về thông tin phim, danh mục phòng chiếu, ghế ngồi, lịch chiếu, tài khoản, nhân viên, sản phẩm dịch vụ và giao dịch hóa đơn.
  • Môi trường phát triển: Ngôn ngữ lập trình Java (Java 8 ver.0), môi trường phát triển tích hợp Eclipse, SQLite JDBC Driver phục vụ kết nối cơ sở dữ liệu.

Thiết kế và triển khai

1. Kiến trúc hệ thống

Hệ thống được tổ chức theo mô hình phân tầng MVC, phân tách rõ ràng trách nhiệm của từng thành phần:

Thành phần Diễn giải chức năng
User Người dùng tương tác trực tiếp với hệ thống (Quản trị, Quản lý, Nhân viên, Khách hàng).
View Giao diện hiển thị các biểu mẫu, danh sách và bảng điều khiển tương tác.
Controller Tiếp nhận yêu cầu từ View, xử lý sự kiện, kiểm tra logic nghiệp vụ và điều hướng dữ liệu.
Model Đóng gói cấu trúc dữ liệu, thực hiện truy xuất và thao tác với dữ liệu logic.
Database Lưu trữ toàn bộ dữ liệu nghiệp vụ của hệ thống rạp phim.

2. Mô hình phân lớp thành phần phần mềm

  • Tầng Model (Lớp đối tượng dữ liệu): Ghe, GopY, KhachHang, LichChieuPhim, LoaiPhim, NhaCungCap, NhanVien, Phim_LoaiPhim, Phim, PhongChieuPhim, SanPham, TaiKhoan, TaiKhoanNganHang, VeXemPhim.
  • Tầng View (Giao diện): Login (Đăng nhập), SignUp (Đăng ký), Home (Trang tổng quan), Schedule (Lịch chiếu/Bán vé), Movies (Quản lý phim), Room (Quản lý phòng chiếu), Account (Quản lý tài khoản), CustomerCare (Chăm sóc khách hàng), Customer (Khách hàng), Service (Dịch vụ), Statistic (Thống kê), Staff (Nhân viên).
  • Tầng Controller (Điều khiển): LoginController, SignUpController, HomeController, ScheduleController, MoviesController, RoomController, AccountController.

3. Thiết kế cơ sở dữ liệu logic

Hệ thống thiết kế 21 bảng dữ liệu với các ràng buộc khóa chính và khóa ngoại cụ thể:

Tên Bảng Khóa chính Ràng buộc khóa ngoại / Thuộc tính chính Mục đích lưu trữ
Ghe maGhe maPhong (FK tham chiếu PhongChieuPhim), trangThai (enum) Quản lý mã ghế, vị trí phòng và trạng thái ghế
Phim maPhim ten, thoiLuong, tenDaoDien, nuocSanXuat, moTa, hinhAnh Lưu trữ thông tin chi tiết các bộ phim
LoaiPhim maLoaiPhim tenLoaiPhim, moTa Quản lý danh mục thể loại phim
Phim_LoaiPhim maPhim, maLoaiPhim Bảng kết hợp nhiều - nhiều Xác định thể loại của từng bộ phim
SanPham maSanPham maNhaCungCap (FK tham chiếu NhaCungCap), tenSanPham, giaSanPhan Quản lý sản phẩm/dịch vụ tại rạp
HoaDon maHoaDon maKhachHang (FK tham chiếu KhachHang), tongTien, ngayBan Lưu trữ hóa đơn bán hàng
ChiTietHoaDon maHoaDon, maSanPham soLuong, donGia Chi tiết từng sản phẩm trong hóa đơn
NhaCungCap maNhaCungCap tenNhaCungCap, diaChiNhaCungCap, email, soDienThoai Quản lý thông tin đối tác cung cấp hàng
VeXemPhim maVe maKhachHang, maLichChieu, maGhe, giaVe, ngayDatVe, trangThaiVe Lưu trữ thông tin vé xem phim của khách
LichChieuPhim maLichChieuPhim maPhongChieuPhim, maPhim, ngayChieu, gioBatDau, thoiLuong, soVeToiDa Quản lý suất chiếu theo phòng và phim
PhongChieuPhim maPhongChieu trangThaiPhongChieu (enum) Quản lý số phòng chiếu và tình trạng phòng
PhieuNhapHang maPhieuNhap maNhaCungCap (FK), ngayNhap, tongTien Quản lý các đơn nhập hàng hóa
ChiTietPhieuNhap maPhieuNhap, maSanPham soLuong, donGia Chi tiết số lượng và giá sản phẩm nhập
TaiKhoan maTaiKhoan loaiTaiKhoan (enum), tenDangNhap, matKhau, ngayTao, trangThaiTaiKhoan Quản lý tài khoản và phân quyền người dùng
QuanTriHeThong maTaiKhoan hoTen, email, soDienThoai Thông tin cá nhân của quản trị viên
KhachHang maKhachHang hoTen, email, soDienThoai Quản lý thông tin khách hàng
NhanVien maNhanVien hoTen, diaChi, ngaySinh, ngayVaoLam, email, soDienThoai Hồ sơ nhân viên rạp chiếu
KhachHang_TaiKhoan maKhachHang, maTaiKhoan Xác định tài khoản thuộc về khách hàng Bảng liên kết tài khoản khách hàng
NhanVien_TaiKhoan maNhanVien, maTaiKhoan Xác định tài khoản thuộc về nhân viên Bảng liên kết tài khoản nhân viên
GopY MaGopY maKhachHang, noiDung, ngayGopY Ghi nhận phản ánh, khiếu nại của khách
TaiKhoanNganHang sotaiKhoanNganHang matKhau, tenNganHang, tenChuSoHuu, ngayTao, soDu Tài khoản ngân hàng hỗ trợ thanh toán vé

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

I. Thông tin chung

Phần này định danh đề tài "Hệ thống quản lý rạp chiếu phim", xác định các công cụ phát triển phần mềm gồm IDE Eclipse, nền tảng Java 8 (ver.0) và cơ chế kết nối cơ sở dữ liệu SQLite JDBC Driver.

II. Phát biểu bài toán

Tài liệu trình bày bối cảnh kinh doanh của Công ty TNHH I&T, chỉ ra các nhược điểm trong khâu quản lý thủ công truyền thống, từ đó đưa ra mục đích giảm thiểu công việc thủ công, nâng cao độ chính xác, bảo mật và các yêu cầu chức năng đối với ba đối tượng người dùng: Quản trị hệ thống, Nhân viên và Khách hàng.

III. Mô hình Use-case

Chương này đặc tả cấu trúc chức năng thông qua danh sách 9 tác nhân và 16 Use-case cụ thể:

  • Hệ thống tác nhân (Actors): Gồm Quản trị hệ thống, Quản lý rạp, Khách hàng, Nhân viên quản lý vé, Nhân viên quản lý phim, Nhân viên quản lý lịch chiếu phim, Nhân viên quản lý phòng chiếu, Ngân hàng (tùy chọn kết nối trực tuyến), Nhân viên chăm sóc khách hàng.
  • Đặc tả chi tiết các Use-case trọng tâm:
    • Đăng nhập hệ thống: Xác thực tên đăng nhập/mật khẩu, điều hướng giao diện theo phân quyền tài khoản; tự động cảnh báo và đề xuất chức năng "Quên mật khẩu" nếu người dùng nhập sai quá 5 lần.
    • Xem lịch chiếu và thông tin phim: Cho phép tìm kiếm theo khoảng thời gian từ ngày A đến ngày B hoặc theo tên phim; xem chi tiết đạo diễn, diễn viên, thời lượng, tóm tắt nội dung.
    • Quản lý bán vé và Đặt vé: Kiểm soát số lượng vé bán ra dựa trên sức chứa tối đa của phòng chiếu (ví dụ: phòng 100 ghế giới hạn tối đa 100 vé); hỗ trợ chọn vị trí ghế trực quan, cập nhật tức thời trạng thái ghế trống/ghế đã đặt; xử lý quy trình thanh toán trực tiếp hoặc qua tài khoản ngân hàng.
    • Quản lý lịch chiếu và Quản lý phòng chiếu: Cho phép thêm, sửa, xóa các suất chiếu theo khung giờ và phòng; quản lý trạng thái thiết bị và số ghế trong từng phòng chiếu.
    • Quản lý nhân sự và người dùng: Quản trị hệ thống thực hiện tạo, sửa, khóa, mở khóa và phân quyền tài khoản. Quản lý rạp thực hiện các nghiệp vụ hồ sơ nhân viên: thêm, sửa, xóa, tìm kiếm, kỷ luật (ngày, lý do, hình thức), khen thưởng và tính lương chi tiết (phụ cấp trách nhiệm, trợ cấp, lương chính theo hợp đồng, số ngày làm thêm chủ nhật, ngày lễ tết, số ngày nghỉ trừ lương).
    • Chăm sóc khách hàng và Lập báo cáo: Tiếp nhận phản hồi, góp ý từ khách hàng; truy xuất dữ liệu doanh thu, số vé bán ra, vé tồn kho và tình trạng cơ sở vật chất để xuất báo cáo định dạng chuẩn.

IV. Danh sách các lớp đối tượng và quan hệ

Mô tả 11 lớp thực thể nền tảng trong hệ thống (KhachHang, TaiKhoan, LoaiPhim, GopY, QuanLyRap, NhanVien, Phim, LichChieuPhim, PhongChieuPhim, Ghe, TaiKhoanNganHang) và xây dựng sơ đồ trình tự (Sequence Diagram) cho 6 luồng tương tác: Đặt vé, Quản lý tài khoản người dùng, Đăng nhập, Quản lý bán vé, Quản lý nhân viên và Quản lý phòng chiếu phim.

V. Thiết kế dữ liệu

Chi tiết hóa 21 bảng dữ liệu logic, định nghĩa chính xác kiểu dữ liệu (String, Int, Float, DateTime, Enum), các ràng buộc toàn vẹn khóa chính (Primary Key - PK), khóa ngoại (Foreign Key - FK) và giá trị không rỗng (Not Null).

VI. Thiết kế kiến trúc

Trình bày cấu trúc 5 thành phần của mô hình MVC (User, View, Controller, Model, Database), phân định danh mục các lớp xử lý tương ứng cho từng tầng trong kiến trúc phần mềm.

VII. Thiết kế giao diện

Định nghĩa 12 màn hình giao diện người dùng: Login, SignUp, Home, Schedule, Movies, CustomerCare, Rooms, Customer, Service, Account, Statistic, Staff nhằm đảm bảo tính trực quan và đồng bộ trong quá trình vận hành.

VIII. Môi trường phát triển và Môi trường triển khai

Tổng kết môi trường xây dựng ứng dụng (Eclipse, Java 8, SQLite JDBC), đánh giá kết quả đạt được, chỉ ra các mặt hạn chế so với thiết kế ban đầu và nêu định hướng hoàn thiện hệ thống.


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

1. Kết quả chính đạt được

  • Xây dựng hoàn chỉnh tài liệu phân tích thiết kế hướng đối tượng cho hệ thống quản lý rạp chiếu phim với độ chi tiết cao:
    • 9 tác nhân nghiệp vụ bao quát toàn bộ quy trình vận hành rạp.
    • 16 ca sử dụng (Use-case) có đặc tả chi tiết về luồng sự kiện chính, sự kiện ngoại lệ và điều kiện kiểm soát.
    • Thiết kế cơ sở dữ liệu quan hệ gồm 21 bảng chuẩn hóa, bảo đảm tính toàn vẹn dữ liệu từ quản lý vé, phim, phòng chiếu đến nghiệp vụ bán hàng bổ trợ và quản lý lương nhân viên.
    • Áp dụng thành công mô hình kiến trúc chuẩn MVC với 14 lớp Model, 12 màn hình View và 7 lớp Controller chính.

2. Giải pháp và đề xuất của tác giả

  • Tự động hóa khâu bán vé: Thiết lập cơ chế kiểm soát số lượng vé bán ra không vượt quá số ghế của từng phòng chiếu, đồng bộ trạng thái đặt chỗ để loại bỏ tình trạng trùng lặp vị trí ngồi.
  • Tích hợp quản lý nhân sự chuyên sâu: Đưa các tiêu chí chấm công, phụ cấp, làm thêm ngày lễ/chủ nhật, khen thưởng, kỷ luật vào phân hệ quản lý nhân viên để tính toán lương chính xác.
  • Mở rộng chức năng bổ trợ: Thiết kế sẵn các bảng quản lý nhập hàng, nhà cung cấp, hóa đơn sản phẩm và tiếp nhận góp ý để đáp ứng nhu cầu kinh doanh dịch vụ ăn uống đi kèm rạp phim.

3. Đóng góp về mặt học thuật và kỹ thuật

  • Chuẩn hóa toàn bộ quy trình vận hành rạp chiếu phim thủ công thành tài liệu phân tích hướng đối tượng chi tiết theo đúng tiêu chuẩn công nghệ phần mềm.
  • Đóng vai trò là mô hình mẫu về việc áp dụng lý thuyết môn học OOAD vào một bài toán thực tế của doanh nghiệp (Công ty TNHH I&T).

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

1. Hạn chế

  • Theo nhận định tự đánh giá của nhóm tác giả trong văn bản, đồ án vẫn chưa hoàn thiện đầy đủ mọi tính năng như mục tiêu và thiết kế ban đầu.
  • Tính năng thanh toán trực tuyến qua tài khoản ngân hàng và các dịch vụ bổ trợ mới chỉ dừng lại ở mức thiết kế sơ bộ và tùy chọn (optional).

2. Hướng phát triển

  • Hoàn thiện toàn diện các chức năng còn dang dở trong bản thiết kế ban đầu.
  • Tối ưu hóa hiệu năng cơ sở dữ liệu và mở rộng kết nối chính thức với các cổng thanh toán ngân hàng trực tuyến.
  • Cải tiến giao diện người dùng để tăng tính tiện dụng khi triển khai thực tế.

Giá trị tham khảo

  • Đối tượng tham khảo: Sinh viên các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin đang thực hiện đồ án môn học Phân tích Thiết kế Hướng đối tượng (OOAD) hoặc lập trình ứng dụng máy tính bằng Java.
  • Nội dung giá trị nhất:
    • Phương pháp phân rã tác nhân và xây dựng kịch bản đặc tả Use-case chi tiết (đặc biệt là logic xử lý lỗi nhập sai mật khẩu 5 lần, luồng tính lương nhân viên, kiểm soát sức chứa phòng chiếu).
    • Bản thiết kế cơ sở dữ liệu logic 21 bảng hoàn chỉnh, phản ánh chính xác các mối quan hệ nghiệp vụ thực tế trong rạp chiếu phim.

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

1. Hệ thống phân chia quyền hạn cho những tác nhân (actors) nào trong rạp phim?

Hệ thống xác định 9 tác nhân cụ thể: Quản trị hệ thống, Quản lý rạp, Khách hàng, Nhân viên quản lý vé, Nhân viên quản lý phim, Nhân viên quản lý lịch chiếu phim, Nhân viên quản lý phòng chiếu, Ngân hàng (hỗ trợ đặt vé online) và Nhân viên chăm sóc khách hàng.

2. Logic kiểm soát số lượng vé bán ra của một buổi chiếu được thiết kế như thế nào?

Theo đặc tả Use-case "Quản lý vé", hệ thống kiểm soát số lượng vé tối đa được phép bán ra cho từng bộ phim dựa trên sức chứa của phòng chiếu. Ví dụ: Phim A chiếu tại phòng B có sức chứa tối đa 100 ghế thì hệ thống chỉ cho phép bán tối đa 100 vé để tránh tình trạng quá tải.

3. Nghiệp vụ tính lương nhân viên trong Use-case "Quản lý nhân viên" bao gồm các thông số nào?

Giao diện và luồng tính lương yêu cầu Quản lý rạp nhập các thông tin: phụ cấp trách nhiệm, phụ cấp/trợ cấp, tiền lương chính (quy định trong hợp đồng lao động), số ngày chủ nhật làm thêm trong tháng, số ngày làm thêm trong lễ tết và số ngày nghỉ bị trừ lương để lưu trữ mức lương chính thức.

4. Cơ sở dữ liệu của hệ thống quản lý những thực thể nào liên quan đến sản phẩm dịch vụ ngoài vé xem phim?

Cơ sở dữ liệu tích hợp các bảng: SanPham (mã, tên, giá nhập, mã nhà cung cấp), NhaCungCap (thông tin liên hệ đối tác), HoaDon (tổng tiền, ngày bán, mã khách hàng), ChiTietHoaDon (số lượng, đơn giá bán), PhieuNhapHang và ChiTietPhieuNhap để quản lý việc nhập và bán các sản phẩm ăn uống, dịch vụ tại rạp.

5. Công nghệ và công cụ nào được sử dụng để xây dựng hệ thống?

Đồ án sử dụng ngôn ngữ lập trình Java (phiên bản Java 8), môi trường phát triển tích hợp Eclipse và thư viện SQLite JDBC Driver để kết nối và quản trị cơ sở dữ liệu.


Kết luận

Đồ án môn học "Hệ thống quản lý rạp chiếu phim" của nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM đã giải quyết bài toán tin học hóa hoạt động vận hành rạp chiếu phim cho Công ty TNHH I&T. Đề tài xây dựng một hệ thống tài liệu phân tích thiết kế hướng đối tượng hoàn chỉnh, bao gồm 16 ca sử dụng, 9 tác nhân, cấu trúc dữ liệu quan hệ 21 bảng và kiến trúc phân tầng MVC bằng ngôn ngữ Java 8 kết hợp SQLite. Mặc dù còn một số chức năng cần tiếp tục hoàn thiện so với thiết kế ban đầu, công trình đã thể hiện đầy đủ phương pháp luận OOAD và cung cấp tài liệu tham khảo chi tiết cho các bài toán quản lý phần mềm tương tự.