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

Trong bối cảnh nhu cầu chăm sóc thú cưng tại các đô thị ngày càng gia tăng, các cơ sở kinh doanh dịch vụ thú cưng quy mô nhỏ và vừa đối mặt với nhiều khó khăn trong khâu vận hành thủ công, từ việc tiếp nhận lịch hẹn, theo dõi dịch vụ cho đến tổng hợp doanh thu. Đề tài "Hệ thống cửa hàng mini chăm sóc thú cưng" được nhóm sinh viên khóa D20 thuộc Học viện Công nghệ Bưu chính Viễn thông thực hiện trong khuôn khổ học phần Nhập môn Công nghệ Phần mềm (năm 2023) dưới sự hướng dẫn của giảng viên Đào Ngọc Phong.

Vấn đề nghiên cứu trọng tâm của đề tài được xác định thông qua các nhiệm vụ cụ thể:

  1. Khảo sát nghiệp vụ và xây dựng hệ thống thuật ngữ, bảng từ khóa phục vụ tin học hóa quy trình quản lý cửa hàng thú cưng.
  2. Xác định các tác nhân (Actors) và phạm vi chức năng dành cho từng nhóm đối tượng sử dụng hệ thống.
  3. Phân tích mô hình hóa yêu cầu nghiệp vụ bằng phương pháp phân tích hướng đối tượng (OOA), nhận diện các thực thể dữ liệu và mối quan hệ giữa chúng.
  4. Thiết kế chi tiết các ca sử dụng (Use Cases) thông qua hệ thống biểu đồ tương tác, biểu đồ hoạt động và biểu đồ tuần tự theo chuẩn UML.

Đối tượng nghiên cứu của đồ án là quy trình quản lý thông tin, điều phối lịch hẹn, tạo lập hóa đơn thanh toán và tổng hợp báo cáo tài chính tại một cửa hàng dịch vụ thú cưng. Phạm vi của đề tài tập trung vào mô hình hệ thống vừa và nhỏ, bao gồm 4 nhóm người dùng chính tương tác trực tiếp: Người dùng hệ thống, Khách hàng, Nhân viên và Quản lý cửa hàng.

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

Đồ án áp dụng quy trình phân tích và thiết kế phần mềm hướng đối tượng (Object-Oriented Analysis and Design - OOAD) kết hợp ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language). Phương pháp nghiên cứu thực nghiệm được chia thành 3 giai đoạn kế tiếp nhau:

  • Pha lấy yêu cầu (Requirement Engineering): Sử dụng kỹ thuật phân loại từ khóa nghiệp vụ theo 3 nhóm đối tượng (con người, hoạt động, vật/đối tượng xử lý), mô tả kịch bản tự nhiên và thiết lập danh mục use case tổng quan.
  • Pha phân tích (System Analysis): Áp dụng kỹ thuật trích xuất danh từ từ văn bản mô tả để nhận diện các lớp thực thể (Entity Classes), loại bỏ các danh từ chung chung hoặc không thuộc phạm vi xử lý của hệ thống, đồng thời xác định các quan hệ cấu trúc (kế thừa, kết tập, kết hợp 1-n, n-n và các lớp liên kết trung gian).
  • Pha thiết kế (System Design): Chi tiết hóa từng ca sử dụng thông qua bảng đặc tả ca sử dụng (tiền điều kiện, hậu điều kiện, luồng sự kiện chính, luồng ngoại lệ), xây dựng biểu đồ hoạt động (Activity Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram).

Nguồn dữ liệu của nghiên cứu xuất phát từ kịch bản vận hành thực tế của mô hình cửa hàng dịch vụ thú cưng, với các bộ dữ liệu mẫu về danh mục dịch vụ (cắt tỉa lông, tắm gội, mát xa, làm móng), dữ liệu khách hàng, nhân viên và các giao dịch phát sinh.

Nội dung chính theo từng giai đoạn nghiên cứu

Pha lấy yêu cầu

