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

Tài liệu "Đồ án 2: Giju App - Ứng dụng bán đồ điện tử chuyên nghiệp" (trong văn bản còn được định danh với mã dự án AnJap) là hồ sơ đặc tả yêu cầu nghiệp vụ (Business Requirements Document - BRD) phiên bản 0.1, được xây dựng bởi nhóm tác giả Nguyễn Hoàng Nam và Bùi Khắc Lam thuộc đơn vị SE-UIT. Bối cảnh thực tiễn của đề tài xuất phát từ nhu cầu thiết lập một hệ thống thương mại điện tử đa nền tảng, hỗ trợ quy trình phân phối sản phẩm trực tuyến từ khâu giới thiệu mặt hàng, đặt hàng, xử lý giao dịch đến quản lý vận hành chuỗi cửa hàng và đại lý nhượng quyền.

Mục tiêu và nhiệm vụ nghiên cứu - phát triển của đề tài được xác định cụ thể trong văn bản bao gồm:

  1. Cung cấp một cái nhìn tổng quan toàn diện về kiến trúc và yêu cầu chức năng của hệ thống dưới nhiều góc nhìn khác nhau.
  2. Nắm bắt, chuẩn hóa và truyền đạt các quyết định kiến trúc, quy tắc nghiệp vụ quan trọng đến toàn bộ các bên liên quan tham gia dự án.
  3. Phân định rõ ràng vai trò, trách nhiệm và phạm vi tương tác của từng nhóm đối tượng sử dụng trong hệ sinh thái ứng dụng.
  4. Thiết lập hệ thống tài liệu kỹ thuật làm căn cứ để đội ngũ phát triển phần mềm xây dựng mã nguồn, viết kiểm thử đơn vị (unit test), đội ngũ phân tích nghiệp vụ (BA) kiểm soát yêu cầu, đội ngũ kiểm thử (QC/Tester) thực hiện kiểm thử chức năng, và Scrum Master quản trị luồng phát triển theo mô hình Agile/Scrum.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ bán hàng, quản lý đơn hàng, quản lý kho bãi, thống kê doanh thu và phân quyền quản trị trong hệ thống bán lẻ trực tuyến.
  • Phạm vi không gian: Môi trường ứng dụng web và ứng dụng di động phục vụ người dùng cuối, nhân viên cửa hàng, chủ cửa hàng và cấp quản lý doanh nghiệp chuỗi nhượng quyền.
  • Phạm vi thời gian: Phiên bản đặc tả 0.1 hoàn thiện ngày 09 tháng 10 năm 2021 và ghi nhận phê duyệt vào ngày 31 tháng 11 năm 2022.

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

Đồ án được triển khai dựa trên các phương pháp phân tích thiết kế hệ thống thông tin và quy trình kỹ nghệ phần mềm chuẩn mực:

  • Khung quy trình phát triển: Mô hình phát triển phần mềm Scrum (Scrum development model), phân chia vai trò cụ thể giữa Product Owner (cầu nối giữa BA và khách hàng), Scrum Master (quản trị luồng phát triển mã nguồn), Business Analyst (phân tích yêu cầu và hiệu chỉnh tài liệu), Software Developer (thiết kế, lập trình, viết unit test) và Quality Control/Tester (kiểm thử chức năng và báo cáo lỗi).
  • Phương pháp mô hình hóa nghiệp vụ: Sử dụng phương pháp phân tích hướng đối tượng (Object-Oriented Analysis), biểu đồ ca sử dụng (Use Case Diagram), biểu đồ máy trạng thái (State Machine Diagram) và mô hình hóa đối tượng miền (Domain Objects Description).
  • Kỹ thuật đặc tả yêu cầu chức năng: Mỗi ca sử dụng (Use Case) được cấu trúc chặt chẽ theo các trường thông tin: Định danh (Use Case Name), Mô tả (Description), Tác nhân (Actor), Sự kiện kích hoạt (Trigger), Điều kiện tiên quyết (Pre-conditions), Hậu điều kiện (Post-conditions), Luồng sự kiện cơ bản (Activities Flow/Basic Flow), và hệ thống Quy tắc nghiệp vụ (Business Rules - BR Code) gồm quy tắc tải giao diện (Loading Screen Rules) và quy tắc gửi dữ liệu (Submission Rules).
  • Nguồn dữ liệu: Dữ liệu khảo sát nghiệp vụ bán lẻ và vận hành chuỗi cửa hàng được chuyển hóa thành 20 thực thể đối tượng miền và 24 ca sử dụng cốt lõi.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc phân tầng phục vụ đa nền tảng với các công nghệ và công cụ quản lý cụ thể được xác lập trong đồ án:

