Bối cảnh và vấn đề nghiên cứu

Đồ án môn học "Phân tích thiết kế hướng đối tượng" với đề tài "Project phát triển phần mềm quản lý nhà hàng Self Restaurant" được thực hiện bởi nhóm sinh viên Đặng Vĩnh Toàn, Nguyễn Quốc Toàn và Bùi Quang Trường dưới sự hướng dẫn của ThS. Nguyễn Thị Thủy tại Viện Kỹ thuật Công nghệ, Trường Đại học Thủ Dầu Một (tháng 11/2023).

Lý do chọn đề tài và bối cảnh thực tiễn

Theo nhóm tác giả, mô hình chuỗi nhà hàng "Self Restaurant" là một đơn vị kinh doanh ẩm thực mới gia nhập thị trường Việt Nam và có kế hoạch chính thức mở cửa phục vụ vào cuối năm 2023. Để vận hành mô hình này, doanh nghiệp có nhu cầu ứng dụng công nghệ thông tin vào công tác quản trị. Khảo sát hiện trạng thực tế chỉ ra một số thách thức của mô hình quản lý thủ công truyền thống:

  • Thiếu vốn đầu tư tập trung và thiếu quy hoạch chi tiết trong quy trình phục vụ.
  • Hiệu lực điều hành kém, phát sinh chi phí vận hành cao do phụ thuộc nhiều vào nhân viên phục vụ bàn.
  • Khách hàng gặp khó khăn trong việc nắm bắt danh mục món ăn sẵn có theo từng chi nhánh, thời gian chờ đợi đặt món và thanh toán kéo dài.

Việc xây dựng một phần mềm quản lý dành riêng cho mô hình nhà hàng tự phục vụ (self restaurant) được đặt ra nhằm cung cấp công cụ tự động hóa quy trình gọi món từ xa, đặt chỗ, tích điểm thành viên và kiểm soát doanh thu, đồng thời cho phép tùy biến linh hoạt theo đặc thù kinh doanh của chuỗi.

Mục tiêu và nhiệm vụ nghiên cứu

Văn bản xác định mục đích nghiên cứu tổng quát gồm các nhiệm vụ cụ thể:

  1. Cung cấp các công cụ quản lý tối ưu cho các hoạt động thường nhật của nhà hàng.
  2. Hỗ trợ theo dõi lịch trình đặt chỗ và quản lý thông tin kho hàng.
  3. Tự động hóa quy trình đặt món ăn tại bàn và quy trình thanh toán của thu ngân nhằm giảm tải nhân sự phục vụ.
  4. Xây dựng phân hệ tạo báo cáo doanh thu và lợi nhuận, cung cấp cho chủ sở hữu góc nhìn tổng quát về hiệu quả kinh doanh.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý nhà hàng tự phục vụ, bao gồm luồng tương tác giữa khách hàng tại bàn ăn, bộ phận nhà bếp, nhân viên thu ngân và người dùng tra cứu thông tin trên môi trường web.
  • Phạm vi nghiên cứu: Thiết kế và hiện thực hóa phần mềm quản lý áp dụng cho chuỗi Self Restaurant, tập trung vào 4 phân hệ chính: thiết bị cảm ứng tại bàn ăn, màn hình hiển thị tại khu vực bếp, giao diện thanh toán - thống kê của quầy thu ngân và trang thông tin chi nhánh cho người duyệt web.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ ứng dụng

Đồ án được xây dựng dựa trên phương pháp luận Phân tích và Thiết kế Hướng đối tượng (Object-Oriented Analysis and Design - OOAD), sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để biểu diễn các khía cạnh cấu trúc và hành vi của hệ thống:

  • Biểu đồ Use Case (Use Case Diagram): Phân rã chức năng và xác định ranh giới tương tác giữa các tác nhân (Actors) với hệ thống.
  • Biểu đồ lớp (Class Diagram): Xác định cấu trúc tĩnh, các thuộc tính, phương thức và mối quan hệ liên kết giữa các thực thể phần mềm.
  • Biểu đồ tuần tự (Sequence Diagram): Mô tả trình tự trao đổi thông điệp theo thời gian giữa các đối tượng để hoàn thành một kịch bản ca sử dụng.
  • Biểu đồ hoạt động (Activity Diagram): Trực quan hóa luồng công việc nghiệp vụ và các nhánh rẽ điều kiện xử lý.
  • Mô hình thực thể liên kết (ERD): Thiết kế cấu trúc cơ sở dữ liệu quan hệ cho các bảng lưu trữ thông tin hệ thống.