Tại giai đoạn này, nhóm nghiên cứu chuẩn hóa hệ thống khái niệm thông qua bảng từ khóa đối chiếu song ngữ Việt - Anh và phân chia chức năng theo vai trò người dùng:

STT Thuật ngữ tiếng Việt Tên tiếng Anh Giải thích nghiệp vụ
1 Người dùng User Đối tượng có thẩm quyền đăng nhập vào hệ thống
2 Khách hàng Customer Người dùng đặt trước dịch vụ cho thú cưng
3 Nhân viên Staff Người dùng xem lịch hẹn và lập hóa đơn thanh toán
4 Quản lý Administrator Quản lý nội dung dịch vụ và thông tin nhân viên
5 Đặt trước Book Khách hàng chọn trước dịch vụ cho thú cưng
6 Tạo hoá đơn Create-Billing Nhân viên xuất hóa đơn thanh toán dịch vụ
7 Thống kê Statistical Hoạt động tổng hợp doanh thu và tần suất dịch vụ
8 Dịch vụ Service Các gói chăm sóc thú cưng do cửa hàng cung cấp
9 Hoá đơn Bill Chứng từ ghi nhận dịch vụ và chi phí thanh toán
10 Lịch hẹn Appointment Thông tin đặt trước theo mốc thời gian cụ thể

Phạm vi chức năng của hệ thống được quy định chi tiết cho từng nhóm tác nhân:

  • Người dùng chung: Đăng nhập, cập nhật và sửa đổi thông tin cá nhân.
  • Khách hàng: Đăng ký tài khoản, đặt lịch hẹn trực tuyến, xem chi tiết lịch hẹn, thực hiện thao tác hủy lịch hẹn đã đặt.
  • Nhân viên: Kiểm tra danh sách lịch hẹn của khách hàng, tạo hóa đơn thanh toán (từ lịch hẹn có sẵn hoặc thêm dịch vụ trực tiếp tại quầy), in hóa đơn, thống kê hóa đơn được lập trong ca làm việc.
  • Quản lý: Quản lý toàn diện tài khoản nhân viên (thêm, sửa, xóa, tìm kiếm), quản lý danh mục dịch vụ (thêm mới, cập nhật đơn giá/mô tả, xóa, tìm kiếm), xem các báo cáo thống kê chuyên sâu (doanh thu theo tháng, thống kê khách hàng theo mức chi tiêu, thống kê số lượt sử dụng dịch vụ).

Pha phân tích

Thông qua kỹ thuật phân tích ngữ pháp trên văn bản mô tả nghiệp vụ, nhóm tác giả tiến hành sàng lọc các danh từ để xác định các lớp thực thể cốt lõi:

  • Loại bỏ các danh từ trừu tượng hoặc nằm ngoài phạm vi xử lý: Hệ thống, Thông tin, Cửa hàng, Thú cưng.
  • Nhận diện các lớp thực thể cơ bản: NguoiDung, QuanLy, KhachHang, NhanVien, DichVu, LichHen, HoaDon, cùng các lớp phục vụ thống kê báo cáo (TKDichVu, TKKhachHang, TKDoanhThu, TKHoaDon).

Cấu trúc thuộc tính của các đối tượng dữ liệu được quy định rõ ràng:

  • NguoiDung: Gồm tên đăng nhập, mật khẩu, họ tên, ngày sinh, số điện thoại, email, địa chỉ.
  • KhachHang: Kế thừa NguoiDung, bổ sung thuộc tính điểm tích lũy.
  • NhanVien: Kế thừa NguoiDung, bổ sung thuộc tính số CCCD.
  • QuanLy: Kế thừa các thuộc tính của NguoiDung.
  • DichVu: Tên dịch vụ, mô tả chi tiết, đơn giá.
  • LichHen: Danh sách dịch vụ, giờ hẹn, ngày hẹn, đơn giá dự kiến.
  • HoaDon: Danh sách dịch vụ, mô tả, tổng thành tiền, thời gian lập, mã nhân viên phụ trách.