Kiến trúc công nghệ (Tech Stack)

Thành phần hệ thống Công nghệ / Công cụ sử dụng Vai trò trong hệ thống
Backend Framework Node.js Xây dựng hệ thống xử lý dịch vụ phía máy chủ và API
Frontend Platform Flutter Phát triển giao diện đa nền tảng cho Web và Mobile
Cơ sở dữ liệu (Database) MongoDB Cơ sở dữ liệu NoSQL lưu trữ thông tin người dùng, đơn hàng, sản phẩm
Quản lý mã nguồn GitLab (Gitlab) Quản lý phiên bản mã nguồn, điều phối quy trình tích hợp
Mô hình phát triển Scrum Tổ chức luồng công việc, phân vai và kiểm soát tiến độ

Phân hệ người dùng và luồng xử lý kiến trúc

  1. Phân hệ Khách hàng (Client Web/Mobile): Khách hàng truy cập vào trang chủ hệ thống thông qua máy tính hoặc điện thoại di động. Giao diện cung cấp thanh điều hướng (navbar menu) để duyệt danh mục sản phẩm, xem tin tức và chương trình khuyến mãi. Khách hàng thực hiện thêm sản phẩm vào giỏ hàng, đăng ký/đăng nhập tài khoản, nhập thông tin giao nhận, áp dụng phiếu giảm giá, chọn phương thức thanh toán, hoàn tất đơn hàng và tra cứu hành trình đơn hàng thông qua mã vận đơn. Hệ thống hỗ trợ tính năng phục hồi mật khẩu qua SMS hoặc Email.
  2. Phân hệ Nhân viên cửa hàng (Staff Portal): Cung cấp giao diện quản trị riêng biệt, yêu cầu xác thực bằng tài khoản được cấp sẵn. Nhân viên được cấp quyền tra cứu toàn bộ danh sách người dùng, hóa đơn, đơn hàng, sản phẩm, tin tức, khuyến mãi; tuy nhiên phạm vi quyền chỉnh sửa chỉ giới hạn ở mục hóa đơn (cập nhật trạng thái đơn hàng, hình thức thanh toán, hình thức giao hàng) và tạo yêu cầu nhập hàng.
  3. Phân hệ Quản trị viên (Admin/Manager Portal): Cung cấp giao diện điều hành toàn diện. Quản trị viên và chủ cửa hàng có toàn quyền thêm, xóa, sửa dữ liệu sản phẩm, danh mục cửa hàng nhượng quyền, kho hàng, tài khoản người dùng, xem báo cáo thống kê doanh thu và giám sát an toàn vận hành hệ thống.

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

Tài liệu được bố cục thành 3 phần chính theo cấu trúc mục lục chuẩn của một hồ sơ đặc tả yêu cầu phần mềm:

Table of Contents
1. Objective and Scope
2. Business Requirement
   2.1. Domain Objects Description
   2.2. Use Cases and Actors
   2.3. Description of Actors
   2.4. Description of Use Cases
   2.5. State machine Diagram
   2.6. Change Requirement
3. Appendix
   3.1. Open Issues

1. Objective and Scope (Mục tiêu và Phạm vi)

Chương này trình bày phạm vi ứng dụng và định vị vai trò của tài liệu trong vòng đời phát triển dự án. Hệ thống được định hình là trang web và ứng dụng thương mại điện tử kết nối người mua và hệ thống bán lẻ. Tài liệu xác định 5 nhóm vai trò sử dụng tài liệu trong nội bộ dự án và phân định 5 nhóm tác nhân tương tác trực tiếp với phần mềm.