Về nền tảng công nghệ, nhóm tác giả dựa trên hệ sinh thái Microsoft .NET và ngôn ngữ lập trình C#, kế thừa các tài liệu tham khảo kỹ thuật như The C# Player’s Guide, CLR via C#, Lập trình C# từ cơ bản đến nâng cao, Lập trình C# 2008 cơ bản .NET toàn tập và Các giải pháp lập trình C#.

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thu thập và mô tả yêu cầu: Nhóm nghiên cứu tiến hành khảo sát bài toán thực tế của chuỗi Self Restaurant, chuyển hóa các phát biểu nghiệp vụ thành tập hợp User Stories đại diện cho 4 nhóm người dùng, từ đó xác lập danh mục chức năng theo thứ tự ưu tiên.
  • Phương pháp phân tích - thiết kế hệ thống: Sử dụng quy trình kỹ thuật phần mềm hướng đối tượng để lập bảng đặc tả use case, sơ đồ tương tác và quy hoạch cơ sở dữ liệu quan hệ gồm 10 bảng nghiệp vụ.
  • Nguồn dữ liệu: Dữ liệu giả lập về thực đơn chi nhánh, tài khoản định danh người dùng (User, Admin, Khách hàng, Đầu bếp, Thu ngân) và các kịch bản kiểm thử tình huống trên môi trường cục bộ.

Thiết kế và triển khai hệ thống

Kiến trúc tổng thể và các tác nhân tương tác

Hệ thống phần mềm quản lý nhà hàng Self Restaurant được thiết kế xoay quanh 4 tác nhân chính:

  1. Thực khách (Khách hàng): Tương tác với màn hình cảm ứng đặt tại bàn để xem thực đơn trong ngày theo chi nhánh, chọn món, gửi bếp, hủy món và quét mã QR/mã vạch thẻ thành viên để tích điểm thưởng.
  2. Đầu bếp: Tiếp nhận danh sách món gọi theo số bàn qua màn hình bếp, cập nhật trạng thái chế biến hoàn thành hoặc thông báo hết nguyên liệu.
  3. Thu ngân: Tiếp nhận yêu cầu thanh toán dựa trên mã số bàn, nhập số tiền khách đưa, tính tiền thừa trả lại và kết xuất báo cáo doanh thu theo khoảng thời gian.
  4. Người duyệt web: Truy cập website nhà hàng để tra cứu thông tin hệ thống chi nhánh, danh sách thực đơn, thành phần nguyên liệu và giá tiền.
