49
3.1.1.5. Khóa tài khoản
Tên chức năng: Khố tài khoản
Đầu vào (Input): Danh sách tài khoản
Đầu ra (Output): Thơng báo khố tài khoản thành cơng, tài khoản đã khóa khơng đăng nhập được vào hệ thống.
Hình 16. P-Spec – Sơ đồ đặc tả chức năng khoá tài khoản 3.1.1.6. Đặt bàn
Tên chức năng: Đặt bàn
Đầu vào (Input): Tên khách hàng, số điện thoại, số người, ngày giờ đặt, tiền đặt trước
Đầu ra (Output): Thông báo đặt bản thông công, Lưu thông tin đặt bàn (tên khách hàng, số điện thoại, số bàn, số người, ngày giờ đặt)
Process: Khi nhận được yêu cầu đặt bàn từ khách hàng, nhân viên vào hệ thống đi đến chức năng đặt bàn và thực hiện nhập vào tên khách hàng, số
50
điện thoại, số người, ngày giờ đặt, tiền đặt trước (nếu có). Sau đó, kiểm tra lại thơng tin nhập vào đã đúng hay chưa. Nếu đã đúng tiến hành nhấn “Lưu thơng tin” để hồn thành việc đặt bàn trước cho khách hàng.
Hình 17. P-Spec – Sơ đồ đặc tả chức năng đặt bàn 3.1.1.7. Tìm kiếm khách hàng bàn 3.1.1.7. Tìm kiếm khách hàng
Tên chức năng: Tìm kiếm khách hàng
Đầu vào (Input): Tên khách hàng, số điện thoại Đầu ra (Output): Thơng tin khách hàng
51
Hình 18. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm khách hàng 3.1.1.8. Lập phiếu order món ăn hàng 3.1.1.8. Lập phiếu order món ăn
Tên chức năng: Lập phiếu order món ăn (PhieuOrder)
Đầu vào (Input): Số bàn, số khách, tên món order, tên nhân viên, ngày giờ
Đầu ra (Output): Phiếu order món ăn (Biểu mẫu 2.12)
52
Hình 19. P-Spec – Sơ đồ đặc tả chức năng lập phiếu order món ăn 3.1.1.9. Lập hố đơn thanh tốn ăn 3.1.1.9. Lập hoá đơn thanh tốn
Tên chức năng: Lập hóa đơn thanh tốn. Đầu vào (Input): Các món ăn khách đã gọi.
Đầu ra (Output): Xuất ra hóa đơn thanh tốn cho khách hàng.
53
Hình 20. P-Spec – Sơ đồ đặc tả chức năng lập hoá đơn thanh toán 3.1.1.10. Thanh toán hoá đơn toán 3.1.1.10. Thanh toán hoá đơn
Tên chức năng: Thanh tốn hóa đơn
Đầu vào (Input): u cầu thanh tốn hoá đơn của khách hàng. Đầu ra (Output): Thanh tốn hố đơn thành cơng.
54
Hình 21. P-Spec – Sơ đồ đặc tả chức năng thanh toán hoá đơn 3.1.1.11. Lập phiếu yêu cầu nhập nguyên liệu đơn 3.1.1.11. Lập phiếu yêu cầu nhập nguyên liệu
Tên chức năng: Lập phiếu yêu cầu nhập nguyên liệu
Đầu vào (Input): Tên nguyên liệu, Số lượng yêu cầu, Tình trạng nguyên liệu.
Đầu ra (Output): Phiếu yêu cầu nhập nguyên liệu.
55
Hình 22. P-Spec – Sơ đồ đặc tả chức năng lập phiếu yêu cầu nhập nguyên liệu
3.1.1.12. Duyệt yêu cầu nhập nguyên liệu
Tên chức năng: Duyệt yêu cầu nhập nguyên liệu Đầu vào (Input): Phiếu yêu cầu nhập nguyên liệu
Đầu ra (Output): Duyệt u cầu nhập ngun liệu thành cơng.
56
Hình 23. P-Spec – Sơ đồ đặc tả chức năng duyệt yêu cầu nhập nguyên liệu
3.1.1.13. Thêm nguyên liệu
Tên chức năng: Thêm nguyên liệu Đầu vào (Input): Thông tin nguyên liệu
Đầu ra (Output): Thêm ngun liệu thành cơng.
57
Hình 24. P-Spec – Sơ đồ đặc tả chức năng thêm nguyên liệu 3.1.1.14. Cập nhật nguyên liệu liệu 3.1.1.14. Cập nhật nguyên liệu
Tên chức năng: Cập nhật nguyên liệu.
Đầu vào ( Input): Thông tin về nguyên liệu cần cập nhật Đầu ra ( Output): Thông tin kết quả sau khi cập nhật
58
Hình 25. P-Spec – Sơ đồ đặc tả chức năng cập nhật nguyên liệu 3.1.1.15. Tìm kiếm nguyên liệu liệu 3.1.1.15. Tìm kiếm nguyên liệu
Tên chức năng: Tìm kiếm nguyên liệu. Đầu vào ( Input): Tên nguyên liệu
Đầu ra ( Output): Thơng tin về ngun liệu.
59
Hình 26. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm nguyên liệu 3.1.1.16. Thêm món ăn liệu 3.1.1.16. Thêm món ăn
Tên chức năng: Thêm món ăn.
Đầu vào ( Input): Thơng tin món ăn cần thêm Đầu ra ( Output): Thêm món ăn thành cơng.
60
Hình 27. P-Spec – Sơ đồ đặc tả chức năng thêm món ăn 3.1.1.17. Cập nhật món ăn ăn 3.1.1.17. Cập nhật món ăn
Tên chức năng: Cập nhật món ăn.
Đầu vào ( Input): Thơng tin về món ăn cần cập nhật
Đầu ra ( Output): Thông báo cập nhật thành cơng và thơng tin món ăn sau khi được cập nhật.
61
Hình 28. P-Spec – Sơ đồ đặc tả chức năng cập nhật món ăn 3.1.1.18. Tìm kiếm món ăn ăn 3.1.1.18. Tìm kiếm món ăn
Tên chức năng : Tìm kiếm món ăn Input: Tên món ăn cần tìm kiếm Output: Thơng tin về món ăn.
62
Hình 29. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm món ăn 3.1.1.19. Lập báo cáo thống kê nhập nguyên liệu ăn 3.1.1.19. Lập báo cáo thống kê nhập nguyên liệu
Tên chức năng : Lập báo cáo thống kê nhập nguyên liệu Input : Tên nguyên liệu và số lượng nguyên liệu nhập Output : Danh sách báo cáo nhập nguyên liệu
63
Hình 30. P-Spec – Đặc tả chức năng lập báo cáo thống kê nhập nguyên liệu
3.1.1.20. Lập báo cáo thống kê nguyên liệu
Tên chức năng : Báo cáo thống kê nguyên liệu
Input : Tên và số lượng nguyên liệu hiện có trong kho Output : Danh sách báo cáo thống kê nguyên liệu trong kho
64
Hình 31. P-Spec – Sơ đồ đặc tả chức năng lập báo thống kê nguyên liệu 3.1.1.21. Lập báo cáo thống kê doanh thu liệu 3.1.1.21. Lập báo cáo thống kê doanh thu
Tên chức năng: Lập báo cáo thống kê doanh thu Đầu vào (Input): Số lượng hóa đơn
Đầu ra (Output): Danh sách báo cáo thống kê doanh thu theo ngày, tháng, năm
65
Hình 32. P-Spec – Sơ đồ đặc tả chức năng lập báo cáo thống kê doanh thu
3.1.1.22. Tìm kiếm báo cáo doanh thu
Tên chức năng : Tìm kiếm báo cáo doanh thu Input: Ngày lập báo cáo
Output: Báo cáo doanh thu cần tìm
66
Hình 33. P-Spec – Sơ đồ đặc tả chức năng tìm kiếm báo cáo doanh thu 3.1.1.23. Lập báo cáo thống kê tài chính thu 3.1.1.23. Lập báo cáo thống kê tài chính
Tên chức năng: Báo cáo thống kê tài chính Đầu vào (Input): Báo cáo doanh thu
Đầu ra (Output): Báo cáo thống kê tài chính
67
Hình 34. P-Spec – Sơ đồ đặc tả chức năng lập báo cáo thống kê tài chính 3.1.1.24. Đăng xuất chính 3.1.1.24. Đăng xuất
Tên chức năng: Đăng xuất
Đầu vào (Input): Đăng nhập thành công vào hệ thống với đúng tên tài khoản, mật khẩu
Đầu ra (Output): Đăng xuất khỏi hệ thống thành cơng
68
Hình 35. P-Spec – Sơ đồ đặc tả chức năng đăng xuất 3.1.1.25. Thêm nhân viên xuất 3.1.1.25. Thêm nhân viên
Tên chức năng: Thêm nhân viên
Đầu vào (Input): Thông tin nhân viên cần thêm (tên nhân viên, chức vụ, bộ phận)
Đầu ra (Output): Thêm nhân viên thành cơng
69
Hình 36. P-Spec – Sơ đồ đặc tả chức năng thêm nhân viên
3.1.2. Rà soát việc đáp ứng các yêu cầu3.1.2.1 Bảng thông tin các yêu cầu 3.1.2.1 Bảng thông tin các yêu cầu
Mã yêu cầu R1
R2
R3
R4 Bộ phận bếp phải nhập nguyên liệu vào bếp 70
R5 R6 R7 R8 R9 R10 R11 R12 download by : skknchat@gmail.com
(ngày, tháng, năm).
3.1.2.2 Bảng thông tin các chức năng
Mã chức năng F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 download by : skknchat@gmail.com
F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
3.1.2.3 Ma trận rà soát yêu cầu
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12
F1 X
73
F2 F3 F4 F5 F6 X F7 X F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 download by : skknchat@gmail.com
F18 F19 F20 F21 F22 F23 F24 F25 F26 X 75 download by : skknchat@gmail.com
3.1.3. Mơ hình hố luồng dữ liệu cho các chức năng
3.1.3.1 Mơ hình hóa luồng dữ liệu mức đỉnh
Hình 37. DFD – Sơ đồ luồng dữ liệu mức đỉnh
76
3.1.3.2 Mơ hình hóa luồng dữ liệu mức dưới đỉnh 3.1.3.2.1 Module quản lý khách hàng
Hình 38. DFD – Module quản lý khách hàng 3.1.3.2.2 Module quản lý thanh tốn hàng 3.1.3.2.2 Module quản lý thanh tốn
Hình 39. DFD – Module quản lý thanh tốn
77
3.1.3.2.3 Module quản lý nguyên liệu
Hình 40. DFD – Module quản lý nguyên liệu
78
3.1.3.2.4 Module quản lý báo cáo thống kê
Hình 41. DFD – Module quản lý báo cáo thống kê
79
3.1.3.2.5 Module quản lý tài khoản
Hình 42. DFD – Module quản lý tài khoản
3.2. Phân tích hệ thống về dữ liệu (Áp dụng phương pháp Top-Down) 3.2.1 Mơ hình thực thể - quan hệ
3.2.1.1. Xây dựng mơ hình ERD mở rộng
❖ Xác định các thực thể và thuộc tính
Dựa vào [Biểu mẫu 2.1] - Hoá đơn và [Biểu mẫu 2.4] - Phiếu khảo sát ý kiến khách hàng, ta sẽ xác định được thực thể KHÁCH HÀNG và HÓA
ĐƠN.
(2) KHÁCH HÀNG: Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
80
(2) HĨA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá,
Thành tiền, Tổng cộng, Chiết khấu, Tiền đặt trước, Tổng tiền giảm, Khách hàng phải trả, Tiền khách đưa, Tiền trả lại khách, Nhân viên thanh toán
Dựa vào [Biểu mẫu 2.7] - Đơn xin nghỉ bù và [Biểu mẫu 2.8] - Đơn xin về sớm, ta sẽ xác định được thực thể NHÂN VIÊN về sớm, ta sẽ xác định được thực thể NHÂN VIÊN
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
Để đáp ứng được nhóm chức năng Quản lý tài khoản, ta cần bổ sung các thực thể ĐĂNG NHẬP với các thuộc tính Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
Dựa vào [Biểu mẫu 2.11] - Giấy đề nghị cấp nguyên vật liệu, ta xác định được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU định được thực thể NGUYÊN LIỆU và NHẬP NGUYÊN LIỆU
(5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính.
→ Bổ sung thuộc tính Trạng thái yêu cầu. Thuộc tính này nhận những giá trị để mô tả cho bảng NHẬP NGUYÊN LIỆU này đang ở trạng thái nào. Cụ thể trong bài toán này gồm các trạng thái: Được xác nhận, Chưa được xác nhận
→ (6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
Dựa vào [Biểu mẫu 2.12] - Giấy order đồ ăn và quy trình order đồ ăn cho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER cho khách ở mục 2.1.3.3, ta xác định được thực thể PHIẾU ORDER
(7) PHIẾU ORDER: Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món,
Số lượng
Dựa vào [Biểu mẫu 2.15] - Một số hình ảnh menu của nhà hàng, ta sẽ xác định được thực thể MÓN ĂN xác định được thực thể MĨN ĂN
81
⇒(8) MĨN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
KẾT LUẬN CÁC THỰC THỂ VÀ THUỘC TÍNH:
(1) KHÁCH HÀNG: Họ tên, Ngày sinh, Địa chỉ, Số điện thoại, Email
(2) HÓA ĐƠN: Số hóa đơn, Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá,
Thành tiền, Tổng cộng, Chiết khấu, Tiền đặt trước, Tổng tiền giảm, Khách hàng phải trả, Tiền khách đưa, Tiền trả lại khách, Nhân viên thanh toán
(3) NHÂN VIÊN: Tên nhân viên, Chức vụ, Bộ phận
(4) ĐĂNG NHẬP: Tên đăng nhập, Mật khẩu, Trạng thái tài khoản
(5) NGUYÊN LIỆU: Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính
(6) NHẬP NGUYÊN LIỆU: Tên người yêu cầu, Bộ phận, Lý do sử dụng,
Tên nguyên vật liệu, Ngày yêu cầu, Số lượng đề nghị, Số lượng thực xuất, Đơn vị tính, Trạng thái yêu cầu
(7) PHIẾU ORDER: Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món,
Số lượng
(8) MĨN ĂN: Tên món, Giá bán, Đơn vị tính, Hình ảnh món
❖ Xác định mối liên kết giữa các thực thể
Thực thể KHÁCH HÀNG và thực thể HĨA ĐƠN có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể HÓA ĐƠN có kiểu liên kết 1 – N Thực thể NHÂN VIÊN và thực thể ĐĂNG NHẬP có kiểu liên kết 1 – N
Thực thể NHÂN VIÊN và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết 1 – N
Thực thể NGUYÊN LIỆU và thực thể NHẬP NGUYÊN LIỆU có kiểu liên kết N – M
Thực thể NGUYÊN LIỆU và thực thể MĨN ĂN có kiểu liên kết N – M
82
Thực thể MĨN ĂN và thực thể PHIẾU ORDER có kiểu liên kết N – M
Thực thể HÓA ĐƠN và thực thể PHIẾU ORDER có kiểu liên kết N - M
❖ Chuẩn hóa ERD mở rộng
Hình 43. ERD mở rộng
3.2.1.2. Chuyển từ ERD mở rộng về ERD kinh điển
❖ Xét thực thể và thuộc tính khóa
KHÁCH HÀNG: Mã khách hàng là khóa chính.
Vì các thuộc tính Họ tên, Ngày sinh, Địa chỉ là thuộc tính mơ tả. Thuộc tính Số điện thoại và thuộc tính Email xác định tính duy nhất (có thể làm khố) nhưng vì nó q dài. Để dễ quản lý thì nhóm em xin chọn thêm thuộc tính Mã khách hàng để làm khóa chính.
HĨA ĐƠN: Số hóa đơn là khóa chính
Vì các thuộc tính Số bàn, Ngày giờ, Tên hàng, Số lượng, Đơn giá, Chiết khấu, Tiền đặt trước, Tiền khách đưa, Nhân viên thanh tốn là thuộc tính mơ tả, thuộc tính Thành tiền, Tổng cộng, Tổng tiền giảm, Khách hàng phải trả,
83
Tiền trả lại khách là thuộc tính suy dẫn, và thuộc tính Số hóa đơn thể hiện tính duy nhất. Do đó, chúng ta chọn Số hóa đơn là khóa chính.
NHÂN VIÊN: Mã nhân viên là khóa chính
Vì các thuộc tính Tên nhân viên, Chức vụ, Bộ phận là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhân viên làm khóa chính.
ĐĂNG NHẬP: Tên đăng nhập là khóa chính NGUN LIỆU: Mã ngun liệu là khóa chính
Vì các thuộc tính Tên nguyên liệu, Số lượng, Đơn giá, Đơn vị tính là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã ngun liệu làm khóa chính.
NHẬP NGUN LIỆU: Mã nhập ngun liệu là khóa chính
Vì các thuộc tính Tên người u cầu, Bộ phận, Lý do sử dụng, Tên nguyên vật liệu, Ngày yêu cầu, Số lượng yêu cầu, Số lượng thực xuất, Đơn vị tính, Trạng thái u cầu là thuộc tính mơ tả. Để dễ quản lý, nhóm chúng em xin chọn Mã nhập nguyên liệu làm khóa chính.
PHIẾU ORDER: Mã phiếu order là khố chính
Vì các thuộc tính Số bàn, Ngày giờ, Tên nhân viên, Số khách, Tên món, Số lượng là thuộc tính mơ tả. Thuộc tính Ngày giờ khơng thể là duy nhất vì cùng 1 lúc có thể có nhiều khách hàng order. Do đó, để dễ quản lý nhóm em xin chọn Mã phiếu order làm khóa chính.
MĨN ĂN: Mã món là khóa chính
Vì các thuộc tính Tên món, Giá bán, Đơn vị tính, Hình ảnh món là thuộc tính mơ tả. Để dễ quản lý, nhóm em xin chọn Mã món làm khóa chính.
❖ Quy tắc 1: Khử kiểu thuộc tính đa trị của kiểu thực thể:
Khơng có thuộc tính đa trị của kiểu thực thể
❖ Quy tắc 2: Khử kiểu thuộc tính đa trị của kiểu liên kết:
84
Khơng có thuộc tính đa trị của kiểu liên kết
❖ Quy tắc 3: Khử kiểu thuộc tính phức hợp:
Khơng có thuộc tính phức hợp
❖ Mơ hình ERD kinh điển
Hình 44. ERD kinh điển
3.2.1.3. Chuyển từ ERD kinh điển về ERD hạn chế
❖ Quy tắc 4: Thay đổi ký hiệu đồ hoạ
85
❖ Quy tắc 5: Xử lý kiểu liên kết 1 - 1
Khơng có kiểu liên kết 1 - 1
❖ Quy tắc 6: Xử lý kiểu liên kết m - n
(9) CHI TIẾT NHẬP: Mã nhập nguyên liệu, Mã nguyên liệu
(10) NGUYÊN LIỆU MÓN: Mã nguyên liệu, Mã món
(11) PHIẾU ORDER MĨN: Mã phiếu order, Mã món
❖ Quy tắc 7: Xác định kiểu thuộc tính kết nối
Khử thuộc tính suy dẫn: Thành tiền, Tổng cộng, Tổng tiền giảm, Khách hàng phải trả, Tiền trả lại khách