2. Business Requirement (Yêu cầu nghiệp vụ)

Đây là chương nội dung trọng tâm của đồ án, bao gồm các bảng mô tả chi tiết về thực thể đối tượng miền, tác nhân hệ thống và danh mục ca sử dụng.

Mô tả đối tượng miền (Domain Objects Description)

Tài liệu thiết lập danh mục 20 đối tượng miền làm nền tảng cho việc thiết kế mô hình dữ liệu:

STT Tên đối tượng (Object Name) Mô tả chi tiết chức năng / nghiệp vụ
1 Khách hàng Sử dụng dịch vụ: xem thông tin, đặt hàng, đăng ký tài khoản
2 Chủ cửa hàng Quản lý, điều phối hoạt động website cửa hàng, lập báo cáo
3 Quản lý hệ thống Điều hành hệ thống, đảm bảo chất lượng và an toàn thông tin
4 Đặt hàng Thêm sản phẩm vào giỏ hàng và tiến hành đặt mua
5 Xem thông tin sản phẩm Hiển thị toàn bộ thông tin sản phẩm của doanh nghiệp
6 Xem thông tin cửa hàng Hiển thị thông tin địa chỉ, thời gian hoạt động của các cửa hàng
7 Tin tức Hiển thị tin tức mới, sự kiện trên màn hình chính
8 Module thanh toán đơn hàng Xử lý các phương thức thanh toán sau khi xác nhận đơn
9 Quản lý doanh nghiệp Quản lý chuỗi cửa hàng nhượng quyền, doanh thu tổng thể
10 Báo cáo Báo cáo từ chủ cửa hàng nhượng quyền gửi cấp quản lý
11 Nhân viên Quản lý danh sách hóa đơn và tình trạng kho hàng
12 Quản lý doanh thu Hiển thị doanh thu chi tiết của từng chi nhánh cửa hàng
13 Quản lý thêm, xóa, sửa Thao tác dữ liệu sản phẩm, khuyến mãi, tin tức, tài khoản
14 Quản lý tài khoản quản lý web Thêm, xóa, sửa tài khoản dành cho ban quản lý
15 Quản lý thông tin cá nhân quản lý Hiển thị thông tin cá nhân của quản lý web cho chủ cửa hàng
16 Quản lý thông tin cá nhân khách Hiển thị thông tin cá nhân của khách hàng cho quản lý web
17 Quản lý tài khoản khách hàng Cung cấp chức năng khóa, xóa tài khoản khách hàng vi phạm
18 Đăng nhập Xác thực khách hàng, nhân viên, quản trị viên vào hệ thống
19 Đăng ký Thiết lập tài khoản định danh mới cho người dùng
20 Khách (Guest) Người dùng vãng lai, chỉ được xem tin tức và sản phẩm

Phân loại tác nhân hệ thống (Description of Actors)

Đồ án phân định 5 nhóm tác nhân với quyền hạn tương ứng:

  • Khách hàng (Chưa đăng ký / Khách vãng lai): Truy cập website để tham khảo thông tin sản phẩm, đọc tin tức, xem danh sách cửa hàng nhưng không thể đặt hàng nếu chưa tạo tài khoản.
  • Khách hàng (Đã đăng ký): Được lưu trữ sản phẩm vào giỏ hàng, quản lý danh sách yêu thích, thực hiện mua hàng, đặt hàng trước và hủy đơn hàng.
  • Nhân viên: Đăng nhập phân hệ quản trị để xem thông tin sản phẩm, tin tức; chỉnh sửa thông tin hóa đơn (trạng thái, thanh toán, vận chuyển) và gửi yêu cầu nhập hàng.
  • Chủ cửa hàng (Quản lý cửa hàng): Toàn quyền kiểm soát trang web chi nhánh, chỉnh sửa sản phẩm, nhân viên, khách hàng và lập báo cáo doanh thu.
  • Quản lý chuỗi / Quản lý hệ thống: Giám sát toàn bộ doanh thu, lưu lượng khách hàng, tồn kho chuỗi nhượng quyền, phân chia hàng hóa và bảo đảm an toàn hệ thống.