Tác nhân Mã Use Case Tên Use Case Mô tả mục tiêu tương tác
Khách hàng UC01 Chọn món Khách hàng tự chọn món, tăng/giảm số lượng và gửi dữ liệu tới bếp qua màn hình tại bàn.
Khách hàng UC02 Tích điểm Quét mã vạch/QR qua đầu đọc thẻ để cộng điểm thưởng theo giá trị hóa đơn.
Đầu bếp UC03 Chuẩn bị món ăn Xem danh sách món gọi theo bàn, xác nhận hoàn tất hoặc báo hết món do thiếu nguyên liệu.
Thu ngân UC04 In tổng số doanh thu Đăng nhập quyền quản trị/thu ngân để kết xuất dữ liệu doanh thu trong ngày ra máy in.
Người duyệt web UC05 Tìm kiếm Tra cứu danh mục món ăn, hình ảnh, nguyên liệu và thông tin chi nhánh trực tuyến.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được tổ chức thành 10 bảng dữ liệu có liên kết khóa ngoại chặt chẽ:

  • ADMIN: Quản lý tài khoản quản trị hệ thống.
  • USER: Lưu trữ thông tin tài khoản chung để phân quyền đăng nhập.
  • BANAN: Quản lý danh sách bàn ăn và trạng thái phục vụ tại các chi nhánh.
  • CHINHANH: Quản lý thông tin địa điểm của các chi nhánh trong chuỗi nhà hàng.
  • KHACHHANG: Quản lý thông tin định danh khách hàng, số điện thoại và điểm tích lũy.
  • DAUBEP: Lưu trữ hồ sơ nhân viên bộ phận bếp.
  • THUNGAN: Quản lý danh sách nhân viên phụ trách quầy thu ngân.
  • MONAN: Lưu trữ danh mục các món ăn, đơn giá, mô tả và nguyên liệu.
  • HOADON: Quản lý thông tin giao dịch thanh toán, ngày lập, tổng tiền và mã bàn.
  • CHITIETHOADON: Chi tiết các món ăn, số lượng và thành tiền thuộc từng hóa đơn.

Quy tắc xử lý và giao diện người dùng

Nhóm tác giả thiết lập các điều kiện ràng buộc giao diện nhằm đảm bảo tính toàn vẹn dữ liệu:

  • Đăng ký / Đăng nhập: Tên đăng nhập giới hạn độ dài từ 6 đến 12 ký tự, chỉ chấp nhận chữ cái và chữ số, không chứa ký tự đặc biệt. Email bắt buộc phải có ký tự @. Hệ thống thông báo lỗi nếu để trống thông tin hoặc nhập mật khẩu xác nhận không trùng khớp.
  • Giao diện Chọn món: Thực khách phải tìm kiếm từ khóa gần đúng, lựa chọn món trước khi nhấn nút "Thêm món", và phải thực hiện thao tác "Gửi Bếp" thì lệnh gọi món mới được chuyển tới bộ phận chế biến. Chức năng "Hủy bỏ" cho phép xóa danh sách món vừa chọn trước khi gửi.
  • Giao diện Tích điểm: Yêu cầu thực khách mở mã vạch trên ứng dụng di động, quét qua đầu đọc thẻ tại bàn và nhấn nút "Tích điểm" để ghi nhận điểm thưởng vào tài khoản thành viên.
  • Giao diện Thống kê doanh thu: Nhân viên thu ngân bắt buộc phải chọn đầy đủ ngày bắt đầu và ngày kết thúc trước khi kích hoạt lệnh "Thống kê".
  • Giao diện Chuẩn bị món ăn: Đầu bếp phải chọn đúng bàn đang gọi món trước khi chế biến, nhấn "Hoàn Thành" sau khi xong hoặc nhấn "Hết Món" để hệ thống tự động xóa món và gửi cảnh báo về màn hình tại bàn của thực khách.

Nội dung chính theo từng chương

Lời mở đầu

Phần mở đầu xác định tổng quan về nhu cầu tự động hóa dịch vụ trong ngành nhà hàng, phân tích sự cần thiết của hệ thống quản lý chuỗi Self Restaurant nhằm rút ngắn quy trình gọi món, tối ưu hóa thời gian phục vụ, quản lý lịch đặt chỗ và nâng cao trải nghiệm khách hàng.

Chương 1. Hiện trạng và yêu cầu bài toán

Chương này đánh giá các thiếu hụt của mô hình nhà hàng truyền thống (thiếu vốn đầu tư chiều sâu, thiếu quy hoạch chi tiết, quy trình phục vụ tốn kém). Nhóm tác giả phân tích chi tiết bài toán kinh doanh của Self Restaurant khi gia nhập thị trường Việt Nam, lập danh mục User Stories cho 4 tác nhân, xây dựng sơ đồ tổng quát và viết phiếu đặc tả chi tiết cho 5 ca sử dụng cốt lõi: Chọn món (UC01), Tích điểm (UC02), Chuẩn bị món ăn (UC03), In tổng số doanh thu trong ngày (UC04) và Tìm kiếm món ăn (UC05).

