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

Đề tài "Xây dựng website bán thức ăn và phụ kiện cho thú cưng" được thực hiện trong khuôn khổ học phần Công Nghệ Phần Mềm, dưới sự hướng dẫn của giảng viên Nguyễn Trung Kiệt và do Nhóm 9 (gồm các sinh viên: Huỳnh Văn Khá - MSSV 2224802010318, Nguyễn Thanh Liêm - MSSV 2224802010267, Trần Đại Nghĩa - MSSV 2224802010857, Huỳnh Văn Sang - MSSV 2224802010365) triển khai.

Bối cảnh thực tiễn của đề tài xuất phát từ nhu cầu thương mại điện tử chuyên biệt dành cho thú cưng, bao gồm việc cung cấp thông tin, kinh doanh các chủng loại thú cưng cùng các mặt hàng thức ăn, phụ kiện liên quan. Hệ thống được thiết kế nhằm giải quyết bài toán quản trị vận hành bán hàng đa chức năng cho người quản trị (Admin) và tối ưu hóa trải nghiệm mua sắm, tương tác trực tuyến cho khách hàng (Customer) cũng như khách vãng lai (Guest).

Mục tiêu và nhiệm vụ nghiên cứu chính của đồ án bao gồm:

  1. Phân tích yêu cầu chức năng và phi chức năng cho hệ thống website bán hàng thú cưng.
  2. Xây dựng kiến trúc phần mềm tổng thể dựa trên mô hình MVC (Model-View-Controller).
  3. Thiết kế chi tiết hệ thống bằng phương pháp hướng đối tượng (OOD), mô hình hóa thông qua hệ thống sơ đồ UML (Use Case Diagram, Class Diagram, Database Diagram, Activity Diagram, Sequence Diagram).
  4. Xây dựng đặc tả ca sử dụng (Use Case Specification) cho toàn bộ các luồng nghiệp vụ của từng đối tượng tác nhân.
  5. Thiết kế cấu trúc giao diện người dùng và định hình các nguyên tắc tối ưu hóa trải nghiệm người dùng (UX/UI).

Đối tượng nghiên cứu của đồ án là quy trình phân tích, thiết kế hệ thống phần mềm thương mại điện tử trong lĩnh vực kinh doanh thú cưng và phụ kiện. Phạm vi nghiên cứu trong tài liệu tập trung vào giai đoạn thiết kế phần mềm (nội dung Bài tập Chương 4), bao gồm đặc tả kiến trúc, cơ sở dữ liệu, các lớp đối tượng và tương tác hành vi của hai phân hệ chính: Phân hệ Quản trị (Admin) và Phân hệ Khách hàng/Khách vãng lai.

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

Đồ án ứng dụng các nền tảng lý thuyết kỹ thuật phần mềm chuẩn mực cùng phương pháp luận thiết kế hướng đối tượng:

  • Phương pháp thiết kế hướng đối tượng (Object-Oriented Design - OOD): Được lựa chọn vì tính tương thích cao với bản chất của hệ thống thương mại điện tử vốn bao gồm nhiều thực thể độc lập nhưng có mối liên kết chặt chẽ (như Người dùng - User, Sản phẩm - Product, Đơn hàng - Order, Danh mục - Category, Đánh giá - Review). Phương pháp này hỗ trợ đóng gói dữ liệu, tăng tính tái sử dụng mã nguồn và thuận tiện cho việc bảo trì, mở rộng hệ thống.
  • Mô hình kiến trúc MVC (Model-View-Controller): Đóng vai trò là khung kiến trúc nền tảng. Nhóm tác giả sử dụng MVC nhằm phân tách tường minh 3 thành phần:
    • Model: Quản lý dữ liệu, quy tắc nghiệp vụ và tương tác cơ sở dữ liệu.
    • View: Đảm nhiệm việc hiển thị giao diện và nhận phản hồi từ người dùng.
    • Controller: Tiếp nhận yêu cầu, xử lý luồng điều khiển trung gian giữa Model và View.
  • Nguyên tắc thiết kế giao diện (UI/UX Principles): Áp dụng 4 nguyên tắc cốt lõi: Đơn giản và trực quan (giao diện dễ hiểu, bố cục rõ ràng); Nhất quán (duy trì phong cách đồng bộ); Tương thích hiển thị đa nền tảng (Responsive Web Design cho máy tính và điện thoại di động); Tối ưu hóa UX (giảm thiểu các bước thực hiện thao tác).
  • Công cụ phục vụ nghiên cứu và thiết kế:
    • Figma: Thiết kế hệ thống giao diện mẫu (UI) và xây dựng bản mẫu tương tác (Prototype).
    • Visual Paradigm: Thiết kế kiến trúc tổng thể, mô hình hóa dữ liệu (Database Diagram) và vẽ các sơ đồ UML.
    • Visual Studio Code (VS Code): Môi trường phát triển tích hợp (IDE) chính.
    • Git & GitHub: Quản trị phiên bản và quản lý mã nguồn dự án.