Danh mục và đặc tả chi tiết ca sử dụng (Use Cases & Business Rules)

Hệ thống bao gồm 24 ca sử dụng tổng thể:

  • Danh mục ca sử dụng: UC1: Đăng ký, UC2: Đăng nhập, UC3: Xem thông tin cửa hàng, UC4: Xem thông tin sản phẩm, UC5: Đặt trước hàng, UC6: Mua hàng online, UC7: Xem tin tức, UC8: Lưu giỏ hàng, UC9: Hủy đơn hàng, UC10: Xóa giỏ hàng, UC11: Thanh toán đơn hàng, UC12: Quản lý thông tin sản phẩm, UC13: Quản lý thông tin nhân viên, UC14: Quản lý doanh thu cửa hàng, UC15: Viết báo cáo doanh thu, UC16: Yêu cầu nhập thêm hàng, UC17: Quản lý tài khoản khách hàng, UC18: Quản lý thông tin khách hàng, UC19: Quản lý đơn hàng, UC20: Xem thông tin chi tiết đơn hàng, UC21: Thống kê doanh thu các cửa hàng, UC22: Quản lý kho hàng, UC23: Quản lý đơn yêu cầu nhập hàng, UC24: Quản lý thông tin các cửa hàng.

Văn bản đặc tả chi tiết quy tắc nghiệp vụ cho các ca sử dụng từ UC1 đến UC11:

  • UC1 - Đăng ký tài khoản:
    • Quy tắc định dạng Email: Bắt buộc chứa ký tự @. Phần trước và sau @ đều phải thuộc tập 24 chữ cái tiếng Anh (hoa/thường) và chữ số 0-9, viết liền không khoảng cách, độ dài tối đa mỗi phần là 20 ký tự.
    • Quy tắc Password: Chuỗi gồm chính xác 6 ký tự chữ số (0-9).
    • Quy tắc Phone: Chuỗi gồm chính xác 10 ký tự chữ số (0-9).
    • Xác thực OTP: Hệ thống tự động gửi email chứa [Passcode] gồm 6 chữ số đến địa chỉ email người dùng đăng ký.
    • Điều khoản: Bắt buộc kích hoạt checkbox "Đồng ý Điều khoản sử dụng" trước khi hoàn tất lưu dữ liệu.
  • UC2 - Đăng nhập tài khoản: Xác thực định dạng Email và Password (chuỗi 6 số) khớp với dữ liệu lưu trong bảng [User] của cơ sở dữ liệu.
  • UC3 - Xem thông tin các cửa hàng: Dành cho quản trị viên/quản lý truy xuất thông tin chi tiết về doanh thu, hàng tồn kho và danh sách chi nhánh.
  • UC4 - Xem thông tin sản phẩm: Áp dụng cơ chế tải danh sách phân trang liên tục: hiển thị danh sách ban đầu, khi người dùng cuộn đến cuối trang, hệ thống tiếp tục tải thêm 20 sản phẩm tiếp theo cho đến khi hết dữ liệu.
  • UC5 & UC6 - Đặt hàng trước và Mua hàng online: Cho phép chọn mẫu mã, thêm vào giỏ hàng hoặc danh sách đặt trước đối với mặt hàng sắp phát hành; hệ thống tự động gửi email xác nhận sau khi đơn hàng được ghi nhận thành công.
  • UC7 - Xem tin tức: Phân luồng hiển thị chi tiết bài viết sự kiện hoặc thông tin sản phẩm tương ứng với chương trình giảm giá.
  • UC8 - Lưu giỏ hàng / Danh sách yêu thích: Cho phép người dùng lưu trữ sản phẩm hoặc nhấp vào biểu tượng trái tim để đưa vào mục "Sản phẩm yêu thích".
  • UC9 - Hủy đơn hàng: Áp dụng cho các đơn hàng đang ở trạng thái processing. Người dùng phải chọn lý do hủy (hoặc điền lý do khác) và xác nhận qua hộp thoại; hệ thống chuyển trạng thái đơn hàng sang cancel.
  • UC10 - Xóa giỏ hàng: Hiển thị hộp thoại xác nhận trước khi loại bỏ sản phẩm ra khỏi giỏ hàng cá nhân.
  • UC11 - Thanh toán đơn hàng: Tổng hợp chi phí, hiển thị thông tin thanh toán thành công và cung cấp thời gian giao hàng dự kiến.