Chương 2. Phân tích hệ thống

Chương 2 mô hình hóa cấu trúc và hành vi hệ thống thông qua các sơ đồ hướng đối tượng chuẩn UML:

  • Thiết lập Biểu đồ lớp (Class Diagram) mô tả mối quan hệ giữa các thực thể nghiệp vụ.
  • Xây dựng hệ thống Biểu đồ tuần tự (Sequence Diagram) cho các chu trình: Chọn món, Tích điểm, Yêu cầu mã số, Chuẩn bị món ăn và Tìm kiếm.
  • Thiết lập 5 Biểu đồ hoạt động (Activity Diagram) thể hiện các nhánh rẽ xử lý cho từng use case.
  • Thiết lập Sơ đồ thực thể liên kết (ERD) xác định cấu trúc lưu trữ dữ liệu.

Chương 3. Thiết kế hệ thống

Nội dung chương 3 tập trung vào hai mảng công việc:

  • Thiết kế cơ sở dữ liệu: Khởi tạo cấu trúc chi tiết cho 10 bảng dữ liệu quan hệ (ADMIN, BANAN, CHINHANH, KHACHHANG, DAUBEP, THUNGAN, HOADON, CHITIETHOADON, USER, MONAN).
  • Thiết kế giao diện: Xây dựng màn hình tương tác và lập bảng phân tích các tình huống xử lý (kịch bản hợp lệ, kịch bản lỗi mạng, thiếu dữ liệu, sai định dạng) cho các màn hình: Đăng nhập, Đăng ký, Chọn món, Tích điểm, Thống kê doanh thu và Chuẩn bị món ăn.

Chương 4. Cài đặt và thử nghiệm

Chương 4 trình bày tiến độ cài đặt giao diện, lập bảng phân công công việc chi tiết giữa các thành viên và công bố kết quả kiểm thử thực nghiệm trên từng chức năng:

STT Thời gian Nội dung công việc Người thực hiện
1 05/11/2023 Thiết kế dữ liệu Nguyễn Quốc Toàn
2 10/11/2023 Thiết kế giao diện Nguyễn Quốc Toàn
3 13/11/2023 Thiết kế xử lý Bùi Quang Trường
4 19/11/2023 Cài đặt chương trình Bùi Quang Trường
5 20/11/2023 Viết báo cáo đồ án Đặng Vĩnh Toàn
6 21/11/2023 Kiểm tra chương trình Đặng Vĩnh Toàn

Nhóm đã thực hiện kiểm thử chức năng Đăng ký qua 6 tình huống (đăng ký thành công, username chứa ký tự đặc biệt, số điện thoại không hợp lệ, email không hợp lệ, trường thông tin để trống, nhập lại mật khẩu không khớp). Tiếp đó là kiểm thử các chức năng Đăng nhập khi nhập sai tài khoản/mật khẩu, Thêm món, Gửi bếp, Hủy bỏ món, Tìm kiếm thực đơn, Tích điểm thẻ và Thống kê doanh thu theo ngày.

Chương 5. Kết quả, hạn chế, thuận lợi và khó khăn

Chương cuối cùng tổng kết các hạng mục đã hoàn thành, chỉ ra các giới hạn kỹ thuật và phân tích các yếu tố thuận lợi - khó khăn phát sinh trong quá trình nghiên cứu và triển khai phần mềm.


Kết quả và đóng góp

Kết quả triển khai thực tế

Theo báo cáo tự đánh giá của nhóm tác giả, đồ án đã hoàn thành thiết kế hầu hết các giao diện tương tác, thiết lập được lược đồ cơ sở dữ liệu cơ bản và xây dựng đầy đủ hệ thống biểu đồ UML. Tuy nhiên, mức độ hoàn thiện về mặt mã nguồn cài đặt có sự phân hóa rõ rệt giữa các phân hệ:

STT Phân hệ chức năng Mức độ hoàn thành Tình trạng kiểm thử tình huống
1 Chọn món 100% Hoàn thành 8/8 tình huống
2 Tìm kiếm 100% Hoàn thành 5/5 tình huống
3 Tích điểm 100% Hoàn thành 5/5 tình huống
4 Đăng ký tài khoản 50% Hoàn thành 5/10 tình huống
5 Đăng nhập 50% Hoàn thành 5/10 tình huống
6 Thống kê doanh thu 30% Cài đặt được giao diện cơ bản
7 Chuẩn bị món ăn 30% Cài đặt được giao diện cơ bản

Đóng góp của đề tài

  • Xây dựng hoàn chỉnh hồ sơ phân tích thiết kế hướng đối tượng (OOAD) cho bài toán quản lý nhà hàng tự phục vụ, chuyển hóa bài toán nghiệp vụ thành các tài liệu kỹ thuật chuẩn mực (Use Case, Class Diagram, Sequence Diagram, Activity Diagram, ERD).
  • Đưa ra giải pháp số hóa quy trình phục vụ tại bàn bằng màn hình cảm ứng kết hợp quét mã tích điểm, giúp cắt giảm sự can thiệp của nhân sự phục vụ trực tiếp.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

Văn bản nêu rõ các hạn chế thực tế trong quá trình thực hiện đồ án:

  1. Thiếu sót về chức năng và dữ liệu: Hệ thống còn thiếu một số chức năng vận hành thực tế; thiết kế cơ sở dữ liệu chưa đạt mức độ hoàn chỉnh để đáp ứng toàn bộ các quan hệ nghiệp vụ phức tạp.
  2. Tiến độ cài đặt chưa đồng đều: Hai chức năng quan trọng là "Chuẩn bị món ăn" tại bếp và "Thống kê doanh thu" của thu ngân mới chỉ hoàn thành 30% khối lượng; chức năng Đăng ký và Đăng nhập chỉ đạt 50%.
  3. Điều kiện thực hiện hạn chế: Quỹ thời gian làm việc của nhóm bị chi phối do phải thực hiện song song đồ án của nhiều môn học khác. Đồ án cũng ghi nhận tình trạng một thành viên trong nhóm không tham gia học thực hành, ảnh hưởng đến tiến độ chung.
  4. Vấn đề kỹ thuật vận hành: Nguy cơ phát sinh lỗi phần mềm, hiện tượng treo hệ thống hoặc mất kết nối mạng giữa các trạm máy tính chưa có cơ chế xử lý ngoại lệ triệt để.

Hướng phát triển của đề tài

Nhóm tác giả đề xuất 5 định hướng nâng cấp trong tương lai:

  1. Quản lý bàn và đặt món trực tuyến: Tích hợp tính năng cho phép thực khách đặt trước bàn ăn và lựa chọn món qua ứng dụng di động hoặc cổng thông tin web nhằm giảm thiểu thời gian chờ đợi.
  2. Tích hợp thanh toán số: Bổ sung cổng thanh toán trực tiếp qua ví điện tử hoặc các thiết bị POS di động ngay tại bàn ăn.
  3. Phân hệ điều phối nhân viên: Bổ sung tính năng quản lý lịch làm việc, chấm công và phân bổ công việc tự động cho nhân sự các bộ phận.
  4. Phân hệ đánh giá và phản hồi: Cung cấp kênh tiếp nhận đánh giá chất lượng món ăn và dịch vụ trực tiếp từ thực khách qua thiết bị di động.
  5. Tối ưu hóa trải nghiệm người dùng (UX/UI): Cải tiến giao diện trực quan, tinh gọn thao tác để thuận tiện hơn cho người dùng không am hiểu kỹ thuật.

Giá trị tham khảo

Đồ án là tài liệu tham khảo thực tế cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là mẫu báo cáo môn học "Phân tích thiết kế hướng đối tượng" thể hiện đầy đủ các bước chuẩn hóa từ khảo sát hiện trạng, lập User Story, viết phiếu đặc tả Use Case cho đến xây dựng sơ đồ tương tác UML (Sequence, Activity, Class Diagram).
  • Nhóm nghiên cứu xây dựng phần mềm quản lý nhà hàng: Tham khảo quy trình phân rã nghiệp vụ cho mô hình tự phục vụ (Self Restaurant), đặc biệt là việc thiết lập các bảng ràng buộc dữ liệu giao diện và kịch bản thử nghiệm ngoại lệ cho chức năng gọi món và tích điểm.