Thiết kế và đặc tả hệ thống

Hệ thống được thiết kế tuân thủ các chỉ số kỹ thuật và yêu cầu phi chức năng nghiêm ngặt, bảo đảm tính sẵn sàng, bảo mật và khả năng mở rộng.

Nhóm yêu cầu phi chức năng Tiêu chuẩn kỹ thuật thiết kế
Hiệu năng (Performance) - Thời gian tải trang dưới 2 giây cho mỗi trang web.
- Khả năng chịu tải và xử lý đồng thời tối thiểu 1.000 người dùng cùng lúc (concurrent users).
Bảo mật (Security) - Mật khẩu người dùng được mã hóa bằng giải thuật MD5.
- Toàn bộ giao dịch và thông tin truyền tải bảo vệ qua giao thức HTTPS.
- Cơ chế quản lý phiên (Session) tự động hết hạn sau một khoảng thời gian không hoạt động.
Khả năng mở rộng (Scalability) - Kiến trúc module hóa cho phép dễ dàng tích hợp tính năng mới và nâng cấp quy mô hệ thống.
Giao diện (UI/UX) - Thiết kế Responsive, tương thích hiển thị tối ưu trên cả thiết bị máy tính (Desktop) và điện thoại di động (Mobile).

Về mô hình hóa cấu trúc và hành vi, tài liệu đồ án cung cấp hệ thống sơ đồ UML chi tiết bao gồm:

  • Sơ đồ cơ sở dữ liệu (Database Diagram): Định nghĩa cấu trúc bảng, các khóa chính, khóa ngoại và quan hệ dữ liệu của toàn bộ hệ thống.
  • Sơ đồ lớp (Class Diagram): Mô tả các lớp đối tượng, thuộc tính, phương thức và mối quan hệ kế thừa/phụ thuộc trong hệ thống.
  • Sơ đồ Use Case (Use Case Diagrams): Phân định ranh giới chức năng cho 3 nhóm tác nhân (Khách vãng lai, Khách hàng, Admin) và 7 nhóm use case quản trị.
  • Sơ đồ hoạt động (Activity Diagrams) & Sơ đồ tuần tự (Sequence Diagrams): Mô tả chi tiết luồng xử lý và thứ tự truyền thông điệp cho các chức năng trọng yếu: Đăng ký, Đăng nhập, Tìm kiếm sản phẩm, Thêm vào giỏ hàng, Đánh giá sản phẩm, Thanh toán đơn hàng, Xem lịch sử đơn hàng, Quản lý sản phẩm, Quản lý danh mục, Quản lý người dùng, Quản lý review, Quản lý khuyến mãi.

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

Bài tập Chương 4: Tổng quan về thiết kế phần mềm

Nội dung trọng tâm của tài liệu thể hiện trọn vẹn chương 4 của đồ án với cấu trúc phân rã chức năng và đặc tả quy trình:

1. Phân hệ tác nhân Quản trị viên (Admin)