Mối quan hệ cấu trúc giữa các lớp thực thể được thiết lập nhằm loại bỏ quan hệ nhiều - nhiều (n-n):

  • Quan hệ giữa KhachHang và LichHen là quan hệ 1-n (một khách hàng sở hữu nhiều lịch hẹn).
  • Quan hệ giữa LichHen và DichVu là quan hệ n-n, được chuẩn hóa bằng việc đề xuất lớp liên kết trung gian LichHenDichVu.
  • Quan hệ giữa HoaDon và DichVu là quan hệ n-n, được chuẩn hóa thông qua lớp liên kết trung gian HoaDonDichVu.
  • Quan hệ giữa NhanVien và HoaDon là quan hệ 1-n (một nhân viên có thể lập nhiều hóa đơn).
  • Quan hệ giữa KhachHang và HoaDon là quan hệ 1-n (một khách hàng có thể có nhiều hóa đơn thanh toán).
  • Các lớp thống kê được thiết kế theo quan hệ kế thừa và phụ thuộc: TKDichVu kế thừa DichVu, TKHoaDon kế thừa HoaDon, TKDoanhThu phụ thuộc HoaDon, TKKhachHang kế thừa KhachHang và phụ thuộc HoaDon.

Thiết kế chi tiết các ca sử dụng theo phân công

Giai đoạn thiết kế được phân rã chi tiết thành từng ca sử dụng cụ thể do từng thành viên trong nhóm phụ trách, hoàn thiện từ khâu đặc tả kịch bản đến xây dựng biểu đồ tương tác:

Thành viên phụ trách Mã sinh viên Ca sử dụng (Use Case) chi tiết
Nguyễn Trọng Hoàng (Trưởng nhóm) B20DCCN279 - Kiểm tra lịch hẹn (Nhân viên)
- Thống kê hóa đơn theo ca làm việc (Nhân viên)
Đặng Minh Hiếu B20DCCN244 - Đặt lịch hẹn (Khách hàng)
- Xem chi tiết và Hủy lịch hẹn (Khách hàng)
- Đăng ký tài khoản mới (Khách hàng)
Trần Tiến Nam B20DCCN460 - Quản lý nhân viên (Thêm, Tìm kiếm, Sửa, Xóa)
- Quản lý dịch vụ (Thêm mới, Tìm kiếm, Cập nhật, Xóa)
Lê Phúc Hoàng B20DCCN274 - Đăng nhập hệ thống (Người dùng)
- Sửa thông tin cá nhân (Người dùng)
- Thanh toán và in hóa đơn (Nhân viên & Khách hàng)
Lương Văn Thiết B20DCCN670 - Thống kê khách hàng theo doanh số (Quản lý)
- Thống kê doanh thu theo tháng/ca (Quản lý)
- Thống kê lượt sử dụng dịch vụ (Quản lý)