3. Appendix (Phụ lục)

Phần phụ lục ghi nhận các mục theo dõi phát sinh và yêu cầu thay đổi (Change Requirement, Open Issues) trong quá trình hoàn thiện tài liệu yêu cầu.


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

Đồ án đã đạt được các kết quả cụ thể trong việc chuẩn hóa tài liệu kỹ thuật:

  • Xây dựng hoàn chỉnh bộ tài liệu đặc tả yêu cầu nghiệp vụ phiên bản 0.1 gồm 20 đối tượng miền, 5 nhóm tác nhân và 24 ca sử dụng bao quát toàn diện quy trình thương mại điện tử và quản trị chuỗi bán lẻ.
  • Chuẩn hóa hệ thống quy tắc nghiệp vụ (Business Rules) có tính khả thi cao, cung cấp các điều kiện biên rõ ràng cho lập trình viên (ràng buộc 20 ký tự cho email, mật khẩu 6 số, số điện thoại 10 số, OTP 6 số, tải dữ liệu phân trang 20 sản phẩm/lần).
  • Phân định rõ ràng ma trận phân quyền giữa người dùng cuối, nhân viên xử lý hóa đơn, chủ cửa hàng và quản trị viên hệ thống, bảo đảm tính an toàn dữ liệu.
  • Đóng góp một mẫu tài liệu BRD có cấu trúc chặt chẽ cho sinh viên ngành Kỹ thuật Phần mềm tham khảo trong các môn học Đồ án chuyên ngành và Khóa luận tốt nghiệp.

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

  • Hạn chế:
    • Tài liệu đang ở phiên bản phác thảo ban đầu (Version 0.1), tồn tại sự chưa đồng nhất về tên định danh dự án giữa trang bìa (GiJu App - ứng dụng bán đồ điện tử) và nội dung tổng quan (AnJap - bán đồ ăn vặt).
    • Chi tiết quy tắc nghiệp vụ (Business Rules Flow) mới chỉ được đặc tả sâu cho các ca sử dụng từ UC1 đến UC11; các ca sử dụng từ UC12 đến UC24 (quản lý kho, nhượng quyền, thống kê báo cáo) mới dừng lại ở mức mô tả định nghĩa tổng quát.
    • Các mục Change Requirement và Open Issues chưa được hoàn thiện chi tiết nội dung xử lý lỗi tồn đọng.
  • Hướng phát triển tiếp:
    • Chuẩn hóa đồng nhất danh mục sản phẩm kinh doanh và tên gọi thương hiệu của dự án trong các phiên bản cập nhật tiếp theo.
    • Hoàn thiện bảng đặc tả chi tiết, luồng hoạt động (Activity Flow) và quy tắc kiểm tra cho các ca sử dụng quản trị nâng cao (UC12 - UC24).
    • Tiến hành thiết kế cơ sở dữ liệu chi tiết trên MongoDB và xây dựng hoàn chỉnh mã nguồn hệ thống trên nền tảng Flutter và Node.js theo đúng mô hình Scrum đã đề ra.

Giá trị tham khảo