Phân hệ quản trị được phân rã thành các khối nghiệp vụ chuyên sâu:

  • Quản lý sản phẩm: Thêm mới sản phẩm (nhập tên, giống, tuổi, giá, mô tả, hình ảnh); chỉnh sửa thông tin, giá cả, trạng thái tồn kho (còn hàng/hết hàng); xóa sản phẩm; quản lý và sắp xếp thư viện hình ảnh; theo dõi lịch sử chỉnh sửa (lưu vết người tạo và người cập nhật cuối cùng).
  • Phân loại sản phẩm (Danh mục): Tạo mới danh mục theo chủng loại vật nuôi (chó, mèo, thỏ, hamster); chỉnh sửa tên và mô tả; xóa danh mục; sắp xếp thứ tự hiển thị danh mục trên giao diện.
  • Quản lý thương hiệu: Thêm thương hiệu mới (tên, logo, mô tả); cập nhật thông tin thương hiệu; xóa thương hiệu; liên kết và gán sản phẩm vào thương hiệu tương ứng.
  • Quản lý nhân viên: Tạo tài khoản nhân viên mới; thiết lập cơ chế phân quyền (quyền quản lý sản phẩm, quyền quản lý đơn hàng); chỉnh sửa thông tin cá nhân và vai trò; khóa hoặc vô hiệu hóa tài khoản khi cần thiết.
  • Xử lý đơn hàng: Theo dõi danh sách đơn hàng mới và đang xử lý; cập nhật trạng thái đơn (đang xử lý, đã giao, đã hủy); xem thông tin chi tiết về sản phẩm, khách hàng, địa chỉ giao nhận; tiếp nhận và xử lý yêu cầu hủy đơn, hoàn tiền.
  • Quản lý đánh giá (Review): Giám sát toàn bộ đánh giá từ người dùng; thực hiện kiểm duyệt (chấp nhận hoặc từ chối hiển thị); gửi phản hồi giải đáp cho khách hàng; xóa các đánh giá không phù hợp.
  • Quản lý khuyến mãi: Tạo lập, chỉnh sửa, kích hoạt, vô hiệu hóa hoặc xóa các chương trình khuyến mãi bán hàng.
  • Quản lý người dùng: Tra cứu tài khoản theo tên, email, số điện thoại; xem chi tiết lịch sử mua hàng; thực hiện thao tác khóa hoặc mở khóa tài khoản.

2. Phân hệ tác nhân Khách vãng lai (Guest) và Khách hàng (Customer)

  • Khách vãng lai (Guest): Xem danh sách sản phẩm, lọc theo danh mục, sắp xếp theo giá/tên/độ phổ biến; tìm kiếm sản phẩm theo từ khóa (hỗ trợ gợi ý từ khóa khi không tìm thấy kết quả); xem thông tin chi tiết sản phẩm kèm đánh giá và bình luận; thực hiện đăng ký tài khoản mới.
  • Khách hàng (Customer): Đăng nhập hệ thống; quản lý và cập nhật thông tin cá nhân, thay đổi mật khẩu; quản lý giỏ hàng (thêm sản phẩm, tăng/giảm số lượng, xóa sản phẩm, tính tổng giá trị); thực hiện đặt hàng và thanh toán (chọn phương thức thanh toán: thẻ tín dụng, chuyển khoản, COD; chọn phương thức vận chuyển; nhận mã đơn hàng); xem lịch sử đơn hàng; đánh giá sản phẩm đã mua (chấm điểm từ 1 đến 5 sao và đăng kèm hình ảnh); tìm kiếm hệ thống cửa hàng thông qua bản đồ Google Maps tích hợp dựa trên định vị vị trí hiện tại.

3. Bảng tổng hợp đặc tả một số Use Case tiêu biểu

Tên Use Case Tác nhân (Actor) Điều kiện tiên quyết Luồng sự kiện chính Luồng sự kiện thay thế / Ngoại lệ
Đăng ký tài khoản Khách (Guest) Khách chưa có tài khoản trên hệ thống 1. Hệ thống hiển thị form đăng ký.
2. Khách điền tên, email, mật khẩu.
3. Gửi form.
4. Hệ thống kiểm tra tính hợp lệ.
5. Tạo tài khoản mới.
6. Gửi email xác nhận.
4a. Thông tin không hợp lệ:
1. Hệ thống báo lỗi.
2. Khách quay lại bước điền thông tin.
Đặt hàng & Thanh toán Khách hàng (Customer) Đã đăng nhập và có sản phẩm trong giỏ hàng 1. Hiển thị trang xác nhận đơn hàng.
2. Khách hàng xác nhận thông tin giao hàng.
3. Chọn phương thức thanh toán (COD/Chuyển khoản/Thẻ tín dụng).
4. Tạo đơn hàng mới.
5. Chuyển hướng thanh toán.
6. Hoàn tất thanh toán.
7. Cập nhật trạng thái đơn hàng.
8. Gửi email xác nhận.
6a. Thanh toán không thành công:
1. Hệ thống hiển thị thông báo lỗi thanh toán.
2. Quay lại bước chọn phương thức thanh toán.
Quản lý sản phẩm Admin Admin đã đăng nhập hệ thống quản trị 1. Hiển thị danh sách sản phẩm.
2. Thêm mới sản phẩm.
3. Chỉnh sửa thông tin sản phẩm.
4. Xóa sản phẩm.
5. Tìm kiếm và lọc sản phẩm.
4a. Xóa sản phẩm đã có trong đơn hàng:
1. Hệ thống hiển thị cảnh báo ràng buộc.
2. Admin xác nhận hoặc hủy thao tác xóa.
Quản lý đánh giá Admin Admin đã đăng nhập hệ thống quản trị 1. Hiển thị danh sách đánh giá.
2. Xem chi tiết đánh giá.
3. Duyệt hoặc từ chối đánh giá.
4. Xóa đánh giá không phù hợp.
5. Trả lời đánh giá.
6. Cập nhật trạng thái hiển thị.
3a. Từ chối đánh giá:
1. Admin chọn từ chối.
2. Nhập lý do từ chối.
3. Cập nhật trạng thái và gửi thông báo cho khách hàng.

