HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa: Công nghệ thông tin
1Nguyễn Thiệu HiếuB20DCCN256Bán vé tại quầy2Ngô Trần Đức TháiB20DCCN636Lên lịch chiếu phim
Trang 2A PHẦN VIỆC CHUNG CỦA NHÓM I.Mô tả hệ thống
1 Mục đích
Hệ thống trang web phục vụ công tác quản lí đặt mua vé trực tuyến, đổi điểm thưởng lấy quà tặng/vé, khách hàng hoàn trả vé, lên lịch chiếu phim, mua vé tại quầy
2 Phạm vi
● Thành viên hệ thống:
- Đăng nhập:
+ Cho phép người dùng truy cập vào hệ thống với tài khoản của mình.
- Đăng xuất:
+ Cho phép người dùng đăng xuất khỏi hệ thống - Đổi mật khẩu cá nhân:
+ Cho phép người dùng thay đổi mật khẩu của mình để bảo vệ thông tin cá nhân.
● Khách hàng (Người xem):
- Đặt vé: Cho phép người dùng chọn phim, suất chiếu, và đặt vé.
- Hủy vé:
+ Cho phép người dùng hủy đặt vé trước một khoảng thời gian cố định trước suất chiếu - Xem thông tin phim:
+ Hiển thị thông tin về các bộ phim, lịch chiếu, và giá vé.
● Nhân viên rạp chiếu phim:
- Quản lý thông tin phim:
+ Thêm, xóa, sửa thông tin về các bộ phim - Quản lý lịch chiếu:
+ Tạo và cập nhật lịch chiếu phim cho mỗi rạp - Quản lý vé:
+ Theo dõi và kiểm soát số lượng vé còn lại cho mỗi suất chiếu.
- Báo cáo doanh thu:
+ Tạo báo cáo doanh thu cho từng bộ phim hoặc
Trang 3suất chiếu.
● Quản lý rạp chiếu phim:
- Quản lý nhân viên:
+ Thêm, xóa, sửa thông tin của nhân viên.
- Thống kê doanh thu:
+ Xem các báo cáo thống kê về doanh thu, số lượng vé bán được, và các chỉ số khác.
- Quản lý khuyến mãi:
+ Thêm, xóa, sửa thông tin về các chương trình khuyến mãi.
- Quản lý rạp chiếu:
+ Thêm, xóa, sửa thông tin về các rạp chiếu, số lượng ghế, và các trang thiết bị khác.
- Xem bảng điểm của rạp:
+ Xem bảng điểm về hiệu suất hoạt động của rạp chiếu.
3 Thông tin về các đối tượng
● Nhóm các thông tin liên quan đến con người: - Khách hàng:
+ Tài khoản: tên đăng nhập, mật khẩu
+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại
- Nhân viên:
+ Tài khoản: tên đăng nhập, mật khẩu
+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại
+ Vị trí công việc: quyền hạn (bán vé, quầy bar, quản lý rạp)
- Quản lý rạp chiếu phim:
Trang 4+ Tài khoản: tên đăng nhập, mật khẩu
+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại
+ Vị trí công việc: quản lý rạp, có quyền kiểm soát doanh số, quản lý nhân viên
- Nhân viên bán vé:
+ Tài khoản: tên đăng nhập, mật khẩu
+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại
+ Vị trí công việc: bán vé, quyền xem thông tin suất chiếu
- Nhân viên quầy:
+ Tài khoản: tên đăng nhập, mật khẩu
+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại
+ Vị trí công việc: phục vụ quầy bar, quyền xem thông tin doanh số quầy.
Trang 5+ Thông tin: tên, mô tả, thời gian áp dụng
● Nhóm thông tin liên quan đến thống kê: - Doanh số bán vé:
- Thống kê theo suất chiếu, theo phim - Thống kê đánh giá của khách hàng: - Đánh giá phim, dịch vụ
- Thống kê doanh thu từ quầy bar: - Thống kê theo suất chiếu
- Thống kê lượt đặt vé online:
- Thống kê theo suất chiếu, theo ngày
- Thống kê doanh thu từ chương trình khuyến mãi: - Thống kê theo suất chiếu, theo phim
- Thống kê số lượng khách hàng theo thời gian: - Thống kê theo ngày, tháng, năm
- Thống kê doanh thu từ các nguồn khác nhau (vé, quầy bar, khuyến mãi):
- Thống kê tổng hợp theo thời gian.
4 Quan hệ giữa các đối tượng
- Rạp Chiếu Phim có nhiều Phòng Chiếu:
+ Một Rạp Chiếu Phim có thể có nhiều phòng chiếu + Mỗi Phòng Chiếu thuộc một Rạp Chiếu Phim cụ thể - Mỗi Phòng Chiếu có nhiều Suất Chiếu:
+ Mỗi Phòng Chiếu có thể có nhiều suất chiếu trong một ngày.
+ Mỗi Suất Chiếu thuộc một Phòng Chiếu cụ thể - Mỗi Suất Chiếu có nhiều Ghế Ngồi:
+ Mỗi Suất Chiếu có thể có nhiều ghế ngồi + Mỗi Ghế Ngồi thuộc một Suất Chiếu cụ thể - Mỗi Suất Chiếu có nhiều Vé:
+ Mỗi Suất Chiếu có thể có nhiều vé + Mỗi Vé thuộc một Suất Chiếu cụ thể - Mỗi Vé có một hoặc nhiều Mặt Hàng:
+ Mỗi Vé có thể liên kết với một hoặc nhiều mặt hàng (ví dụ: thức ăn, nước uống).
Trang 6+ Mỗi Mặt Hàng thuộc một hoặc nhiều Vé - Mỗi Suất Chiếu có nhiều Đánh Giá và Bình Luận:
+ Mỗi Suất Chiếu có thể có nhiều đánh giá và bình luận từ khách hàng.
+ Mỗi Đánh Giá và Bình Luận thuộc một Suất Chiếu cụ thể.
II.Biểu đồ UC tổng quát
Chúng ta có thể đề xuất các actor cho hệ thống quản lý rạp chiếu phim như sau: thành viên, khách hàng, nhân viên rạp chiếu phim, quản lý rạp chiếu phim, và kỹ thuật viên Tất cả đều có những chức năng cơ bản như đăng nhập và đổi mật khẩu, nhưng mỗi đối tượng sẽ có những chức năng riêng phù hợp với vai trò của họ.
Các chức năng cụ thể được phân chia như sau:
● Xem lại lịch sử mua vé Nhân viên rạp chiếu phim:
● Quản lý thông tin suất chiếu ● Kiểm tra và báo cáo vé đã bán ● Thực hiện báo cáo về doanh thu Quản lý rạp chiếu phim:
● Quản lý thông tin phim, đạo diễn, diễn viên ● Xem và cập nhật lịch chiếu.
● Quản lý giá vé và chính sách khuyến mãi.
● Thống kê doanh thu theo khoảng thời gian và theo từng phim.
Kỹ thuật viên:
● Quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh ● Sửa chữa thiết bị kỹ thuật khi cần.
Trang 7Trong số các chức năng này, việc xem lịch chiếu của khách hàng là tương tự chức năng xem lịch dạy của nhân viên rạp chiếu phim Nên hai use case này được cho kế thừa từ use case xem lịch chiếu Như vậy, biểu đồ use case tổng quan của hệ thống được trình bày với mô tả các use case như sau:
Đặt vé:
● Cho phép khách hàng truy cập hệ thống để đặt vé xem phim theo lịch chiếu mong muốn.
Xem lịch chiếu:
● Hiển thị thông tin chi tiết về lịch chiếu của các bộ phim trong rạp, giúp khách hàng chọn suất chiếu phù hợp.
Trang 8Mua vé online:
● Cung cấp khả năng mua vé trực tuyến, giúp tiện lợi cho khách hàng.
Quản lý thông tin suất chiếu:
● Cho nhân viên rạp chiếu phim quản lý thông tin về các suất chiếu, bao gồm thêm, sửa, và xóa suất chiếu.
Kiểm tra vé đã bán:
● Nhân viên rạp chiếu phim có thể kiểm tra thông tin về số vé đã được bán cho mỗi suất chiếu.
Thống kê doanh thu:
● Quản lý rạp chiếu phim có khả năng xem thống kê doanh thu theo khoảng thời gian và theo phim.
Quản lý thông tin phim:
● Quản lý rạp chiếu phim có thể thêm, sửa, và xóa thông tin về các bộ phim.
Xem và cập nhật lịch chiếu:
● Quản lý rạp chiếu phim có khả năng xem và điều chỉnh lịch chiếu cho các suất chiếu.
Quản lý giá vé và chính sách khuyến mãi:
● Quản lý rạp chiếu phim có thể quản lý giá vé và áp dụng chính sách khuyến mãi.
Quản lý thông tin nhân viên:
● Quản lý rạp chiếu phim có khả năng quản lý thông tin về nhân viên, bao gồm thêm, sửa, và xóa thông tin.
Quản lý thiết bị kỹ thuật:
● Kỹ thuật viên có thể quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh, và thực hiện sửa chữa khi cần.
Xuất bảng điểm:
● Cho khảo thí xuất bảng điểm cho khách hàng theo yêu cầu.
Xem thống kê:
Trang 9● Nhân viên quản lý có khả năng xem các loại báo cáo thống kê về hoạt động của rạp chiếu phim.
III.Biểu đồ lớp thực thể ở pha phân tích
Bước 1: Mô tả hệ thống trong một đoạn văn
Hệ thống quản lý rạp chiếu phim là một ứng dụng trực tuyến được thiết kế để hỗ trợ quản lý các hoạt động liên quan đến chiếu phim trong một rạp.
Trong đó, khách hàng có khả năng đặt vé xem phim theo lịch chiếu và chọn suất chiếu mong muốn; xem thông tin chi tiết về lịch chiếu, bao gồm thời gian chiếu, phòng chiếu, và phim đang chiếu; thực hiện mua vé trực tuyến để tiết kiệm thời gian và công sức; kiểm tra số vé đã được bán và cập nhật thông tin về doanh thu Nhân viên rạp chiếu phim có thể quản lý thông tin chi tiết về các suất chiếu, bao gồm thêm, sửa, và xóa suất chiếu; kiểm tra thông tin về số vé đã được bán và thực hiện báo cáo về doanh thu; quản lý thông tin về các bộ phim, bao gồm thêm, sửa, và xóa thông tin Quản lý rạp chiếu phim có khả năng thêm, sửa, và xóa thông tin về các bộ phim, đạo diễn, diễn viên; xem và cập nhật lịch chiếu cho các suất chiếu; quản lý giá vé và áp dụng chính sách khuyến mãi để thu hút khách hàng; xem thống kê doanh thu theo khoảng thời gian và theo từng phim.
Kỹ thuật viên có thể quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh; sửa chữa thiết bị kỹ thuật khi cần.
Bước 2: Trích các danh từ xuất hiện trong đoạn văn.
Các danh từ liên quan đến người: khách hàng, nhân viên rạp chiếu phim, quản lý rạp chiếu phim, kỹ thuật viên.
Các danh từ liên quan đến vật: rạp chiếu phim, suất chiếu, vé, doanh thu.
Các danh từ liên quan đến thông tin: lịch chiếu, bộ phim, đạo diễn, diễn viên, giá vé, chính sách khuyến mãi.
Bước 3: Đánh giá và lựa chọn các danh từ làm lớp thực thể hoặc thuộc tính.
Trang 10Các danh từ trừu tượng: hệ thống, ứng dụng trực tuyến, thông tin Các danh từ liên quan đến người:
● Thành viên hệ thống -> ThanhVien: tên, tên đăng nhập, mật khẩu, ngày sinh, địa chỉ, email, điện thoại.
● Khách hàng -> KhachHang: kế thừa ThanhVien, mã khách
● Kỹ thuật viên -> KyThuatVien: kế thừa NhanVienRap Các danh từ liên quan đến vật:
● Rạp chiếu phim -> RapChieuPhim: tên, địa chỉ, mô tả ● Suất chiếu -> SuatChieu: mã suất chiếu, thời gian chiếu ● Vé -> Ve: mã vé, giá vé.
● Doanh thu -> DoanhThu: mã doanh thu, ngày thu, số vé bán được.
Các danh từ liên quan đến thông tin:
● Lịch chiếu -> LichChieu: liên quan đến thời gian chiếu, suất chiếu, phim.
● Phim -> Phim: tên, đạo diễn, diễn viên, mô tả ● Giá vé -> GiaVe: giá vé, chính sách khuyến mãi Bước 4: Xác định quan hệ số lượng giữa các thực thể
● Rạp chiếu phim có nhiều suất chiếu -> RapChieuPhim - SuatChieu là 1-n, với mỗi suất chiếu được liên kết với một rạp chiếu phim cụ thể.
● Suất chiếu có nhiều vé được đặt -> SuatChieu - VeDat là 1-n, với mỗi vé được đặt liên kết với một suất chiếu cụ thể ● Khách hàng có thể đặt nhiều vé cho nhiều suất chiếu ->
KhachHang - VeDat là n-n -> đề xuất lớp DatVe kết nối giữa KhachHang và SuatChieu (DatVe # VeDat), mỗi DatVe biểu diễn một giao dịch đặt vé cụ thể.
● Rạp chiếu phim có nhiều phim -> RapChieuPhim - Phim là 1-n, với mỗi bộ phim được liên kết với một rạp chiếu phim cụ thể.
● Một phim có thể chiếu ở nhiều suất chiếu -> Phim -
Trang 11SuatChieu là 1-n, với mỗi suất chiếu liên kết với một phim cụ thể.
● Giá vé có thể áp dụng cho nhiều suất chiếu -> GiaVe - SuatChieu là n-n -> đề xuất lớp GiaVeSuatChieu xác định duy nhất một giá vé áp dụng cho một suất chiếu cụ thể ● Nhân viên rạp chiếu phim có thể quản lý nhiều suất chiếu ->
NhanVienRap - SuatChieu là 1-n, với mỗi suất chiếu được quản lý bởi một nhân viên rạp chiếu phim.
● Quản lý rạp chiếu phim có thể quản lý nhiều nhân viên -> QuanLyRap - NhanVienRap là 1-n, với mỗi nhân viên rạp chiếu phim được quản lý bởi một quản lý rạp chiếu phim ● Kỹ thuật viên có thể quản lý và bảo dưỡng nhiều thiết bị kỹ
thuật -> KyThuatVien - ThietBiKyThuat là 1-n, với mỗi thiết bị kỹ thuật được quản lý bởi một kỹ thuật viên.
● Mỗi lịch chiếu có thể liên kết với một suất chiếu cụ thể và có nhiều buổi chiếu -> LichChieu - SuatChieu là 1-n, với mỗi suất chiếu được liên kết với một lịch chiếu cụ thể.
● Ngoài ra, thông tin Họ và tên có thể tách thành một lớp thực thể riêng - HoTen, với các thuộc tính là Họ và Tên Thông tin địa chỉ cũng có thể tách thành một lớp thực thể riêng - DiaChi, với các thuộc tính là Số nhà, Đường, Quận, Thành phố Các thông tin này có thể được sử dụng lại trong nhiều đối tượng khác nhau mà không làm ảnh hưởng đến tính nhất quán và dễ bảo trì của hệ thống.
Bước 5: Xác định quan hệ đối tượng giữa các thực thể
● Rạp chiếu phim là thành phần của Hệ thống Quản lý Rạp Chiếu Phim
● Suất chiếu là thành phần của Rạp chiếu phim ● Vé đặt là thành phần của Suất chiếu
● Khách hàng là thành phần của Hệ thống Quản lý Rạp Chiếu
Trang 12● Bộ phim là thành phần của Hệ thống Quản lý Rạp Chiếu Phim
● Giá vé là thành phần của Hệ thống Quản lý Rạp Chiếu Phim ● Lịch chiếu là thành phần của Hệ thống Quản lý Rạp Chiếu
● Lịch chiếu liên kết với Suất chiếu và Bộ phim để tạo ra lịch chiếu cụ thể
● DatVe là thành phần của Hệ thống Quản lý Rạp Chiếu Phim ● DatVe liên kết với Khách hàng và Suất chiếu để tạo ra giao
dịch đặt vé cụ thể
● Thông tin địa chỉ là thành phần của Khách hàng ● Thông tin họ và tên là thành phần của Khách hàng
● Lớp thống kê liên kết với các thực thể tương ứng để tạo ra các báo cáo thống kê.
Kết quả thu được biểu đồ lớp thực thể pha phân tích toàn hệ thống như trong hình
Trang 13IV.Biểu đồ lớp thực thể ở pha thiết kế
Bước 1:
Các lớp được bổ sung thuộc tính id: trừ các lớp thống kê (TK), nhân viên, Rapchieuphim, Phim, Suatchieu, Nhanvien, NVQuanli,
Quan hệ Nhanvien – Rapchieuphim -> NhanvienRapchieuphim chuyển thành NhanvienRapchieuphim chứa Nhanvien và
Trang 14Quan hệ Phim – Suatchieu -> PhimSuatchieu chuyển thành PhimSuatchieu chứa Phim và Suatchieu.
Quan hệ Suatchieu – Rapchieuphim -> Chieuphim chuyển thành Chieuphim chứa Suatchieu và Rapchieuphim.
Quan hệ Rapchieuphim – NVQuanli -> Quanli chuyển thành Quanli chứa Rapchieuphim và NVQuanli.
Quan hệ Rapchieuphim – NVBanve -> Banve chuyển thành Banve chứa Rapchieuphim và NVBanve.
Bước 4:
Bổ sung các thuộc tính thành phần của quan hệ hợp thành/gắn chặt, ta thu được biểu đồ lớp thực thể pha thiết kế.
Trang 15● tblRapChieu có các thuộc tính: id, tên, địa chỉ ● tblPhim: id, tên, thể loại, đạo diễn
● tblSuatChieu: id, giờ chiếu, ngày chiếu
● tblGheNgoi: id, số ghế, trạng thái (đã đặt/chưa đặt) ● tblKhachHang: id, tên, email, số điện thoại
● tblVe: id, giá vé, loại vé
● tblDatVe: id, ngày đặt, trạng thái đặt vé ● tblNhanVien: id, tên, chức vụ
● tblPhanHoi: id, nội dung, ngày phản hồi ● tblDoanhThu: id, ngày, doanh thu
● tblDienVien: id, tên, ngày sinh, quốc tịch ● tblHangPhim: id, tên, địa chỉ
● tblLoaiGhe: id, tên, mô tả ● tblPhongChieu: id, tên, số ghế
Trang 16● tblQuocGia: id, tên
● tblDaoDien: id, tên, ngày sinh, quốc tịch ● tblTheLoai: id, tên, mô tả
● tblLoaiVe: id, tên, giá vé
● tblNguoiDung: id, tên đăng nhập, mật khẩu ● tblHeThongRap: id, tên, số phòng chiếu
Bước 3:
Chuyển quan hệ số lượng giữa các lớp thực thể thành quan hệ số lượng giữa các bảng:
● tblRapChieu – n tblPhim: Mỗi rạp chiếu có thể chiếu nhiều phim, nhưng mỗi phim chỉ thuộc một rạp chiếu.
● tblRapChieu – n tblSuatChieu: Mỗi rạp chiếu có thể có nhiều suất chiếu, nhưng mỗi suất chiếu thuộc một rạp chiếu.
● tblSuatChieu – n tblGheNgoi: Mỗi suất chiếu có nhiều ghế ngồi, nhưng mỗi ghế ngồi chỉ thuộc một suất chiếu.
● tblPhim – n tblSuatChieu: Mỗi phim có thể được chiếu ở nhiều suất, nhưng mỗi suất chiếu chỉ chiếu một phim.
● tblKhachHang – n tblVe: Mỗi khách hàng có thể mua nhiều vé, nhưng mỗi vé chỉ thuộc một khách hàng.
● tblKhachHang – n tblDatVe: Mỗi khách hàng có thể đặt nhiều vé, nhưng mỗi đặt vé chỉ thuộc một khách hàng.
● tblNhanVien – n tblDoanhThu: Mỗi nhân viên có thể ghi nhận nhiều doanh thu, nhưng mỗi doanh thu chỉ do một nhân viên ghi nhận.
● tblRapChieu – n tblPhanHoi: Mỗi rạp chiếu có thể nhận nhiều phản hồi, nhưng mỗi phản hồi chỉ thuộc một rạp chiếu.
● tblSuatChieu – n tblDoanhThu: Mỗi suất chiếu có thể sinh ra nhiều doanh thu, nhưng mỗi doanh thu chỉ thuộc một suất chiếu.
● tblPhim – n tblPhanHoi: Mỗi phim có thể nhận nhiều phản hồi, nhưng mỗi phản hồi chỉ liên quan đến một phim.
● tblDienVien – n tblPhim: Mỗi diễn viên có thể tham gia nhiều phim, nhưng mỗi phim chỉ có một đạo diễn.
● tblHangPhim – n tblPhim: Mỗi hãng phim có thể sản xuất nhiều phim, nhưng mỗi phim chỉ thuộc một hãng phim.
● tblLoaiGhe – n tblGheNgoi: Mỗi loại ghế có thể có nhiều ghế ngồi,
Trang 17nhưng mỗi ghế ngồi chỉ thuộc một loại ghế.
● tblPhongChieu – n tblGheNgoi: Mỗi phòng chiếu có thể có nhiều ghế ngồi, nhưng mỗi ghế ngồi chỉ thuộc một phòng chiếu.
● tblQuocGia – n tblDaoDien: Mỗi quốc gia có thể có nhiều đạo diễn, nhưng mỗi đạo diễn chỉ thuộc một quốc gia.
● tblTheLoai – n tblPhim: Mỗi thể loại có thể thuộc nhiều phim, nhưng mỗi phim chỉ thuộc một thể loại.
● tblLoaiVe – n tblVe: Mỗi loại vé có thể được sử dụng cho nhiều vé, nhưng mỗi vé chỉ thuộc một loại vé.
● tblNguoiDung – n tblDatVe: Mỗi người dùng có thể đặt nhiều vé, nhưng mỗi đặt vé chỉ thuộc một người dùng.
● tblHeThongRap – n tblRapChieu: Mỗi hệ thống rạp có thể có nhiều rạp chiếu, nhưng mỗi rạp chiếu chỉ thuộc một hệ thống rạp.
● tblNguoiDung – n tblPhanHoi: Mỗi người dùng có thể gửi nhiều phản hồi, nhưng mỗi phản hồi chỉ thuộc một người dùng.
Bước 4:
Bổ sung các thuộc tính khóa Khóa chính được thiết lập với thuộc tính id của các bảng tương ứng, trừ các bảng tblVe và tblDatVe.
Khóa ngoại được thiết lập cho các bảng:
● tblRapChieu – n tblPhim -> Bảng tblPhim có khóa ngoại
Trang 18● tblLoaiVe – n tblVe -> Bảng tblVe có khóa ngoại tblLoaiVeId ● tblNguoiDung – n tblDatVe -> Bảng tblDatVe có khóa ngoại
● Loại bỏ các bảng thống kê, như tblThongKeVe,
tblThongKeDatVe, tblThongKeDoanhThu, giữ lại các thông tin dẫn xuất trong bảng tblDoanhThu.
● Tổng hợp số lượng vé đã đặt và đã mua trong bảng tblVe và tblDatVe.
● Đưa ra thông tin về số lượng phản hồi và đánh giá từ khách
Trang 19hàng trong bảng tblPhanHoi.
● Tính toán tổng số lượng ghế ngồi và số lượng ghế đã đặt trong bảng tblGheNgoi.
● Tổng hợp thông tin về số lượng suất chiếu và các thông tin liên quan từ bảng tblSuatChieu.
● Xác định số lượng phòng chiếu và các thông tin chi tiết từ bảng tblPhongChieu.
● Thống kê thông tin về số lượng phim, đạo diễn, diễn viên, thể loại từ các bảng liên quan như tblPhim, tblDienVien,
● Thống kê thông tin về các hệ thống rạp chiếu và các thông tin chi tiết từ bảng tblHeThongRap.
Trang 20B.PHẦN VIỆC TỪNG CÁ NHÂN
I Sinh viên Vũ Anh Tuấn – UC : Khách hàng đặt
mua vé trực tuyến.
1.Đặc tả UC.
a.Hoạt động nghiệp vụ của UC:
- Khách hàng vào hệ thống => Giao diện trang chủ hiện ra: có 1 chức năng đăng nhập
- Khách hàng click đăng nhập => Giao diện đăng nhập hiện ra có ô nhập username, password và nút login
- Khách hàng nhập username, password và click login
- Có 2 trường hợp xảy ra:
+ Nếu đăng nhập sai => Hệ thống thông báo sai username hoặc password => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đăng nhập chứa thông tin cũ
+ Nếu đăng nhập đúng => Giao diện chính của khách hàng hiện ra và có chức năng đặt mua vé trực tuyến
- Khách hàng click vào chức năng đặt mua vé
Trang 21trực tuyến => Giao diện tìm kiếm suất chiếu phim hiện ra:
+ Danh sách lựa chọn ngày chiếu(7 ngày tính từ ngày hiện tại)
+ Danh sách lựa chọn khung giờ chiếu trong ngày
+ Danh sách lựa chọn các phim có lịch chiếu đang chọn
+ Danh sách phòng chiếu có thông tin đang chọn
- Khách hàng chọn 1 ngày => Giao diện hiện ra danh sách các khung giờ chiếu trong ngày đang chọn
- Khách hàng chọn 1 khung giờ chiếu => Giao diện hiện ra danh sách các phim có lịch chiếu đang chọn
- Khách hàng chọn 1 phim => Giao diện hiện ra danh sách phòng chiếu phù hợp với thông tin đang chọn
- Khách hàng click một phòng => Giao diện chọn chỗ ngồi hiện ra bao gồm:
+ Bảng tất cả các chỗ ngồi của phòng vừa chọn: mỗi ô tương ứng với một chỗ (khách hàng chỉ được chọn những chỗ chưa được đặt).
+ Nút hủy + Nút mua vé
- Nếu khách hàng click hủy => Hệ thống trở lại giao diện chọn phòng với các thông tin cũ - Nếu khách hàng chọn những chỗ còn trống và
click mua vé => Giao diện xác nhận mua vé hiện ra với thông tin:
+ Danh sách các vé vừa chọn, mỗi vé một dòng với thông tin: tên phim, ngày chiếu, giờ chiếu, tên phòng chiếu, loại phòng chiếu, mã chỗ ngồi, giá vé, nút
Trang 22- Nếu khách hàng click trở lại => Hệ thống trở lại giao diện chọn chỗ ngồi với các thông tin cũ
- Nếu khách hàng click áp dụng quà tặng của 1 vé => Giao diện lựa chọn quà tặng hiện ra có thông tin:
+ Danh sách các quà tặng đang có của khách hàng có điều kiện phù hợp với thông tin khách hàng đã chọn
+ Mỗi quà tặng ứng với một dòng với thông tin: tên, chi tiết, điều kiện áp dụng, hạn sử dụng
+ Khách hàng chọn 1 quà tặng => Hệ thống trở lại giao diện xác nhận mua vé với cập nhật quà tặng vừa lựa chọn và tổng tiền thanh toán
+ Nếu khách hàng click thanh toán => Giao diện thanh toán hiện ra với thông tin thanh toán (mã QR hoặc số tài khoản ngân hàng), tổng số tiền
- Khách hàng thực hiện thanh toán:
+ Nếu một trong các chỗ ngồi vừa chọn đã được thanh toán bởi khách hàng khác => Hệ thống thông báo chỗ ngồi đã được đặt bởi khách hàng khác => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện chọn chỗ ngồi với các cập nhập về các chỗ ngồi
Trang 23đã được đặt
+ Nếu các chỗ ngồi vừa chọn chưa được đặt bởi khách hàng khác => Hệ thống thông báo thanh toán thành công và lưu thông tin đặt vé vào cơ sở dữ liệu => Khách hàng click ok của thông báo => Hệ thống trở về giao diện chính của khách hàng
b Biểu đồ UC chi tiết:
Use chi tiết của chức năng đặt mua vé trực tuyến.
Chức năng đặt mua vé trực tuyến có các giao diện tương tác với khách hàng: + Đăng nhập => Đề xuất usecase đăng nhập.
+ Tìm kiếm phim => Đề xuất usecase tìm kiếm phim + Chọn phòng => Đề xuất usecase chọn phòng
+ Chọn chỗ ngồi => Đề xuất usecase chọn chỗ ngồi + Thanh toán => Đề xuất usecase thanh toán
+ Tích điểm thưởng => Đề xuất usecase tích điểm thưởng + Áp dụng quà tặng => Đề xuất usecase áp dụng quà tặng - Các usecase đăng nhập, tìm kiếm phim, chọn phòng, chọn chỗ ngồi,
thanh toán là bắt buộc mới hoàn thành được việc đặt mua vé trực tuyến do đó usecase đặt mua vé trực tuyến include các usecase này
- Các usecase áp dụng quà tặng, tích điểm thưởng là tùy chọn từ giao diện
Trang 24thanh toán, nên usecase áp dụng quà tặng, tích điểm thưởng có quan hệ mở rộng từ usecase thanh toán
- Như vậy biểu đồ usecase chi tiết cho chức năng đặt mua vé trực tuyến được trình bày trong hình trên Các usecase được mô tả như sau:
+ Tìm kiếm phim: cho phép khách hàng tìm kiếm phim chiếu theo ngày chiếu, giờ chiếu, tên phim
+ Chọn phòng chiếu: cho phép khách hàng chọn phòng chiếu để tiến hành mua vé
+ Chọn chỗ ngồi: cho phép khách hàng chọn chỗ ngồi để tiến hành mua vé
+ Thanh toán: cho phép khách hàng áp dụng phần quà, tích điểm thưởng và thanh toán các vé đã chọn
1 Khách hàng Trần Minh C truy cập vào hệ thống
2 Giao diện chính của hệ thống hiện ra có ít nhất 1 chức năng
Trang 258 Giao diện lựa chọn suất chiếu hiện ra có:
- Danh sách lựa chọn lịch chiếu tính từ ngày hiện tại.(đang chọn lịch đầu tiên ngày 24/09/2023 20:00)
- Danh sách phim có lịch chiếu 24/09/2023, khung giờ = 20:00 (đang chọn phim đầu tiên)
phim phim TênĐạo diễn Thời lượng
MV01 Oppenheimer Chirstopher Nolan 180 phút MV02 Joker Todd Phillips 121 phút MV03 The Usual Suspect Bryan Singer 106 phút
- Danh sách phòng chiếu có lịch chiếu và phim đang chọn
Mã phòng Tên phòng Loại phòng Số ghế
- Nút/ link next
9 Khách hàng chọn dòng đầu tiên với thông tin mã phòng = R01, tên phòng = 101, loại phòng = 2D, click next
10.Giao diện chọn vị trí ngồi hiện ra với thông tin:
- Thông tin xuất chiếu vừa chọn bao gồm: mã phim = MV01, tên phim = Oppenheimer, đạo diễn = Christopher Nolan, thời lượng = 180 phút, ngày chiếu = 24/09/2023, giờ chiếu = 20:00 - Thông tin phòng vừa chọn: mã phòng = R01, tên phòng =
Trang 2611.Khách hàng tích chọn 1 chỗ ngồi có vị trí D5 và click mua
- Nút/link thanh toán
13.Khách hàng click thanh toán
14.Giao diện hiển thị chi tiết về số tài khoản ngân hàng hiện
15.Khách hàng thực hiện thanh toán
16.Hệ thống thông báo thanh toán thành công 17.Khách hàng click ok của thông báo
18.Hệ thống trở lại giao diện chính của khách hàng
2 Phân tích UC
a Phân tích lớp module
Bước 1: Giao diện trang chủ => Đề xuất Class Homeview, cần có subLogin
inpUsername, inpPassword, subLogin
+ input: username, password (Member) + output: boolean
+ Gán cho Class Member
ClientHomeView cần có: subBookingTicket, outUsername, outFullname, outEmail
Trang 27SearchShowTimeView, cần có outInpTimeSlot, outInpFilm, outSubRoom
=> đề xuất phương thức getShowTimeFromCurrentDate() + input: date
+ output: TimeSlot[] + Gán cho Class TimeSlot
có lịch chiếu vừa chọn => đề xuất phương thức getFilmHaveTimeSlot()
+ input: TimeSlot + output: Film[] + Gán cho Class Film
tin Room => đề xuất phương thức getShowTimeWithRoom() + input: timeSlot, Film (ShowTime)
+ output: ShowTime[] + Gán cho Class ShowTime
ngồi => đề xuất Class SelectSeatView, cần có outInpAvailableSeat, outBookedSeat, subBooking, subBack
đề xuất phương thức getAvailableSeat() + input: ShowTime
+ output: Seat[] + Gán cho Class Seat
xuất phương thức getBookedSeat() + input: ShowTime
+ output: Seat[] + Gán cho Class Seat
xuất Class PaymentView: outListTicket, subApplyGift, outGift, outTotalBonusPoint, subCancel, subPayment
outSubGiftOfClient
Trang 28dụng phù hợp với vé, hóa đơn của khách hàng => Đề xuất phương thức getGiftOfClient()
+ input: clientID, Bill (Bill) + output: RedemptionGift[] + Gán cho Class RedemptionGift
DetailPayment: outBank, outBankNumber, outTotal
xuất phương thức saveBill()
4 Class HomeView gọi Class LoginView 5 Class LoginView hiển thị cho khách hàng
6 Khách hàng nhập username, password, click login 7 Class LoginView gọi Class Member
8 Class Member gọi phương thức login()
Trang 299 Class Member trả kết quả cho Class LoginView 10 Class LoginView gọi Class ClientHomeView 11 Class ClientHomeView hiển thị cho người dùng 12 Khách hàng click bookingTicket
13 Class ClientHomeView gọi Class SearchShowTimeView 14 Class SearchShowTimeView gọi Class TimeSlot
15 Class TimeSlot gọi phương thức getTimeSlotFromCurrentDate() 16 Class TimeSlot trả kết quả cho Class SearchShowTimeView 17 Class SearchShowTimeView gọi Class Film
18 Class Film gọi phương thức getFilmHaveTimeSlot() 19 Class Film trả kết quả cho Class SearchShowTimeView 20 Class SearchShowTimeView gọi Class ShowTime
21 Class ShowTime gọi phương thức getShowTimeWithRoom() 22 Class ShowTime trả kết quả cho Class SearchShowTimeView 23 Class SearchShowTimeView hiển thị cho khách hàng
24 Khách hàng chọn 1 ShowTime, click next
25 Class SearchShowTimeView gọi Class SelectSeatView 26 Class SelectSeatView gọi Class Seat
27 Class Seat gọi phương thức getAvailableSeat() 28 Class Seat trả kết quả cho Class SelectSeatView 29 Class SelectSeatView gọi Class Seat
30 Class Seat gọi phương thức getBookedSeat() 31 Class Seat trả kết quả cho Class SelectSeatView 32 Class SelectSeatView hiển thị cho khách hàng 33 Khách hàng chọn 1 seat và click booking 34 Class SelectSeatView gọi ClassPaymentView 35 Class PaymentView hiển thị cho khách hàng 36 Khách hàng click payment
37 Class PaymentView gọi Class DetailPaymentView 38 Class DetailPaymentView hiển thị cho khách hàng 39 Khách hàng thanh toán
40 Class DetailPaymentView gọi Class Bill 41 Class Bill gọi phương thức saveBill()
42 Class Bill trả kết quả cho Class DetailPaymentView 43 Class DetailPaymentView hiển thị thông báo thành công.
Trang 303 Thiết kế UC
a Thiết kế giao diện và đề xuất các lớp (giao diện, lớp truy xuất dữ liệu) Bước 1: Thiết kế giao diện
Trang 31● Bước 2: Đề xuất các lớp giao diện tương ứng
- Tầng giao diện có các trang jsp: HomeView.jsp, LoginView.jsp, doLogin.jsp, ClientHomeView.jsp, preSearch.jsp,
SearchShowTimeView.jsp, SelectSeatView.jsp, DetailPaymentView.jsp, ApplyGiftView.jsp, doSaveBill.jsp
Trang 32● Bước 3: Đề xuất các lớp truy xuất dữ liệu DAO
- Tầng thao tác dữ liệu bao gồm: DAO, MemberDAO, FilmDAO, TimeSlotDAO, ShowTimeDAO, SeatDAO, RedemptionGiftDAO,
+ Gán cho Class MemberDAO
- Tại trang preSearch.jsp cần lấy danh sách các TimeSlot tính từ ngày giờ hiện tại
=> đề xuất hàm getTimeSlotFromCurrentDate() + input: date, time(Date)
+ output: List<TimeSlot>
+ Gán cho Class TimeSlotDAO
- Tại trang preSearch.jsp cần lấy danh sách các Film của một TimeSlot => đề xuất hàm getFilmHaveTimeSlot()
+ input: TimeSlot + output: List<Film>
+ Gán cho Class FilmDAO
- Tại trang preSearch.jsp cần lấy danh sách các ShowTime bao gồm cả thông tin Room của một TimeSlot và một Film
=> đề xuất hàm getShowTimeWithRoom() + input: TimeSlot, Film
+ output: List<ShowTime>
+ Gán cho Class ShowTimeDAO
- Tại trang SelectSeatView.jsp cần lấy danh sách các Seat còn của một ShowTime
=> đề xuất hàm getAvailableSeat() + input: ShowTime
+ output: List<Seat>
+ Gán cho Class SeatDAO
- Tại trang SelectSeatView.jsp cần lấy danh sách các Seat đã được đặt của một ShowTime
=> đề xuất hàm getBookedSeat() + input: ShowTime
+ output: List<Seat>
Trang 33+ Gán cho Class SeatDAO
- Tại trang ApplyGiftView.jsp cần lấy danh sách các RedemptionGift của khách hàng
=> đề xuất hàm getGiftOfClient() + input: Bill
+ output: List<RedemptionGift>
+ Gán cho Class RedemptionGiftDAO
- Tại trang doSaveBill.jsp cần kiểm tra và lưu thông tin Bill => đề xuất hàm saveBill()
+ input: Bill + output: boolean
+ Gán cho Class BillDAO
● Bước 4: Bổ sung các lớp thực thể liên quan
Trang 34b Thiết kế động: kịch bản UC cuối và biểu đồ tuần tự cho từng modul.
Trang 355 Trang LoginView.jsp hiển thị cho khách hàng
getTimeSlotFromCurrentDate()
setFilm(), setTimeSlot()
Trang 3640 Class ShowTime trả lại kết quả cho Class ShowTimeDAO
Trang 3777 Khách hàng click ok
II Sinh viên Nguyễn Văn Tú – UC : Khách hàng đổi điểm thưởng lấy quà tặng/vé.
1.Đặc tả UC.
a.Hoạt động nghiệp vụ của UC:
Khách hàng vào hệ thống => Giao diện trang chủ hiện ra: có 1 chức năng đăng nhập
- Khách hàng click đăng nhập => Giao diện đăng nhập hiện ra có ô nhập username, password và nút login
- Khách hàng nhập username, password và click login
Trang 38+ Nếu đăng nhập sai => Hệ thống thông báo sai username hoặc password => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đăng nhập chứa thông tin cũ
+ Nếu đăng nhập đúng => Giao diện chính của khách hàng hiện ra: có chức năng đổi điểm thưởng
- Khách hàng click đổi điểm thưởng => Giao diện lựa chọn phần quà hiện ra với thông tin:
+ Điểm thưởng hiện có của khách hàng
+ Bảng danh sách các quà tặng Mỗi quà tặng tương ứng với một dòng có các thông tin mã, tên, điều kiện áp dụng, số điểm cần để đổi
- Khách hàng click vào đổi quà trên một dòng:
+ Nếu tổng điểm thưởng của khách hàng đang có nhỏ hơn tổng số điểm thưởng cần để đổi quà => Hệ thống thông báo không đủ điều kiện đổi quà => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đổi quà
+ Nếu tổng điểm thưởng của khách hàng đang có lớn hơn hoặc bằng tổng số điểm thưởng cần để đổi quà => Hệ thống thông báo thành công và lưu thông tin phần quà vào cơ sở dữ liệu => Khách hàng click ok của thông báo thành công => Hệ thống trở về giao diện đổi quà
b Biểu đồ UC chi tiết:
Use chi tiết của chức năng Khách hàng đổi điểm thưởng lấy quà tặng/vé.
Trang 39Ch ức năng đổi điểm thưởng có các giao diện tương tác với khách hàng:
+ Đăng nhập => Đề xuất usecase đăng nhập
+ Chọn phần quà => Đề xuất usecase chọn phần quà
- Chọn phần quà là bắt buộc mới hoàn thành được việc đổi điểm thưởng nên usecase đổi điểm thưởng include usecase này
- Như vậy biểu đồ usecase chi tiết cho chức năng đổi điểm thưởng được trình bày trong hình trên.
Trang 40Main event 1 Khách hàng Trần Minh C truy cập vào hệ thống 2 Giao diện đăng nhập hiện lên có
5 Khách hàng click đổi quà
6 Giao diện đổi quà hiện lên có thông tin:
- Thông tin khách hàng: username = nvt123, họ và tên = C, email =
nvt@xx.com, số điện thoại = 0393333333, địa chỉ = Hà Nội, tổng
GF04 1 bỏng ngô 80000 Hóa đơn5 [Text Box] - Danh sách quà đang chọn(hiện trống)
Mã quà Tên quàLoại quà Điều kiện