Modul "Đặt sân" với mô tả chi tiết nghiệp vụ: Khách hàng KH đến yêu cầu đặt sân → Nhân viên NV chọn chức năng đặt sân → hệ thống hiện giao diện tìm sân trống theo khung giờ → NV nhập khu
Nội dung pha đặc tả
Danh sách các từ chuyên môn trong lĩnh vực của ứng dụng (glossary) + giải thích
STT Tên thuật ngữ Tên Tiếng Anh Mô tả
1 Sân bóng Pitch Sân thi đấu dùng để chơi môn đá bóng, là đối tượng được khách hàng thuê để sử dụng 2 Sân con Mini pitch Là sân bóng đá nhưng có kích thước nhỏ hơn sân bóng đá truyền thống dành cho 11 người/đội, thường dành cho 5 – 7 người/đội 3 Sân lớn Big football field Cũng giống như sân bóng, là sân do nhiều sân con ghép lại.
4 Khung giờ Time Ý chỉ một khoảng thời gian cụ thể nào đó (Ví dụ: 19h-21h), khoảng thời gian để giới
5 Phiếu thuê sân Pitch rental receipt
Là tài liệu được đưa cho khách hàng ngay sau khi khách làm hợp đồng thuê sân, bao gồm các thông tin như: ngày làm hợp đồng, thông tin chủ sân và khách hàng, giá thuê, khung giờ thuê, …Mỗi lần khách hàng đến đá bóng đều nhận 1 phiếu thuê sân
6 Tiền đặt cọc Deposit Số tiền mà khách hàng hoặc bên thuê sân phải thanh toán trước khi sử dụng dịch vụ thuê sân, nhằm đảm bảo sự chắc chắn của bên thuê sân đối với việc sử dụng sân và việc giữ chỗ cho họ trong thời gian cụ thể.
7 Tiền thuê sân Pitch rental fee Là khoản tiền mà bên thuê sân phải thanh toán cho chủ sân để được sử dụng sân trong một khoảng thời gian nhất định
8 Hợp đồng thuê sân Pitch rental contract
Thỏa thuận pháp lý giữa 2 bên: người thuê sân và chủ sân, quy định quyền lợi và nghĩa vụ của mỗi bên về việc sử dụng sân bóng trong một khoảng thời gian cố định nào đó, gồm: giá cả,
9 Hóa đơn Bill Tài liệu chứng từ chính thức được cung cấp cho khách hàng, chứa thông tin yêu cầu thanh toán tiền thuê sân, các chi phí phát sinh khác kèm theo đơn giá cụ thể.
Sports drink Đồ uống cung cấp lại năng lượng, giải khát sau khi người chơi hoạt động thể chất, có thể là nước lọc, nước ngọt, khoáng ion
12 Đơn giá Unit price Giá cụ thể mỗi mặt hàng
13 Mã ID Là cái để phân biệt giữa các mặt hàng khác nhau 14 Tổng tiền Total amount Tổng số tiền tất cả các mặt hàng được nhập và tổng tiền thuê sân được tính bằng tổng các thành tiền
15 Doanh thu Revenue Là tổng số tiền thu được từ việc cho thuê sân bóng và cho khách hàng sử dụng các dịch vụ có liên quan
16 Tiền dư nợ cũ Unpaid balance Số tiền mà khách hàng chưa thanh toán hết từ các lần thuê/sử dụng các dịch vụ trước đó 17 Khách hàng Customer Tổ chức/cá nhân sử dụng dịch vụ của bên cho thuê sân bóng nhằm tham gia các hoạt động đá bóng, ăn nhẹ và các hoạt động khác 18 Quản lí sân Pitch manager Là người được giao trách nhiệm trực tiếp quản lý hoạt động hàng ngày của sân bóng, cập nhật thông tin sân, nắm rõ doanh thu của sân, quản lý nhân viên của sân mình phụ trách
19 Nhân viên sân Employee Là người làm việc tại sân bóng, trực tiếp tương tác với khách hàng trong các hoạt động như: đặt sân theo yêu cầu, tư vấn khách hàng, thanh toán cho khách, v.v…
20 Chủ sân Football field owner cá nhân/ tổ chức sở hữu sân bóng chịu trách nhiệm về việc cung cấp và duy trì các điều kiện cần thiết cho hoạt động sân bóng.
21 Nhà cung cấp Supplier Cá nhân/Tổ chức cung cấp các mặt hàng và dịch vụ cho chủ sân/quản lý tiếp nhận, và họ sẽ sử dụng những mặt hàng ấy phục vụ khách thuê sân 22 Sân trống Available/free Là sân mà chưa có ai thuê hoặc sử dụng vào thời điểm nhất định, cho phép khách hàng hoặc nhân viên có thể đặt và sử dụng
Rent Việc một đội bóng sử dụng sân bóng của người khác để chơi bóng trong một khoảng thời gian nhất định và trả tiền để đổi lấy sự sử dụng đó 24 Thuê theo buổi Rent by the hour Thuê sân trong một thời gian ngắn (vài tiếng)
(Ví dụ như từ 5h – 7h tối ngày Thứ 7 09/02)
Mô tả hệ thống chi tiết bằng ngôn ngữ tự nhiên
Hệ thống quản lý cho thuê sân bóng mini là ứng dụng máy để bàn cho phép quản lý các hợp đồng, quản lý các sân bóng, dịch vụ hàng tháng, các mặt hàng nhập vào của sân; quản lý các thông tin về thuê sân, đặt sân, trả sân, thanh toán, sửa thông tin, thêm thông tin, xóa thông tin, thống kê, đổi lịch.
• Kiểu của ứng dụng: Máy để bàn, có thể chạy trên nhiều máy của các nhân viên nhưng chung cơ sở dữ liệu
• Chỉ có các đối tượng sau đây được sử dụng: Nhân viên sân, quản lý sân và chủ sân
• Hệ thống cung cấp các chức năng sau dành cho nhân viên:
- Đặt sân theo yêu cầu khách hàng, làm hợp đồng, đặt cọc, thanh toán cho khách
- Cập nhật các mặt hàng đã dùng của buổi thuê - Thanh toán, check-in, check-out cho khách
• Hệ thống cung cấp các chức năng sau dành cho quản lý sân:
- Quản lý thông tin sân bóng: Thêm, sửa, xóa thông tin sân bóng- Quản lý các mặt hàng nhập vào của sân, dịch vụ hàng tháng - Thống kê doanh thu theo đơn vị thời gian (năm, quý, tháng)
Biểu đồ usecase chi tiết của Module “Đặt sân”
Mô tả module ‘Đặt sân’: Cho phép nhân viên đặt sân cho khách hàng khi khách hàng đến thuế sân bóng Nhân viên có thể tìm sân trống theo khung giờ, xem danh sách khách hàng, thêm mới khách hàng và đặt sân cho khách hàng
- Đăng nhập: Usecase này cho phép nhân viên đăng nhập vào hệ thống để thực hiện các chức năng của hệ thống
- Đặt sân: Usecase này cho phép nhân viên đặt sân tại chỗ theo yêu cầu của khách hàng khi đến thuê sân
- Tìm sân trống theo khung giờ: Usecase này cho phép nhân viên tìm những sân còn trống theo khung giờ khách hàng yêu cầu
- Hiển thị danh sách sân trống theo khung giờ đã chọn: Usecase trả về danh sách các sân còn trống theo khung giờ khách hàng đã chọn
- Tìm thông tin khách hàng: Usecase này cho phép nhân viên tìm kiếm khách hàng
- Hiển thị danh sách khách hàng: Usecase này cho phép nhân viên xem danh sách khách hàng đã tìm
- Thêm mới khách hàng: Usecase này cho phép nhân viên thêm mới khách hàng nếu chưa có trong hệ thống
- Chọn ngày bắt đầu và kết thúc: Cho phép nhân viên chọn ngày bắt đầu thuê sân và kết thúc
Nội dung pha phân tích
Trích các scenario và các ngoại lệ
Use case Đặt sân Actor Nhân viên, khách hàng Tiền điều kiện Nhân viên đăng nhập thành công Hậu điều kiện Nhân viên đặt sân cho khách hàng thành công Kịch bản chính 1.Nhân viên A chọn chức năng quản lý sân Nhiên viên A muốn đặt sân do khách hàng B yêu cầu.
2.Giao diện quản lý sân bóng hiện lên với 4 nút: Đặt sân, Thêm sân, Sửa sân, Xóa sân
3.A click vào nút đặt sân 4.Giao diện tìm sân trống theo khung giờ hiện lên với ô nhập khung giờ, ô chọn loại sân và 1 nút tìm kiếm.
5 Nhân viên A hỏi khung giờ và loại sân với khách hàng B 6 Khách hàng B nói khung giờ 16:00-18:00 Chủ nhật và loại sân 7 cho nhân viên A biết
7 Nhân viên A nhập khung giờ và loại sân theo yêu cầu của khách hàng B rồi click vào nút tìm kiếm
8 Giao diện kết quả tìm kiếm sân trông hiện lên với danh sách sân trống theo khung giờ đã chọn Mỗi sân tương ứng với 1 dòng các thông tin mô tả: ID, tên sân, loại sân, giá thuê và một nút click chọn sân(1 hàng)
9 Nhân viên A thông báo danh sách các sân còn trống cho khách hàng B chọn
10 Khách hàng B chọn sân thứ 1 với id = 1 trong danh sách.
11 Nhân viên A click vào nút chọn sân của sân thứ 1 12 Giao diện điền không tin khách hàng hiện ra, bao gồm các trường nhập tên và 1 nút tìm kiếm.
13 A hỏi họ tên của B 14 B nói tên của mình là duc cho A 15 A nhập tên của B vào và ấn nút tìm kiếm 16 Giao diện hiện ra danh sách các khách hàng có tên duc, mỗi hàng là thông tin của một khách hàng tương ứng với các cột: họ và tên, số điện thoại, địa chỉ,và 1 nút chọn Trên cùng là một nút thêm khách hàng.
17 A xác nhận các thông tin với B với số điện thoại là 012345678, địa chỉ là Minh Hoa và click nút chọn(click vào hàng có id = 1).
18.Giao diện nhập thời gian ngày bắt đầu và ngày kết thúc kết thúc hiện ra với hai ô chọn ngày bắt đầu, chọn ngày kết thúc và 1 nút xác nhận.
19 A hỏi B ngày bắt đầu và ngày kết thúc đợi đặt sân20 B nói cho A biết ngày bắt đầu là 12-5-2024 và ngày kết thúc là 12-6-2024
21 A chọn thời gian ngày bắt đầu và ngày kết thúc và click xác nhận
22 Hệ thống hiện lên phiếu đặt sân hệ thống hiện phiếu đặt sân với đầy đủ thông tin KH, thông tin sân đặt, giá sân đặt, khung giờ đặt, tổng số buổi theo thời gian đã chọn, tổng số tiền ước tính và số tiền phải đặt cọc (10%).
23 A hỏi B có xác nhận thuê sân với thông tin trên phiếu đặt sân không.
24 B trả lời đồng ý thuê sân 25 A click vào nút Xác nhận thuê sân 26 Thông báo hiện ra với nội dung thuê sân thành công.
27 A click vào nút Ok 28 Hệ thống quay lại trang chủ quản lý sân.
Ngoại lệ 8.1 Không còn sân trống khi tìm sân.
16.1 Hệ thống thông báo họ tên khách hàng không có.
Trích các lớp biên, các lớp điều khiển Vẽ sơ đồ lớp từ các lớp đã trích được của modul 13 1 Các lớp điều khiển
3.1 Các lớp điều khiển o PitchRentalCtr: Lớp điều khiển cho module Đặt sân
3.2 Các lớp biên o StaffPitchFrm: Giao diện chính đặt sân(trang chủ của hệ thống) o SearchFreePitchFrm: Giao diện tìm sân còn trống theo khung giờ. o SearchCustomerFrm: Giao diện tìm kiếm khách hàng theo tên. o TimeFrm: Giao diện chọn ngày bắt đầu và kết thúc đợt đặt sân. o ConfirmFrm: Giao diện hiện phiếu đặt sân.
Viết lại các scenario với các lớp đã trích được
1 Nhân viên A chọn chức năng quản lý sân bóng A muốn đặt sân cho khách hàng B2 Lớp PitchManagerFrm hiện ra với 4 nút: Đặt sân, Thêm sân, Sửa sân, Xóa sân
3 Nhân viên A click vào nút đặt sân 4 Lớp PitchManagerFrm gọi lớp SearchFreePitchFrm yêu cầu hiển thị 5 Lớp SearchFreeFrm hiện ra với các ô nhập thời gian bắt đầu, ô nhập thời gian kết thúc, ô chọn loại sân, ô chọn thứ trong tuần, 1 nút tìm kiếm, 1 nút quay lại
6 Nhân viên A hỏi B về thời gian bắt đầu – kết thúc, loại sân, thứ trong tuần.
7 B trả lời cho A về thời gian bắt đầu: 16:00, thời gian kết thúc 18:00, thứ trong tuần: thứ hai, loại sân: sân 7.
8 A nhập thông tin mà B cung cấp và click nút tìm kiếm.
9 Lớp SearchFreePitchFrm gửi thông tin với thời gian bắt đầu: 16:00, thời gian kết thúc: 18:00, loại sân: Sân 7, thứ trong tuần: Thứ hai cho lớp PitchRentalCtr
10.Lớp PitchRentalCtr tìm kiếm các sân 7 trống vào thứ hai vào lúc 16:00- 18:00.
11.Lớp PitchRentalCtr gửi kết quả đến lớp Pitch để đóng gói thành danh sách các đối tượng Pitch
12.Lớp Pitch gửi lại cho lớp PitchRentalCtr danh sách các đối tượng Pitch 13.Lớp PitchRentalCtr gửi danh sách các đối tượng Pitch cho lớp
SearchFreePitchFrm hiển thị 14.Lớp SearchFreePitchFrm hiển thị kết quả tìm kiếm gồm 1 bảng các sân loại
7 và trống vào lúc 16:00-18:00 Thứ hai, với các cột: ID sân, tên sân, loại sân, giá thuê/giờ và 1 nút click chọn sân.
15.Nhân viên A hỏi B muốn thuê sân nào 16.B trả lời sân muốn thuê là sân đầu tiên trong danh sách 17.Nhân viên A click vào hàng sân đầu tiên.
18.Lớp SearchFreePitchFrm gọi và truyền đối tượng rentedPitch vừa được tạo cho lớp SearchCustomerFrm.
19.Lớp SearchCustomerFrm hiện ra với 1 ô nhập tên khách hàng, 1 nút tìm kiếm, 1 nút thêm mới khách hàng và 1 nút quay lại.
20.Nhân viên A hỏi tên khách hàng B.
21.B trả lời tên mình là Duc 22.A nhập tên Duc vào ô tên khách hàng và click tìm kiếm.
23.Lớp SearchCustomerFrm gửi thông tin với tên khách hàng là Duc cho lớp PitchRentalCtr.
24.Lớp PitchRentalCtr tìm kiếm các khách hàng có tên là Duc trong CSDL 25.Lớp PitchRentalCtr gửi kết quả đến lớp Cutstomer để đóng gói danh sách thành đối tượng Customer.
26.Lớp Customer trả lại cho lớp PitchRentalCtr danh sách từ đối tượng Customer.
27.Lớp PitchRentalCtr gửi danh sách các đối tượng Customer cho lớp SearchCustomerFrm để hiển thị.
28.Lớp SearchCustomerFrm hiện kết quả tìm kiếm gồm 1 bảng các khách hàng có tên là Duc, mỗi một dòng có đầy đủ thông tin của một khách hàng với các cột: id khách hàng, tên, họ và đêm, số điện thoại, địa chỉ và 1 nút chọn khách hàng.
29.A hỏi thông tin cá nhân với B.
30.B xác nhận thông tin với số điện thoại là 12345678 và địa chỉ là Minh Hoa với A.
31.A click vào hàng có id = 1.
32.Lớp SearchCustomer gọi và truyền đối tượng RentalReceipt vừa được tạo cho lớp TimeFrm
33.Lớp TimeFrm hiện lên với 1 ô nhập ngày bắt đầu, 1 ô nhập ngày kết thúc, 1 nút xác nhận và 1 nút quay lại.
34.A hỏi ngày bắt đầu và kết thúc với B.
35.B nói cho A biết ngày bắt đầu là 12-5-2024 và ngày kết thúc là 12-6-202436.A click vào nút xác nhận.
37.Lớp RentalReceipt được thiết lập thêm thời gian bắt đâu và kết thúc.
38.Lớp TimeFrm gọi và truyền đối tượng RentalReceipt cho lớp Confirm.
39.Lớp ConfirmFrm hiện lên với đầy đủ thông tin phiếu đặt sân, với đầy đủ thông tin KH, thông tin sân đặt, giá sân đặt, khung giờ đặt, tổng số buổi theo thời gian đã chọn, tổng số tiền ước tính và số tiền phải đặt cọc (10%) và 1 nút xác nhận thuê, 1 nút hủy thuê.
40.A hỏi B có xác nhận muốn thuê không.
42.A click vào nút xác nhận thuê.
43.Lớp ConfirmFrm gửi thông tin trên phiếu đặt sân đến lớp RentalReceipt để đóng gói đối tượng RentalReceipt.
44.Lớp RentalReceipt đóng gói thông tin thành 1 đối tượng RentalReceipt.
45.Lớp ConfirmFrm truyền đối tượng RentalReceipt cho lớp PitchRentalCtr.
46.Lớp PitchRentalCtr thêm phiếu đặt sân vào CSDL.
47.Lớp PitchRentalCtr thông báo cho lớp ConfirmFrm đã thêm phiếu thuê sân thàng công.
48.Lớp ConfirmFrm thông báo đặt sân thành công cho A.
49.A nói với B đã đặt sân thành công.
50.A click vào nút Ok trên thông báo.
51.Lớp ConfirmFrm gọi lại lớp PitchManagerFrm để hiện thị giao diện quản lý sân.
Thực tế hóa mỗi scenario của mỗi UC thành sơ đồ tuần tự (hoặc cộng tác)
Nội dung pha thiết kế
Vẽ sơ đồ lớp MVC của module
3.1 Dùng kĩ thuật thẻ CRC và 3 nguyên lí thiết kế phương thức để gán các phương thức cho các lớp 3.1.1 PitchDAO và SearchFreePitchFrm
3.2 Định nghĩa các thuộc tính và kiểu thuộc tính của mỗi lớp, định nghĩa khôn mấu cho từng phương thức
Nội dung pha cài đặt
1 Xây dựng khuôn mẫu cho tất cả các lớp của module
Nội dung pha kiểm thử
Có sân trống và khách hàng đã có trong CSDL
- B1: Dữ liệu hiện thời + tblCustomer
- B2: Các thao tác, và kết quả mong đợi
Kịch bản Kết quả mong đợi
1 Nhân viên chọn chức năng đặt sân
Giao diện tìm sân trống hiện ra với trường nhập khung thời gian và loại sân
2 Nhập: thời gian bắt dầu = 16:00, thời gian kết thúc = 18:00, chọn loại sân = Sân 9, chọn thứ trong tuần = thứ hai.
Click vào nút tìm kiếm
Danh sách sân trống xuất hiện:
3 Click vào sân có id = 7 Giao diện tìm khách hàng hiện lên với 1 trường nhập tên và 1 nút tìm kiếm
4 Nhập tên khách hàng = duc và click tìm kiếm
Danh sách khách hàng xuất hiện:
5 Click vào hàng đầu tiên với khách hàng có id = 1
Giao diện nhập ngày bắt đầu – kết thúc đợt đặt sân hiện ra.
6 Nhập ngày bắt đầu 12-5- 2024, ngày kết thúc 12-6- 2024 và click vào nút xác
Thông tin phiếu thuê sân hiện ra với 1 nút hủy và 1 nút xác nhận
Kịch bản Kết quả mong đợi nhận
7 Ckick vào nút xác nhận thuê
Thông báo hiện lên thuê sân thành công.
8 Click ok Quay trở lại giao diện quản lý sân.
- B3: Kết quả thay đổi dữ liệu trong database(tblRentedPitch & tblRentalReceipt)+ tblrentedPitch
Có sân trống và khách hàng không có trong CSDL
- B1: Dữ liệu hiện thời + tblCustomer
- B2: Các thao tác, và kết quả mong đợi
Kịch bản Kết quả mong đợi
1 Nhân viên chọn chức năng đặt sân Giao diện tìm sân trống hiện ra với trường nhập khung thời gian và loại sân
2 Nhập: thời gian bắt dầu = 18:00, thời gian kết thúc = 20:00, chọn loại sân = Sân 7, chọn thứ trong tuần = Chủ nhật Click vào nút tìm kiếm
Danh sách sân trống xuất hiện:
3 Click vào sân có id = 1 Giao diện tìm khách hàng hiện lên với 1 trường nhập tên và 1 nút tìm kiếm
4 Nhập tên khách hàng = minh và click tìm kiếm Danh sách khách hàng sẽ không xuất hiện do khách hàng chưa có trong
Kịch bản Kết quả mong đợi
- B3: Kết quả cơ sở dữ liệu không thay đổi.
Không còn sân trống
- B1: Dữ liệu hiện thời + tblCustomer
- B2: Các thao tác, và kết quả mong đợi
Kịch bản Kết quả mong đợi
1 Nhân viên chọn chức năng đặt sân Giao diện tìm sân trống hiện ra với trường nhập khung thời gian và loại sân