Đặc tả luồng xử lý và kịch bản nghiệp vụ chính

  • Ca sử dụng Thanh toán (Lê Phúc Hoàng phụ trách):

    • Tiền điều kiện: Nhân viên đăng nhập thành công vào hệ thống; khách hàng có yêu cầu thanh toán dịch vụ.
    • Hậu điều kiện: Hệ thống tạo hóa đơn, lưu trữ giao dịch và thực hiện in hóa đơn cho khách hàng.
    • Kịch bản chính: Nhân viên truy cập chức năng tạo hóa đơn, lựa chọn phương thức nạp dữ liệu bằng cách nhập mã lịch hẹn (ví dụ: LH123) để tự động trích xuất dịch vụ hoặc nhập trực tiếp dịch vụ tại quầy (ví dụ: "Tắm gội" với đơn giá tương ứng). Sau khi xác nhận các hạng mục dịch vụ (gồm số lượng, đơn giá, thành tiền), nhân viên kích hoạt lệnh thanh toán, hệ thống ghi nhận và xuất dữ liệu in hóa đơn (HD1234).
    • Ngoại lệ: Hệ thống cảnh báo khi mã lịch hẹn nhập vào không tồn tại hoặc dịch vụ yêu cầu không có trong danh mục.
  • Ca sử dụng Quản lý nhân viên và Quản lý dịch vụ (Trần Tiến Nam phụ trách):

    • Thiết lập đầy đủ 4 thao tác CRUD (Create, Read, Update, Delete).
    • Kịch bản thêm nhân viên mới yêu cầu kiểm tra tính hợp lệ của các trường thông tin: Mã nhân viên, Tên đăng nhập, Mật khẩu, Họ tên, Ngày sinh, Số điện thoại, Email, Địa chỉ, Số CCCD.
    • Kịch bản xử lý ngoại lệ: Phát hiện và trả về cảnh báo khi nhập sai định dạng số điện thoại, trùng mã định danh, hoặc nhập sai định dạng đơn giá dịch vụ.
  • Ca sử dụng Đặt và Quản lý lịch hẹn (Đặng Minh Hiếu phụ trách):

    • Cho phép khách hàng chọn danh mục dịch vụ (như cắt tỉa lông, tắm gội), chọn mốc giờ hẹn và ngày hẹn cụ thể để tính toán tổng giá dự kiến (ví dụ: mã hẹn H18, thời gian 8:00 ngày 28/10/2023, tổng tiền dự kiến 890.000 VNĐ).
    • Cho phép tra cứu chi tiết hoặc kích hoạt hủy lịch hẹn với điều kiện xác nhận từ phía người dùng.
  • Các ca sử dụng Thống kê báo cáo (Lương Văn Thiết & Nguyễn Trọng Hoàng phụ trách):

    • Thống kê doanh thu: Hỗ trợ lọc dữ liệu theo tháng (ví dụ: Tháng 09/2023), hiển thị bảng tổng hợp doanh thu theo từng ngày và cho phép xem chi tiết từng ca làm việc (ca Sáng, ca Chiều).
    • Thống kê khách hàng: Tổng hợp số lượt mua dịch vụ và tổng số tiền thanh toán lũy kế của từng khách hàng (ví dụ: Khách hàng KH1 thực hiện 3 lần sử dụng dịch vụ với tổng thanh toán 1.000.000 VNĐ).
    • Thống kê dịch vụ: Tổng hợp số lượt sử dụng các dịch vụ trong tháng để phục vụ việc đánh giá hiệu quả kinh doanh.

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

Báo cáo bài tập lớn đã hoàn thành trọn vẹn các yêu cầu kỹ thuật của môn học Nhập môn Công nghệ Phần mềm:

  1. Xây dựng hoàn chỉnh tài liệu đặc tả yêu cầu phần mềm cho hệ thống quản lý cửa hàng chăm sóc thú cưng quy mô vừa và nhỏ.
  2. Thiết lập mô hình hóa hướng đối tượng rõ ràng, xử lý chuẩn xác các mối quan hệ đa kết giữa các thực thể thông qua hai lớp trung gian LichHenDichVu và HoaDonDichVu.
  3. Phân rã và đặc tả chi tiết 13 ca sử dụng nghiệp vụ với đầy đủ kịch bản chính, kịch bản ngoại lệ, tiền điều kiện và hậu điều kiện.
  4. Đóng chỉnh chu hệ thống biểu đồ UML từ pha phân tích (biểu đồ use case, biểu đồ lớp thực thể, biểu đồ cộng tác) đến pha thiết kế (biểu đồ hoạt động, biểu đồ tuần tự).

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

  • Hạn chế: Tài liệu báo cáo tập trung chủ yếu vào pha phân tích và thiết kế mô hình (OOAD), chưa bao gồm mã nguồn triển khai thực tế (source code), chưa đề cập đến hệ quản trị cơ sở dữ liệu cụ thể cũng như chưa tiến hành kiểm thử phần mềm trên môi trường thực tế. Một số sơ đồ lớp và tuần tự trong tài liệu mới dừng ở mức mô hình hóa logic.
  • Hướng phát triển: Chuyển đổi các mô hình phân tích và thiết kế sang giai đoạn lập trình thực thi (Implementation), xây dựng giao diện người dùng (UI/UX) hoàn chỉnh, tích hợp hệ quản trị cơ sở dữ liệu quan hệ và xây dựng kịch bản kiểm thử tự động (Unit Test, Integration Test).