Câu hỏi thường gặp

1. Đồ án này là khóa luận tốt nghiệp hay đồ án môn học, được thực hiện tại đơn vị nào?
Đây là đồ án môn học "Phân tích thiết kế hướng đối tượng", được thực hiện bởi nhóm sinh viên Đặng Vĩnh Toàn, Nguyễn Quốc Toàn và Bùi Quang Trường tại Viện Kỹ thuật Công nghệ, Trường Đại học Thủ Dầu Một vào tháng 11/2023, dưới sự hướng dẫn của ThS. Nguyễn Thị Thủy.

2. Hệ thống quản lý nhà hàng trong đồ án gồm những tác nhân nào và hỗ trợ bao nhiêu ca sử dụng chính?
Hệ thống xác định 4 tác nhân chính gồm: Thực khách (Khách hàng), Đầu bếp, Nhân viên thu ngân và Người duyệt web. Có 5 ca sử dụng cốt lõi được phân tích và đặc tả chi tiết: Chọn món (UC01), Tích điểm (UC02), Chuẩn bị món ăn (UC03), In tổng số doanh thu trong ngày (UC04) và Tìm kiếm thông tin món ăn (UC05).

3. Cơ sở dữ liệu của phần mềm được thiết kế gồm những bảng nào?
Cơ sở dữ liệu được thiết kế gồm 10 bảng: ADMIN, BANAN, CHINHANH, KHACHHANG, DAUBEP, THUNGAN, HOADON, CHITIETHOADON, USER và MONAN.

4. Mức độ hoàn thành thực tế của các chức năng phần mềm đạt tỷ lệ như thế nào?
Theo bảng tự đánh giá của tác giả, có 3 chức năng đạt 100% mức độ hoàn thành gồm Chọn món (8/8 tình huống), Tìm kiếm (5/5 tình huống) và Tích điểm (5/5 tình huống). Hai chức năng đạt mức 50% là Đăng ký (5/10 tình huống) và Đăng nhập (5/10 tình huống). Hai chức năng đạt mức thấp nhất 30% là Chuẩn bị món ăn và Thống kê doanh thu.

5. Nhóm tác giả đã tự nhận xét những khó khăn và hạn chế khách quan nào trong báo cáo?
Nhóm thừa nhận các chức năng và cơ sở dữ liệu chưa hoàn chỉnh, thiếu thời gian do trùng lịch làm đồ án của các môn học khác, và ghi nhận một thành viên trong nhóm không theo học thực hành. Ngoài ra, hệ thống còn đối mặt với nguy cơ lỗi kỹ thuật khi mất kết nối mạng và gặp khó khăn trong việc tương thích với các thiết bị ngoại vi như POS hay máy in hóa đơn.


Kết luận

Báo cáo đồ án môn học "Project phát triển phần mềm quản lý nhà hàng Self Restaurant" của nhóm sinh viên Trường Đại học Thủ Dầu Một đã xây dựng thành công tài liệu phân tích thiết kế hướng đối tượng hoàn chỉnh cho mô hình nhà hàng tự phục vụ. Đề tài đã hoàn thành mô hình hóa hệ thống bằng chuẩn UML, thiết kế cấu trúc cơ sở dữ liệu quan hệ 10 bảng và hiện thực hóa kiểm thử đạt 100% đối với các chức năng cốt lõi như Chọn món, Tìm kiếm và Tích điểm. Dù còn một số hạn chế về mặt hoàn thiện mã nguồn ở phân hệ thống kê và nhà bếp do áp lực thời gian, đồ án phản ánh đúng tiến trình phát triển phần mềm chuẩn mực và cung cấp cơ sở kỹ thuật rõ ràng cho các hướng nâng cấp ứng dụng sau này.