2 Nhân viên bếp - Chế biến món ăn trong bếp3 Quản lý - Đăng thông báo cho nhân viên -Quản lý nhân viên 1.4 Các Use case trong hệ thống UC01 Thêm bàn Nhân viên tạo thêm bàn để đáp ứng nhu
Trang 1TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN/ĐỒ ÁN CUỐI KÌ MÔN MẪU THIẾT KẾ
BÁO CÁO CUỐI KỲ
Người hướng dẫn: THS-VŨ ĐÌNH HỒNG Người thực hiện: HUỲNH QUANG HUY – 51900088
TRƯƠNG TẤN HÙNG – 51900083 TRẦN MINH KHA – 51900101 CAO BẢO THÁI – 51900208 HUỲNH NGUYỄN HOÀI BẢO - 51900009
Lớp : 19050201 - 19050202
Khoá : 23
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021
Trang 2TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN/ĐỒ ÁN CUỐI KÌ MÔN MẪU THIẾT KẾ
ÁP DỤNG MẪU THIẾT KẾ VÀO QUẢN LÝ
CỬA HÀNG THỨC ĂN NHANH
Người hướng dẫn: THS-VŨ ĐÌNH HỒNG Người thực hiện: HUỲNH QUANG HUY – 51900088
TRƯƠNG TẤN HÙNG – 51900083 TRẦN MINH KHA – 51900101 CAO BẢO THÁI – 51900208 HUỲNH NGUYỄN HOÀI BẢO - 51900009
Lớp : 19050201 - 19050202
Khoá : 23
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn Th.S Vũ Đình Hồng Thầy đã nhiệt tình hướng dẫn
em trong suốt quá trình hoàn thành bài nghiên cứu về đề tài
Thứ hai, em xin chân thành gửi lời cảm ơn đến khoa Công Nghệ Thông tin đã tạo điều kiệncho em được học tập và nghiên cứu môn học này Giúp em rèn luyện các kỹ năng trong nghiên cứu Cuối cùng, sau khi được chỉ dẫn tận tình trên lớp, em đã hoàn thành được bài báo cáo Do kiến thức còn hạn chế nên bài nghiên cứu còn nhiều sai sót, kính mong sự chỉ dẫn và đóng góp của Quý thầy cô, để em có thể làm tốt hơn ở các bài nghiên cứu trong tương lai Em mong Quý thầy cô và các bạn bè luôn tràn đầy sức khỏe và sự bình an
Trang 4ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC
THẮNG
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi / chúng tôi và được sự hướng dẫncủa THS Vũ Đình Hồng Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưacông bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việcphân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trongphần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tácgiả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm tác
quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày tháng năm
Tác giả (ký tên và ghi rõ họ tên)
Huỳnh Quang Huy
Trương Tấn Hùng
Trần Minh Kha
Cao Bảo Thái
Huỳnh Nguyễn Hoài Bảo
Trang 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Phần xác nhận của GV hướng dẫn
_
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Phần đánh giá của GV chấm bài
_
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Trang 6TÓM TẮT
Nhóm chúng em thực hiện đồ án cuối kỳ với đề tài mới là quản lý cửa hàng thức ăn nhanh
và áp dụng các mẫu thiết kế đã học được áp vào đề tài này Khi áp dụng các mẫu thiết kế vào đềtài, sẽ có kèm lí do tại sao áp dụng mẫu thiết kế này, sơ đồ lớp và code demo có áp dụng mẫuthiết kế vào
Trang 7MỤC LỤC
TÓM TẮT iv
MỤC LỤC 5
DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ 7
1-MÔ TẢ ỨNG DỤNG 9
1.1 Giới thiệu 9
1.2 Sơ đồ Use case 9
1.3 Các tác nhân trong hệ thống 9
1.4 Các Use case trong hệ thống 10
1.5 Đặc tả usecase 11
1.6 Quy trình nghiệp vụ 24
1.7 Giao diện của ứng dụng: 24
2-CÁC MẪU THIẾT KẾ ĐƯỢC SỬ DỤNG 29
2.1 MVC Pattern 29
2.2 Singleton Pattern 30
2.3 State Pattern 31
2.4 Observer Pattern 31
2.5 Strategy Pattern 32
2.6 Decorator Pattern 32
2.7 Command Pattern 34
2.8 Template Method Pattern 35
3-CÁC FILE CHI TIẾT ĐƯỢC ỨNG DỤNG TRONG DEMO 35
3.1 MVC Pattern: 35
Trang 83.2 Singleton Pattern 36
3.3 State Pattern 36
3.4 Observer Pattern 38
3.5 Strategy Pattern 40
3.6 Decorator Pattern 43
3.7 Command Pattern 44
3.8 Template Method Pattern 47
Trang 9DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ
Danh mục bảng
Bảng 1 Sơ đồ Use Case 8
Bảng 2 Đặc tả UseCase Thêm bàn 10
Bảng 3 Đặc tả UseCase Xóa bàn 11
Bảng 4: Đặc tả UseCase Sửa bàn 12
Bảng 5 Đặc tả UseCase Cập nhật trạng thái bàn 12
Bảng 6 Đặc tả UseCase Đặt món 13
Bảng 7 Đặc tả UseCase Chọn nước uống 14
Bảng 8 Đặc tả UseCase Chọn thức ăn 15
Bảng 9 Đặc tả UseCase Thanh toán 16
Bảng 10 Đặc tả UseCase Thêm nhân viên 16
Bảng 11 Đặc tả UseCase Xoá nhân viên 17
Bảng 12 Đặc tả UseCase Sửa nhân viên 18
Bảng 13 Đặc tả UseCase Đăng thông báo 19
Bảng 14 Đặc tả UseCase Xoá thông báo 20
Bảng 15 Đặc tả UseCase Chế biến món ăn 20
Danh mục hình Hình 1 Giao diện hiện thị các chức năng chính của hệ thống 21
Hình 2 Giao diện đặt món ăn 21
Hình 3 Giao diện khi thanh toán 22
Hình 4 Giao diện khi hoàn tất thanh toán 23
Hình 5 Giao diện quản lý nhân viên 23
Hình 6 Giao diện chế biến món ăn ở Khu bếp 24
Hình 7 Giao diện quản lý bàn 25
Hình 8 Sơ đồ lớp MVC Pattern 26
Hình 9 Sơ đồ lớp Singleton Pattern 26
Hình 10 Sơ đồ lớp State Pattern 27
Hình 11 Sơ đồ lớp Observer Pattern 27
Trang 10Hình 12 Sơ đồ lớp Strategy Pattern 28
Hình 13 Sơ đồ lớp Decorator Pattern (Gà rán) 29
Hình 14 Sơ đồ lớp Decorator Pattern(Trà sữa) 29
Hình 15 Sơ đồ lớp Command Pattern 30
Hình 16 Sơ đồ lớp Template Method Pattern 31
Hình 17 Tên các file code và code sử dụng MVC Pattern 32
Hình 18 Tên các file code và code sử dụng Singleton Pattern 33
Hình 19 Tên các file code và code sử dụng State Pattern 36
Hình 20 Tên các file code và code sử dụng Observer Pattern 38
Hình 21 Tên các file code và code sử dụng Strategy Pattern 41
Hình 22 Tên các file code và code sử dụng Decorator Pattern 42
Hình 23 Tên các file code và code sử dụng Command Pattern 45
Hình 24 Tên các file code và code sử dụng Template Method Pattern 47
Trang 111-MÔ TẢ ỨNG DỤNG
1.1 Giới thiệu
Hệ thống bán thức ăn nhanh đặt tại cửa hàng Yêu cầu có những chức năng phù hợp cho quản lí và nhân viên sử dụng
1.2 Sơ đồ Use case
Bảng 1 Sơ đồ Use Case
Trang 122 Nhân viên bếp - Chế biến món ăn trong bếp
3 Quản lý - Đăng thông báo cho nhân viên
-Quản lý nhân viên
1.4 Các Use case trong hệ thống
UC01 Thêm bàn Nhân viên tạo thêm bàn để đáp ứng nhu
cầu về số lượng kháchUC02 Xoá bàn Nhân viên xoá bàn khi không có khách
hoặc muốn sắp xếp lại các bànUC03 Sửa bàn Nhân viên thay đổi thông tin của bàn(ID,
tên bàn)UC04 Cập nhật trạng thái của bàn Nhân viên cập nhật tình trạng của bàn (bàn
trống, bàn đã được đặt trước, bàn đang được sử dụng)
UC05 Đặt món Nhân viên đặt món ăn mà khách hàng
mong muốn để chế biếnUC06 Chọn nước uống Nhân viên chọn nước uống cho khách hàngUC07 Chọn thức ăn Nhân viên chọn thức ăn cho khách hàngUC08 Thanh toán Nhân viên tiến hành thu tiền thanh toán từ
khách hàngUC09 Thêm nhân viên Quản lý thêm nhân viên mới vào cửa hàngUC10 Xoá nhân viên Quản lý xoá bỏ thông tin nhân viên khỏi
cửa hàng
Trang 13UC11 Sửa nhân viên Quản lý sửa đổi thông tin nhân viên, có thể
cập nhật tình trạng cấp bậc của nhân viên(thăng chức, hạ chức)
UC12 Đăng thông báo Quản lý đăng thông báo mới cho cửa hàngUC13 Xoá thông báo Quản lý xoá thông báo đã đăng
UC14 Chế biến món ăn Nhân viên bếp chế biến món ăn theo thông
tin mà nhân viên bán hàng gửi
1.5 Đặc tả usecase
Mã use
case
UC01
Use Case Thêm bàn
Ngữ cảnh Nhân viên tạo thêm bàn mới khi quán đông
Mô tả Nhân viên tạo thêm bàn để đáp ứng nhu cầu về số lượng khách
Tác nhân Nhân viên bán hàng
1.Nhân viên vào quản lí bàn
2 Nhân viên nhập thông tin bàn cần thêm
1.1 Hệ thống hiển thị các bàn hiện có
Trang 143 Nhân viên chọn “thêm” 3.1 Bàn mới được tạo
Use Case Xóa bàn
Ngữ cảnh Nhân viên xóa bàn khi không cần thiết
Mô tả Nhân viên xoá bàn khi không có khách hoặc muốn sắp xếp lại các bàn
Tác nhân Nhân viên bán hàng
1.Nhân viên vào quản lí bàn
2 Nhân viên chọn bàn muốn xóa
3 Nhân viên chọn “Xóa”
1.1 Hệ thống hiển thị các bàn hiện có
Use Case Sửa bàn
Ngữ cảnh Nhân viên muốn sửa thông tin bàn
Trang 15Mô tả Nhân viên thay đổi thông tin của bàn(ID, tên bàn)
Tác nhân Nhân viên bán hàng
1.Nhân viên vào quản lí bàn
2 Nhân viên chọn bàn muốn sửa
3 Nhân viên nhập những thông tincần chỉnh sửa
4 Nhân viên nhấn nút “Sửa”
1.1 Hệ thống hiển thị các bàn hiện có
2.1 Hệ thống sẽ hiển thị thông tin bàn đó
Use Case Cập nhật trạng thái bàn
Ngữ cảnh Nhân viên muốn cập nhật trạng thái bàn
Mô tả Nhân viên cập nhật tình trạng của bàn (bàn trống, bàn đã được đặt
trước, bàn đang được sử dụng)
Tác nhân Nhân viên bán hàng
Sự kiện Muốn cập nhật trạng thái bàn
Trang 161.Nhân viên vào quản lí bàn
2 Nhân viên chọn bàn muốn cập nhật trạng thái (bàn trống, bàn đã được đặt trước, bàn đang được sử dụng)
1.1 Hệ thống hiển thị các bàn hiện có
2.1 Hệ thống sẽ hiển thị những bàn đã cập nhật trạng thái/
Mô tả Nhân viên đặt món ăn mà khách hàng mong muốn để chế biến
Tác nhân Nhân viên bán hàng
Kết quả Vào gioa diện đặt món
Trang 171.Nhân viên vào chức năng đặt món
1.1 Hệ thống hiển thị các lựa chọnđặt món gồm nước uống và thức ăn
Use Case Chọn nước uống
Ngữ cảnh Nhân viên chọn thức uống mà khách hàng đặt
Mô tả Nhân viên chọn nước uống cho khách hàng
Tác nhân Nhân viên bán hàng
Truy cập vào bảng chọn nước uống
Kết quả Giá tiền và chi tiết món đặt hiện ra
Luồng sự
kiện
1.Nhân viên vào “Đặt món”
2 Nhân viên chọn vào phần thức uống và chọn các món mà khách hàng yêu cầu
1.1 Hệ thống hiển thị bảng lựa chọn thức ăn và nước uống2.1 Hệ thống sẽ hiển thị chi tiết vàgiá tiền các món mà nhân viên chọn
Ngoại lệ Không
Bảng 7 Đặc tả UseCase Chọn nước uống
Mã use UC07
Trang 18Use Case Chọn thức ăn
Ngữ cảnh Nhân viên chọn thức ăn mà khách hàng đặt
Mô tả Nhân viên chọn thức ăn cho khách hàng
Tác nhân Nhân viên bán hàng
Truy cập vào bảng chọn nước uống
Kết quả Giá tiền và chi tiết món đặt hiện ra
Luồng sự
kiện
1.Nhân viên vào “Đặt món”
2 Nhân viên chọn vào phần thức
ăn và chọn các món mà khách hàng yêu cầu
1.1 Hệ thống hiển thị bảng lựa chọn thức ăn và nước uống2.1 Hệ thống sẽ hiển thị chi tiết vàgiá tiền các món mà nhân viên chọn
Use Case Thanh toán
Ngữ cảnh Nhân viên thanh toán hoá đơn cho khách hàng
Mô tả Nhân viên tiến hành thu tiền thanh toán từ khách hàng gồm các loại
thanh toán (tiền mặt, thẻ ngân hang, ví điện tử)
Tác nhân Nhân viên bán hàng
Sự kiện
kích hoạt
Nhân viên nhấn nút “Thanh toán”
Trang 19Điều kiện
tiên quyết
Nhân viên đã chọn xong món mà khách hàng đặt
Kết quả Thanh toán thành công
2.1 Hệ thống sẽ hiển thị tiền tiền thừa
Use Case Thêm nhân viên
Ngữ cảnh Quản lí muốn thêm nhân viên mới
Mô tả Quản lý thêm nhân viên mới vào cửa hàng
Trang 202 Quản lí nhập thông tin nhân viên mới và chọn “thêm”.
viên có trong hệ thống2.1 Hệ thống sẽ hiện thị nhân viên mới trong danh sách
Use Case Xoá nhân viên
Ngữ cảnh Quản lí muốn xoá 1 nhân viên ra khỏi hệ thống
Mô tả Quản lý muốn xoá nhân viên khỏi cửa hàng
1.Quản lí vào quản lí nhân viên
2 Quản lí chọn nhân viên cần xoá
3 Quản lí chọn “Sa thải” để xoá nhân viên
1.1 Hệ thống hiển thị các nhân viên có trong hệ thống
2.1 Hệ thống sẽ hiện thị thông tin nhân viên
3.1 Hệ thống sẽ xoá nhân viên ra khỏi danh sách
Ngoại lệ Không
Bảng 11 Đặc tả UseCase Xoá nhân viên
Trang 21Mã use
case
UC11
Use Case Sửa nhân viên
Ngữ cảnh Quản lí muốn sửa thông tin nhân viên
Mô tả Quản lý sửa đổi thông tin nhân viên, có thể cập nhật tình trạng cấp bậc
của nhân viên(thăng chức, hạ chức)
1.Quản lí vào quản lí nhân viên
2 Quản lí chọn nhân viên cần sửa
3 Quản lí nhập thông tin cần chỉnh sửa (Có thể thăng chức và
hạ chức nhân viên)
4 Quản lí nhấn nút “Sửa”
1.1 Hệ thống hiển thị các nhân viên có trong hệ thống
2.1 Hệ thống sẽ hiện thị thông tin nhân viên
4.1 Thông tin nhân viên thay đổi trong hệ thống
Trang 22Use Case Đăng thông báo
Ngữ cảnh Quản lí muốn đăng thông báo về cửa hang cho nhân viên và khách
Truy cập vào quản lí nhân viên
Kết quả Đăng thông báo thành công
Luồng sự
kiện
1.Quản lí vào “Quản lí nhân viên”
2 Quản lí nhập thông báo muốn đăng vào ô textbox
1.1 Hệ thống hiển thị mục đăng thông báo dưới danh sách nhân viên
2.1 Hệ thống sẽ hiển thị thông báoquản lí nhập lên
Use Case Xoá thông báo
Ngữ cảnh Quản lí muốn xoá thông báo đã đăng
Mô tả Quản lý xoá thông báo đã đăng
Tác nhân Quản lí
Sự kiện
kích hoạt
Xoá thông báo đã đăng
Điều kiện Truy cập vào hệ thống
Trang 23Use Case Chế biến món ăn
Ngữ cảnh Nhân viên bếp khi nhập được đơn từ nhân viên bán hàng
Mô tả Nhân viên bếp chế biến món ăn theo thông tin mà nhân viên bán hàng
2.1 Hệ thống sẽ hiển thị công thứcchế biến món đó
Ngoại lệ Không
Trang 24Bảng 15 Đặc tả UseCase Chế biến món ăn
1.6 Quy trình nghiệp vụ
Khi khách hàng đến mua món ăn nhanh mà họ muốn, nhân viên sẽ chọn các món mà kháchhàng mong muốn thông qua màn hình của nhân viên, sau đó xem trạng thái bàn để biết còn bàn nào phù hợp để sắp xếp cho khách hàng Sau khi đã chọn món ăn khách hàng cần, nhân viên sẽ gửi yêu cầu xuống bếp để nhân viên bếp thực hiện các món ăn đó
1.7 Giao diện của ứng dụng:
Hình 1 Giao diện hiện thị các chức năng chính của hệ thốngHiển thị các chức năng mà hệ thống có như Đặt món, Quản lí nhân viên, Khu bếp, Quản lí bàn
Trang 25Hình 2 Giao diện đặt món ăn
Sau khi chọn chức năng Đặt món sẽ có giao diện như hình trên, tại đây có thể chọn các thức ăn hoặc thức uống có trên màn hình, có thể chọn thêm Phần thêm hoặc Topping Có thể nhập số lượng món ăn cần mua, hiển thị tống giá tiền cần phải thanh toán và có thể huỷ món ăn hoặc huỷ đơn
Trang 26Hình 3 Giao diện khi thanh toánKhi đã chọn xong món tiến hành đến việc thanh toán Ở đây có thể thanh toán bằng tiền mặt, thẻ tín dụng, Momo
Trang 27Hình 4 Giao diện khi hoàn tất thanh toánKhi chọn phương thức thanh toán thì nhập số tiền nhận từ khách hàng và nhấn “Hoàn tất thanh toán” thì hệ thống sẽ tính số tiền thừa cần hoàn trả lại cho khách.
Hình 5 Giao diện quản lý nhân viên
Trang 28Đây là giao diện quản lý nhân viên dành cho quản lý Tại đây quản lý có thể có các thao tác như Thêm nhân viên mới, Sửa thông tin nhân viên, sa thải nhân viên, tăng chức hoặc hạ chức nhân viên Tại đây quản lý cũng có thể đăng thông báo cho cho nhân viên khi cần thiết
Hình 6 Giao diện chế biến món ăn ở Khu bếpKhi chọn Khu bếp sẽ hiển thị giao diện chọn các món ăn chế biến Khi chọn vào món ăn thì sẽ hiển thị cách thức thực hiện món ăn đó
Trang 29Hình 7 Giao diện quản lý bànTại giao diện quản lý bàn thì nhân viên có thể thêm bàn, sửa thông tin bàn, xoá bàn để phù hợp với các tình huống khách hàng khác nhau Nhân viên cũng có thể cập nhật trạng thái của bàn trong cửa hàng như Bàn Trống, bàn Đã đặt trước, bàn Đang được sử dụng
2-CÁC MẪU THIẾT KẾ ĐƯỢC SỬ DỤNG
2.1 MVC Pattern
Trang 30Hình 8 Sơ đồ lớp MVC Pattern
Lý do áp dụng: Áp dụng MVC (Model - View - Controller) để dễ dàng thao tác dữ liệu giữaFrontend và Backend, dễ dàng hơn trong việc kiểm tra, phát hiện lỗi để đảm bảo chất lượng phầnmềm có kết quả cao hơn
2.2 Singleton Pattern
Hình 9 Sơ đồ lớp Singleton Pattern
Lí do áp dụng: Khi sử dụng thì không nên để quá nhiều chức năng, cũng như tạo quá nhiều thực thể kết nối Do đó Singleton Pattern áp dụng vào đây thì hợp lí, tất cả chức năng nên sử dụng chung một thực thể kết nối