A. Đặc tả một số các Use Case chính
A.1.1 Sự kiện phim
Quản lý vé mùa nhiều lần vào (Multi-entry season ticket)
Công việc quản lý các vé mùa nhiều lần gồm 3 use-case là thêm 1 vé, xoá 1 vé, hiệu chỉnh thông tin 1 vé và hiển thị thông tin chi tiết của vé mùa nhiều lần vào.
Thêm 1 vé
Use-case này bắt đầu khi người dùng chọn nút “Add new” trong màn hình hiển thị danh sách các vé mùa nhiều lần vào.
Pre-condition:
- Người dùng phải đăng nhập thành công vào hệ thống
Luồng chính:
1) Hệ thống hiển thị màn hình thông tin chi tiết vé. 2) Người dùng nhập thông tin vào form trên trang. 3) Người dùng chọn “Save”.
4) Hệ thống kiểm tra dữ liệu nhập và các ràng buộc toàn vẹn khác. 5) Hệ thống thêm vé vào CSDL.
6) Hệ thống quay về màn hình danh sách vé mùa nhiều lần vào.
Luồng phụ:
1) Người dùng nhập dữ liệu sai:
a. Hệ thống thông báo lỗi cho người dùng b. Hệ thống trả focus về cho control gây lỗi 2) Hệ thống không thể thêm vé thành công:
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
3) Người dùng nhập phần “Benefits” vượt quá 5 dòng hoặc 4 dòng cuối dài hơn 40 kí tự:
a. Hệ thống hiển thị lại màn hình thông tin chi tiết vé b. Hệ thống hiển thị thông báo lỗi
Xoá 1 vé
Use-case này bắt đầu khi người dùng chọn một số vé muốn xoá và chọn nút “Remove” trong màn hình danh sách vé mùa nhiều lần vào.
Pre-condition:
- Người dùng đăng nhập thành công vào hệ thống
Luồng chính:
1) Hệ thống hiển thị thông báo hỏi người dùng có muốn xoá hay không 2) Người dùng chấp nhận xoá
3) Hệ thống xoá các vé được chọn khỏi CSDL
4) Hệ thống hiển thị lại màn hình danh sách vé mùa nhiều lần
Luồng phụ:
1) Người dùng không chấp nhận xoá: a. Use-case kết thúc
2) Hệ thống không thể xoá vé vì vé đã có người đặt (khách hàng đặt): a. Hệ thống nạp lại màn hình danh sách vé mùa nhiều lần vào. b. Hệ thống hiển thị thông báo lỗi
3) Lỗi hệ thống không thể xoá thành công:
a. Hệ thống hiển thị màn hình thông báo lỗi
Hiệu chỉnh 1 vé
Use-case này bắt đầu khi người dùng chọn vé tương ứng trong màn hình hiển thị danh sách các vé mùa nhiều lần vào.
Pre-condition:
- Người dùng đăng nhập thành công vào hệ thống
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
1) Hệ thống hiển thị màn hình thông tin chi tiết vé với dữ liệu được nạp từ CSDL.
2) Người dùng hiệu chỉnh thông tin vào form trên trang. 3) Người dùng chọn “Save”.
4) Hệ thống kiểm tra dữ liệu nhập và các ràng buộc toàn vẹn khác. 5) Hệ thống cập nhật thông tin mới của vé vào CSDL.
6) Hệ thống quay về màn hình danh sách vé mùa nhiều lần vào.
Luồng phụ:
1) Người dùng nhập dữ liệu sai:
a. Hệ thống thông báo lỗi cho người dùng b. Hệ thống trả focus về cho control gây lỗi 2) Vé đang hiệu chỉnh đã được khách hàng đặt mua:
a. Hệ thống nạp lại màn hình thông tin chi tiết vé b. Hệ thống hiển thị thông báo lỗi cho người dùng
3) Người dùng nhập phần “Benefits” vượt quá 5 dòng hoặc 4 dòng cuối dài hơn 40 kí tự:
a. Hệ thống nạp lại màn hình thông tin chi tiết vé b. Hệ thống hiển thị thông báo lỗi cho người dùng 4) Hệ thống không thể thêm vé thành công:
a. Hệ thống chuyển sang màn hình thông báo lỗi
A.1.2 Sự kiện Championship
Quản lý vé mùa thành viên (Member season ticket)
Use-case này bắt đầu khi người dùng chọn nút “Add new” trong màn hình danh sách các vé mùa thành viên.
Pre-condition:
- Người dùng đăng nhập thành công vào hệ thống
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
1) Hệ thống hiển thị màn hình thông tin chi tiết vé. 2) Người dùng nhập thông tin vào form trên trang. 3) Người dùng mở màn hình nhập giá vé.
4) Người dùng nhập giá vé cho các khu vực ngồi. 5) Người dùng chọn nút “Save”.
6) Hệ thống kiểm tra dữ liệu nhập và đóng màn hình nhập giá vé, quay về màn hình thông tin chi tiết vé.
7) Người dùng chọn “Continue” trong màn hinh này.
8) Hệ thống kiểm tra dữ liệu nhập trong form và các ràng buộc toàn vẹn khác.. 9) Hệ thống hiển thị màn hình chọn các trận đấu mà vé đó không hỗ trợ trong
mùa hiện tại.
10) Người dùng chọn các trận đấu trong danh sách nạp lên và chọn “Save” 11) Hệ thống thêm vé vào CSDL.
12) Hệ thống quay về màn hình danh sách vé mùa nhiều lần vào.
Luồng phụ:
1) Người dùng nhập dữ liệu sai trong màn hình thông tin chi tiết: a. Hệ thống thông báo lỗi cho người dùng
b. Hệ thống trả focus về cho control gây lỗi
2) Người dùng không nhập giá vé trong màn hình nhập giá vé: a. Hệ thống thông báo lỗi cho người dùng
b. Hệ thống trả focus về cho control gây lỗi
3) Người dùng nhập dữ liệu sai trong màn hình nhập giá vé: a. Hệ thống thông báo lỗi cho người dùng
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
4) Người dùng nhập ngày bắt đầu và kết thúc không nằm trong thời gian diễn ra mùa giải:
a. Hệ thống nạp lại màn hình thông tin chi tiết vé b. Hệ thống hiển thị thông báo lỗi cho người dùng
5) Người dùng nhập phần “Benefits” vượt quá 5 dòng hoặc 4 dòng cuối dài hơn 40 kí tự:
a. Hệ thống nạp lại màn hình thông tin chi tiết vé b. Hệ thống hiển thị thông báo lỗi cho người dùng
6) Hệ thống không thể nạp được danh sách trận đấu của đội bóng được chọn: a. Hệ thống chuyển sang màn hình thông báo lỗi
7) Hệ thống không thể thêm vé vào CSDL: Hệ thống chuyển sang màn hình thông báo lỗi
Hủy vẻ mùa thành viên
A.2 Phía khách hàng
A.2.1 Sự kiện phim
Gia hạn vé mùa nhiều lần vào
Use-case này bắt đầu khi người dùng chọn chức năng “Renew & Cancel”.
Pre-condition: Không Luồng chính: 1) Hệ thống hiển thị màn hình nhập mã số của vé đặt 2) Người dùng nhập mã số vé vào 3) Người dùng chọn “Renew”
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
4) Hệ thống kiểm tra tính hợp lệ của vé
5) [Nếu không có lỗi] Hệ thống hiển thị màn hình thông tin cũ của vé đặt. 6) Người dùng chọn ngày bắt đầu cho việc gia hạn có hiệu lực
7) Người dùng chọn “Continue”
8) Hệ thống lưu thông tin gia hạn vào CSDL
9) Hệ thống hiển thị màn hình thông báo việc gia hạn đã được thực hiện
Luồng phụ:
1) Khách hàng nhập mã số vé sai qui định:
a. Hệ thống thông báo lỗi cho người dùng b. Hệ thống trả focus về cho control gây lỗi 2) Vé của khách hàng không được phép gia hạn:
a. Hệ thống nạp lại màn hình nhập mã số vé b. Hệ thống hiển thị thông báo lỗi cho người dùng 3) Ngày bắt đầu gia hạn bé hơn ngày hiện hành:
a. Hệ thống nạp lại màn hình nhập mã số vé b. Hệ thống hiển thị thông báo lỗi cho người dùng 4) Hệ thống không thể cập nhật thông tin gia hạn vào CSDL:
a. Hệ thống chuyển sang màn hình thông báo lỗi
A.2.2 Sự kiện Championship
Mua vé thành viên
Use-case này bắt đầu khi khách hàng chọn 1 vé trong danh sách vé và chọn “Buy” trong màn hình liệt kê danh sách vé mùa thành viên.
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
- Hệ thống nạp được danh sách vé mùa thành viên
Luồng chính:
1) Hệ thống hiển thị màn hình thông tin chi tiết vé được chọn 2) Khách hàng chọn khu vực ngồi cho mình.
3) [Nếu vé của khách hàng là cho đội đá trên sân nhà] Người dùng chọn nút “Get seat” để lấy 1 số ghế.
4) Hệ thống chọn chỗ ngồi cho khách hàng và hiển thị trong khung nhập bên dưới
5) Khách hàng chọn “Continue”
6) Hệ thống hiển thị màn hình nhập thông tin khách hàng (gồm tên, họ và email)
7) Khách hàng nhập các thông tin này 8) Khách hàng chọn “Continue”.
9) [Nếu thông tin nhập là hợp lệ] Hệ thống hiển thị màn hình chứa các thông tin khách hàng vừa chọn và nhập.
10) Khách hàng chọn “Submit order”.
11) Hệ thống thêm vé đặt vào CSDL và tạo vé in (dạng .PDF).
12) [Nếu việc tạo vé in thành công] Hệ thống hiển thị màn hình tải vé (download).
13) Khách hàng chọn vào liên kết để tải vé về và in.
Luồng phụ:
1) Nếu vé của khách hàng chứa các trận đấu mà đội bóng là đội khách: a. Qui trình thực hiện tiếp bước 5:
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
a. Hệ thống nạp lại màn hình nhập thông tin khách hàng b. Hệ thống hiển thị thông báo lỗi cho người dùng 3) Hệ thống không thể thêm vé đặt vào CSDL:
a. Hệ thống chuyển sang màn hình thông báo lỗi 4) Nếu việc tạo vé in không thành công:
a. Hệ thống chuyển sang màn hình thông báo lỗi
B. Sơ đồ tuần tự
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
126
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
127
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
129
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
131
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
STT Tên lớp Mô tả
Các lớp interface (cung cấp các dịch vụ)
1 UserStartupService Cung cấp các phương thức tạo các người (user) trong hệ thống khi khởi động hệ thống.
2 UserService Cung cấp các phương thức cho việc đăng nhập, thêm người dùng mới và truy xuất thông tin người dùng hệ thống.
3 SeasonTicketManagementService Cung cấp các phương thức thực hiện quản lý các loại vé (gồm 6 loại như đã phân tích) và giá bán các loại vé này. 4 OrderRegistrationService Cung cấp các phương thức cho việc
đăng kí mua vé theo mùa.
5 OrderRenewCancelService Cung cấp các phương thức cho việc gia hạn và huỷ vé đã được đặt trước đó. 6 SearchService Cung cấp các phương thức cho việc tìm
kiếm các vé đặt, từđó thực hiện gia hạn hay huỷ vé.
7 EventService Cung cấp các phương thức lấy thông tin sự kiện từ REAS.
8 FilmService Cung cấp các phương thức lấy các thông tin riêng cho sự kiện phim từ REAS như danh sách các loại khách hàng, danh sách các phim trong tuần,
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
…
9 ChampionShipService Cung cấp các phương thức lấy thông tin riêng cho sự kiện Championship từ REAS như danh sách các đội bóng, danh sách trận đấu của 1 đội bóng trên sân nhà, sân khách, …
Các lớp xử lý nghiệp vụ
10 UserServiceImpl Lớp xử lý nghiệp vụ cho interface số 1
và số2.
11 SeasonTicketServiceImpl Lớp chuyển tiếp yêu cầu từ interface số
3 xuống cho lớp xử lý thực sự là
SeasonTicketProcess.
12 SeasonTicketProcess Lớp xử lý nghiệp vụ cho interface số 3. 13 OrderServiceImpl Lớp chuyển tiếp yêu cầu từ interface số
4, số 5, số 6 xuống cho lớp xử lý thực sự là OrderProcess.
14 OrderProcess Lớp xử lý nghiệp vụ cho interface số 4,
số 5, số 6.
15 FilmServiceImpl Lớp xử lý nghiệp vụ cho interface số 8. Lớp này sẽ gọi các phương thức từ interface FilmSTSSupport-Service được cung cấp từ REAS.
16 ChampionShipServiceImpl Lớp xử lý nghiệp vụ cho interface số 9. Lớp này sẽ gọi các phương thức từ interface ChampionShip- STSSupportService được cung cấp từ
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
REAS.
Các lớp quản lý kết nối và truy xuất dữ liệu
17 UserManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số13.
18 AbstractSeasonTicketManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 12. Các phương thức đọc/ghi dữ liệu trong lớp này đều là các phương thức trừu tường và sẽ được cài đặt cụ thể trong các lớp dẫn xuất.
19 TopicSeasonTicketManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số12 và dành riêng cho vé theo chủ đề (trong sự kiện Championship vé này được đổi tên thành vé mùa theo chủ đề). Các phương thức đọc/ghi trong lớp này cũng là trừu tượng và sẽ được cài đặt trong lớp dẫn xuất
20 ChampionShipTopicSeasonTicket Manager
Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 12 và dành riêng cho vé mùa theo chủ đề dùng cho sự kiện Championship.
21 ReductionSeasonTicketManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 12 và dành riêng cho vé mùa giảm giá
22 MultiEntrySeasonTicketManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 12 và dành riêng cho vé mùa nhiều lần vào.
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
23 VIPSprSeasonTicketManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 12 và dành riêng cho vé mùa dành cho V.I.P và nhà tài trợ.
24 OrderManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ lớp số 13, 14. Các phương thức đọc/ghi dữ liệu dành cho vé đặt chung (không lệ thuộc vào sự kiện) sẽđược cài đặt. 25 ReductionOrderManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ
lớp số 13, 14 dành cho vé mùa giảm giá. Lớp này sẽ override lại các phương thức đọc/ghi chính trong lớp cơ sở của nó nhằm thực hiện các thao tác riêng. 26 FilmMultiEntryOrderManager Lớp đọc/ghi dữ liệu cho các yêu cầu từ
lớp số 13, 14 dành cho vé mùa nhiều lần vào. Lớp này sẽ override lại các phương thức đọc/ghi chính trong lớp cơ sở của nó nhằm thực hiện các thao tác riêng.
Phần liên kết với REAS
27 recevent.stssupport Gói chứa các lớp interface cung cấp các phương thức cần thiết cho hệ thống vé theo mùa.
Bảng 6-1 Mô tả sơđồ lớp cho tầng back-end
Đặc tả hàm cho các lớp interface
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
STT addSeasonTicket(AbstractSeasonTicketDTO ticket)
Input - Ticket: AbstractSeasonTicketDTO
Output - String
Exception - DataInputException - TicketAlreadyExistException 1
Mô tả Thêm 1 vé vào CSDL. Vé này được biểu diễn trừu tượng trong đối tượng AbstractSeasonTicketDTO. Đối với từng loại vé, đối tượng tương ứng sẽđược sử dụng. Các đối tượng vé cụ thể (kế thừa trực tiếp/gián tiếp) trong hệ thống cài đặt gồm:
• ChampionShipTopicSeasonTicketDTO • ChampionShipVIPSponsorSeasonTicketDTO • MultiEntrySeasonTicketDTO
• ReductionSeasonTicketDTO
STT removeSeasonTickets(String[] ticketsName)
Input - ticketsName: String[]
Output - Boolean
Exception - DataInputException
- SomeTicketsAlreadyOrderedException 2
Mô tả Xoá một số vé khỏi CSDL của hệ thống theo tên. Trong CSDL, tên vé phải là duy nhất.
STT updateSeasonTicket(String ticketName, AbstractSeasonTicketDTO newTicketData)
Input - ticketName: String
- newTicketData: AbstractSeasonTicketDTO Output - Boolean 3 Exception - DataInputException - SomeTicketsAlreadyOrderedException - TicketAlreadyExistException
Hệ thống quản lý vé đặt theo mùa phục vụ các sự kiện thể thao, văn hóa
Mô tả Cập nhật thông tin 1 vé đã tồn tại vào CSDL. Tên vé xác định trong tham số 1st dùng để xác định vé tồn tại. Thông tin mới được chứa trong đối tượng ở tham số 2nd.
STT getSeasonTicket(String ticketName)
Input - ticketName: String
Output - AbstractSeasonTicketDTO Exception
4
Mô tả Truy xuất thông tin 1 vé. Thông tin này gồm thông tin chung,