4. Cấu trúc thiết kế giao diện (Mục III)

Tài liệu định nghĩa rõ bố cục của 6 trang giao diện nền tảng:

  • Trang chủ: Trình bày danh mục thú cưng, các sản phẩm nổi bật và tin khuyến mãi.
  • Trang danh sách sản phẩm: Hiển thị danh mục phân cấp, hỗ trợ thanh công cụ lọc đa tiêu chí (giá, danh mục, thương hiệu).
  • Trang chi tiết sản phẩm: Hiển thị bộ sưu tập hình ảnh, giá bán, mô tả, thông số giống/tuổi và phần đánh giá bình luận.
  • Trang giỏ hàng: Hiển thị danh sách mặt hàng, số lượng, điều chỉnh số lượng và tổng tiền.
  • Trang thanh toán: Biểu mẫu tiếp nhận thông tin giao hàng, lựa chọn đơn vị vận chuyển và phương thức thanh toán.
  • Trang quản trị (Admin Dashboard): Thanh điều hướng quản lý tập trung các module đơn hàng, sản phẩm, khuyến mãi, đánh giá và tài khoản người dùng.

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

Đồ án đã xây dựng được một bản thiết kế phần mềm toàn diện cho hệ thống website bán thức ăn và phụ kiện thú cưng:

  • Kết quả thiết kế kỹ thuật: Hoàn thiện hồ sơ thiết kế gồm 46 sơ đồ và giao diện minh họa (từ Hình 1 đến Hình 46), bao gồm Sơ đồ kiến trúc MVC, Sơ đồ cơ sở dữ liệu (Database Diagram), Sơ đồ lớp (Class Diagram), 8 sơ đồ Use Case phân rã, 12 sơ đồ hoạt động (Activity Diagram) và 10 sơ đồ tuần tự (Sequence Diagram).
  • Hệ thống hóa nghiệp vụ chi tiết: Thiết lập bảng đặc tả use case cụ thể cho cả 3 nhóm đối tượng (Khách, Khách hàng, Quản trị viên), bao gồm đầy đủ luồng sự kiện chính, các luồng sự kiện thay thế và xử lý ngoại lệ (như lỗi tồn kho, lỗi thông tin thanh toán, ràng buộc toàn vẹn khi xóa dữ liệu sản phẩm trong đơn hàng).
  • Tích hợp giải pháp tiện ích: Đưa ra phương án tích hợp chức năng định vị vị trí cửa hàng gần nhất thông qua Google Maps API và thiết lập mô hình kiểm duyệt đánh giá (Review) 2 chiều kèm hình ảnh minh chứng.
  • Đóng góp học thuật/chuyên môn: Đóng vai trò là bài tập thiết kế chuẩn mẫu trong học phần Công nghệ phần mềm, thể hiện phương pháp chuyển hóa yêu cầu bài toán thực tế thành tài liệu kỹ thuật phần mềm có cấu trúc rõ ràng theo chuẩn OOD và UML.

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

Dựa trên nội dung và phạm vi được trình bày trong tài liệu Bài tập Chương 4:

  • Hạn chế:
    • Tài liệu giới hạn trong phạm vi thiết kế và mô hình hóa hệ thống phần mềm; chưa bao gồm báo cáo hiện thực hóa mã nguồn (Source Code) chi tiết và kết quả triển khai môi trường thực tế (Deployment).
    • Yêu cầu phi chức năng đề cập đến việc mã hóa mật khẩu bằng thuật toán MD5 (vốn là giải thuật băm cơ bản, có thể gặp rủi ro bảo mật trong các hệ thống thương mại điện tử thực tế hiện đại).
    • Chưa có báo cáo kiểm thử tải thực tế (Stress Test / Benchmark) để đo lường ngưỡng xử lý 1.000 người dùng đồng thời và tốc độ tải trang dưới 2 giây.
  • Hướng phát triển tiếp theo:
    • Tiến hành lập trình hoàn thiện hệ thống theo đúng kiến trúc MVC và các sơ đồ lớp, sơ đồ tuần tự đã thiết kế.
    • Tích hợp thực tế các cổng thanh toán điện tử trực tuyến và kết nối API Google Maps chính thức.
    • Xây dựng kế hoạch kiểm thử tự động, kiểm thử bảo mật và đo lường hiệu năng thực tế của hệ thống trên môi trường máy chủ.