Tài liệu mang lại giá trị thực tiễn đối với:

  • Sinh viên ngành Kỹ thuật Phần mềm và Hệ thống Thông tin: Cung cấp mẫu tài liệu đặc tả yêu cầu nghiệp vụ (BRD) thực tế, minh họa cách phân rã yêu cầu, định nghĩa tác nhân, phân tích đối tượng miền và viết quy tắc nghiệp vụ (Business Rules).
  • Chuyên viên Phân tích Nghiệp vụ (BA) và Kiểm thử (Tester): Tham khảo cấu trúc viết tài liệu Use Case theo các bước Loading Rules, Submission Rules và tiền/hậu điều kiện, làm cơ sở trực tiếp để thiết kế các kịch bản kiểm thử (Test Cases).

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

1. Hệ thống quy định các ràng buộc dữ liệu cụ thể nào khi người dùng thực hiện Đăng ký tài khoản (UC1)? Khi đăng ký tài khoản, hệ thống áp dụng các quy tắc kiểm tra: Email bắt buộc có ký tự @, phần trước và sau @ tối đa 20 ký tự chữ cái tiếng Anh hoặc số và không chứa khoảng trắng; Mật khẩu phải gồm chính xác 6 ký tự số (0-9); Số điện thoại gồm chính xác 10 ký tự số; Mã xác thực OTP gửi qua email gồm 6 chữ số; Người dùng bắt buộc phải tích chọn đồng ý điều khoản sử dụng.

2. Công nghệ nào được nhóm tác giả lựa chọn để xây dựng hệ thống phần mềm? Hệ thống sử dụng Node.js cho nền tảng Backend, Flutter để phát triển ứng dụng Web và Mobile, MongoDB làm hệ cơ sở dữ liệu, GitLab để quản lý phiên bản mã nguồn, và áp dụng mô hình Scrum trong quy trình phát triển.

3. Phạm vi quyền hạn giữa Nhân viên cửa hàng và Quản trị viên hệ thống khác nhau như thế nào? Nhân viên cửa hàng có giao diện quản trị riêng nhưng quyền chỉnh sửa bị giới hạn nghiêm ngặt ở mục hóa đơn (cập nhật tình trạng đơn hàng, hình thức thanh toán, giao hàng) và gửi yêu cầu nhập hàng. Quản trị viên hệ thống có toàn quyền thêm, xóa, sửa thông tin người dùng, hóa đơn, sản phẩm, tin tức, khuyến mãi, quản lý kho hàng và giám sát hoạt động chuỗi cửa hàng.

4. Ca sử dụng xem danh sách sản phẩm (UC4) áp dụng cơ chế tải dữ liệu như thế nào? Hệ thống sử dụng quy tắc tải dữ liệu dạng cuộn vô tận (infinite scroll): khi người dùng cuộn màn hình xuống cuối danh sách, hệ thống sẽ tự động tải tiếp 20 sản phẩm tiếp theo và lặp lại tuần tự cho đến khi hiển thị toàn bộ sản phẩm trong cơ sở dữ liệu.

5. Điều kiện và quy trình để khách hàng thực hiện hủy đơn hàng (UC9) là gì? Điều kiện tiên quyết là khách hàng đã đăng nhập và đơn hàng cần hủy phải đang ở trạng thái processing. Người dùng chọn hủy đơn, xác nhận qua hộp thoại cảnh báo, chọn hoặc nhập lý do hủy; sau khi xác nhận, hệ thống sẽ hủy đơn và chuyển trạng thái đơn hàng sang cancel.


Kết luận

Tài liệu "Đồ án 2: Giju App - Ứng dụng bán đồ điện tử chuyên nghiệp" là hồ sơ phân tích yêu cầu nghiệp vụ phần mềm hoàn chỉnh ở cấp độ thiết kế ban đầu do nhóm sinh viên SE-UIT thực hiện. Đề tài đã thiết lập khung kiến trúc phần mềm rõ ràng trên nền tảng Node.js, Flutter và MongoDB, đồng thời chuẩn hóa 24 ca sử dụng và hệ thống quy tắc kiểm tra dữ liệu chặt chẽ cho toàn bộ quy trình mua sắm và quản trị chuỗi bán lẻ. Đây là tài liệu kỹ thuật có giá trị tham khảo cao về phương pháp lập hồ sơ BRD và phân tích hệ thống trong chuyên ngành Kỹ thuật Phần mềm.