Giá trị tham khảo

Tài liệu là nguồn tư liệu học thuật hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin đang theo học các học phần như Nhập môn Công nghệ Phần mềm, Phân tích Thiết kế Hệ thống Hướng đối tượng (OOAD). Đồ án cung cấp mẫu chuẩn mực về:

  • Quy trình xử lý danh từ để trích xuất lớp thực thể từ văn bản ngôn ngữ tự nhiên.
  • Cách thức chuẩn hóa mối quan hệ nhiều - nhiều trong thiết kế biểu đồ lớp UML.
  • Cấu trúc viết tài liệu đặc tả ca sử dụng chi tiết kèm theo luồng xử lý ngoại lệ.

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

1. Hệ thống phân chia quyền hạn cho những nhóm người dùng nào? Hệ thống xác định 4 nhóm tác nhân gồm: Người dùng chung (đăng nhập, sửa thông tin), Khách hàng (đăng ký, đặt/hủy/xem lịch hẹn), Nhân viên (kiểm tra lịch hẹn, tạo hóa đơn, in hóa đơn, thống kê ca làm việc) và Quản lý (quản lý nhân viên, quản lý dịch vụ, xem các thống kê doanh thu, khách hàng, dịch vụ).

2. Làm thế nào để giải quyết quan hệ nhiều - nhiều giữa Lịch hẹn, Hóa đơn và Dịch vụ trong mô hình phân tích? Nhóm tác giả đã đề xuất hai lớp thực thể liên kết trung gian là LichHenDichVu (giải quyết quan hệ n-n giữa LichHen và DichVu) và HoaDonDichVu (giải quyết quan hệ n-n giữa HoaDon và DichVu).

3. Quy trình thanh toán của nhân viên tại quầy diễn ra như thế nào? Nhân viên đăng nhập vào hệ thống, chọn chức năng thanh toán và tạo hóa đơn. Nhân viên có thể thêm dịch vụ bằng cách nhập mã lịch hẹn có sẵn hoặc nhập trực tiếp tên dịch vụ tại quầy, sau đó kiểm tra danh sách dịch vụ, xác nhận thanh toán và thực hiện in hóa đơn giao cho khách hàng.

4. Những lớp thực thể nào tham gia vào chức năng thống kê báo cáo? Hệ thống thiết kế 4 lớp thực thể chuyên biệt cho hoạt động thống kê gồm: TKDichVu (kế thừa từ DichVu), TKHoaDon (kế thừa từ HoaDon), TKDoanhThu (phụ thuộc vào HoaDon) và TKKhachHang (kế thừa từ KhachHang, đồng thời phụ thuộc vào HoaDon).

Kết luận

Báo cáo bài tập lớn "Hệ thống cửa hàng mini chăm sóc thú cưng" của nhóm sinh viên Học viện Công nghệ Bưu chính Viễn thông là công trình phân tích thiết kế phần mềm hoàn chỉnh theo phương pháp hướng đối tượng. Nghiên cứu đã giải quyết bài bản các bước từ khảo sát, trích xuất thực thể, mô hình hóa dữ liệu đến đặc tả chi tiết các tương tác hệ thống bằng chuẩn UML. Đây là tài liệu tham khảo có giá trị cao về mặt phương pháp luận phân tích thiết kế hệ thống thông tin quản lý quy mô vừa và nhỏ.