Giá trị tham khảo

Tài liệu đồ án này mang lại giá trị tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan cho môn học Công nghệ phần mềm trong việc lập báo cáo thiết kế hệ thống, cách vẽ và diễn giải hệ thống sơ đồ UML (Use Case, Class, Sequence, Activity Diagram).
  • Nhóm phát triển các dự án thương mại điện tử tương tự: Cung cấp khung phân tích nghiệp vụ bán hàng hoàn chỉnh (quản lý thú cưng, phân loại danh mục, khuyến mãi, phân quyền nhân viên, quy trình giỏ hàng và đặt hàng đa phương thức thanh toán).
  • Người học phân tích nghiệp vụ phần mềm (BA/System Analyst): Tham khảo cấu trúc viết tài liệu đặc tả ca sử dụng (Use Case Specification) với các điều kiện tiên quyết, luồng sự kiện chính và luồng xử lý ngoại lệ chi tiết.

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

1. Hệ thống đặt ra những yêu cầu phi chức năng cụ thể nào về hiệu năng và bảo mật?
Về hiệu năng, website yêu cầu thời gian tải trang phải dưới 2 giây cho mỗi trang và hệ thống phải xử lý được tối thiểu 1.000 người dùng cùng lúc. Về bảo mật, mật khẩu người dùng phải được mã hóa bằng MD5, toàn bộ giao dịch bảo vệ qua giao thức HTTPS và phiên làm việc tự động hết hạn sau khoảng thời gian người dùng không hoạt động.

2. Mô hình kiến trúc phần mềm nào được nhóm tác giả lựa chọn và lý do là gì?
Nhóm tác giả lựa chọn mô hình kiến trúc MVC (Model-View-Controller). Lý do lựa chọn là nhằm tách biệt rõ ràng giữa logic xử lý nghiệp vụ, dữ liệu và giao diện người dùng, giúp mã nguồn dễ quản lý, dễ dàng bảo trì, mở rộng và tương thích tốt với các framework web phổ biến.

3. Khách hàng có thể thực hiện thanh toán đơn hàng qua các phương thức nào?
Theo thiết kế hệ thống tại giao diện thanh toán và đặc tả use case, khách hàng có thể lựa chọn 3 hình thức thanh toán: Thẻ tín dụng, Chuyển khoản ngân hàng, hoặc Thanh toán khi nhận hàng (COD).

4. Phân hệ Admin hỗ trợ những tính năng quản lý nào đối với sản phẩm và danh mục?
Đối với sản phẩm, Admin có thể thêm mới (nhập tên, giống, tuổi, giá, mô tả, ảnh), sửa thông tin/giá/trạng thái tồn kho, xóa sản phẩm, thêm thông tin khuyến mãi (sale), quản lý hình ảnh và xem lịch sử người tạo/cập nhật cuối. Đối với danh mục, Admin có thể tạo mới (ví dụ danh mục chó, mèo, thỏ, hamster), sửa tên/mô tả, xóa danh mục và sắp xếp thứ tự hiển thị.

5. Những công cụ phần mềm nào đã được sử dụng trong quá trình phân tích và thiết kế đồ án?
Nhóm tác giả đã sử dụng Figma để thiết kế giao diện và prototype; Visual Paradigm để vẽ sơ đồ kiến trúc và các sơ đồ UML; Visual Studio Code làm môi trường phát triển mã nguồn (IDE); cùng với Git và GitHub để quản lý phiên bản và mã nguồn.

Kết luận

Đồ án "Xây dựng website bán thức ăn và phụ kiện cho thú cưng" của Nhóm 9 (học phần Công Nghệ Phần Mềm) đã hoàn thành xuất sắc nhiệm vụ mô hình hóa và thiết kế chi tiết một hệ thống thương mại điện tử chuyên biệt. Bằng việc ứng dụng phương pháp thiết kế hướng đối tượng (OOD) kết hợp kiến trúc MVC, đề tài đã thiết lập một hệ thống tài liệu kỹ thuật hoàn chỉnh từ sơ đồ dữ liệu, sơ đồ lớp đến hệ thống đặc tả use case cho đầy đủ các tác nhân. Đây là tài liệu học thuật có giá trị tham khảo cao về phương pháp luận phân tích thiết kế phần mềm ứng dụng trong thực tiễn.