Hướng đến mục tiêu xây dựng nên một hệ thống bán vé mùa tổng quát, trong quá trình phân tích, thiết kế và cài đặt những phần chung và phần đặc thù chúng tôi đã luôn tuân thủ theo phương pháp hướng đối tượng, sử dụng mô hình MVC (đã đề cập ở trên). Nhờ vậy việc tái sử dụng các thành phần (component) chung trở nên dễ dàng, ứng dụng xây dựng đáp ứng đươc ba yêu cầu: dễ bảo trì, tăng tính mở rộng và khả năng tương thích cao.
Tuy nhiên, do thời gian làm luận văn hạn chế và sự khó khăn trong quá trình tìm hiểu nghiệp vụ nên đề tài của chúng tôi vẫn còn một số vấn đề cần mở rộng như: - Hoàn thiện những chức năng vẫn chưa được cài đặt xong của chương trình: Gửi mail cho khách hàng với nội dung về quá trình đặt vé, thông tin của khách hàng và đường dẫn để khách hàng có thể download vé; thống kê vé đặt trong một khoảng thời gian xác định. Riêng chức năng hủy vé đặt và gia hạn vé cho mùa sau sẽđược nâng cao hơn hiện nay. - Xây dựng thêm nhiều hệ thống bán vé mùa trước cho những sự kiện phổ
biến như: ca nhạc, kịch, hòa nhạc, các môn thể thao như: bơi lội, bóng chuyền....từ những phần chung đã xây dựng. Đặc biệt xây dựng hệ thống bán vé mùa trước cho những sự kiện thuộc loại 1 để có thể sử dụng 2 loại vé còn lại là: vé mùa nhiều ngày (Multi-day season ticket) và vé mùa nhiều chương trình (Multi-performance season ticket).
- Do nghiệp vụ phức tạp nên hệ thống chỉ cung cấp ở mức giả lập quá trình đặt vé trong phần giao tiếp với khách hàng nhưng chưa giải quyết được các trường hợp ràng buộc trong khi đặt vé....Do đó cần có nghiệp vụ quy định rõ ràng về những trường hợp này để có thể tin học 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
chúng đem vào sử dụng trong thực tế. Trong tương lai hệ thống tạo vé mùa sẽđược phát triển thành một hệ thống đặt vé mùa trước hoàn chỉnh. - Xây dựng những interface hoàn hảo hơn giữa các hệ thống con thông
qua Web Service để tăng tính độc lập giữa các hệ thống con vì kỹ thuật này không đòi hỏi chúng phải hiểu kiến trúc lẫn nhau.
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
Tài liệu tham khảo
[1] James Rumbaugh, Ivar Jacobson, Grandy Booch, The Unified Modeling
Language Reference Manual, Addison-Wesley, 1998.
[2] James Goodwill, Mastering Jakarta Struts, Wiley Publishing, Inc., 2002
[3] Chuck Cavaness, Programming Jakarta Struts, O’Reilly, 2002
[4] Ted Husted, Cedric Dumoulin, George Franciscus, David Winterfeldt, Struts
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
Phụ lục A. Đặc tả một số các Use Case chính A.1 Phía người tổ chức
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ừ