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

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ và nhu cầu di chuyển đô thị ngày càng gia tăng, các nền tảng ứng dụng gọi xe và quản lý đặt xe trực tuyến đã trở thành một phần thiết yếu trong đời sống thường nhật. Đề tài "Phân tích thiết kế hệ thống quản lý đặt xe" được thực hiện bởi nhóm sinh viên Khoa Công nghệ Thông tin thuộc Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (HUFLIT), dưới sự hướng dẫn của giảng viên Bùi Thị Thanh Tú, trong khuôn khổ môn học Phân tích thiết kế phần mềm.

Mục tiêu chính của đề tài bao gồm:

  1. Khảo sát hiện trạng thị trường và phân tích so sánh các ứng dụng đối thủ cạnh tranh trong lĩnh vực đặt xe công nghệ nhằm xác định tập yêu cầu chức năng tối ưu.
  2. Xác lập các yêu cầu hệ thống (System requirements), yêu cầu người dùng (Users requirements), phạm vi triển khai (Scope) và các giả định kỹ thuật (Assumptions).
  3. Xây dựng mô hình phân tích - thiết kế hướng đối tượng hoàn chỉnh dựa trên ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language), bao gồm ma trận use case, đặc tả ca sử dụng, sơ đồ tuần tự (Sequence diagram), sơ đồ hoạt động (Activity diagram), sơ đồ trạng thái (State machine diagram), sơ đồ lớp (Class diagram) và sơ đồ quan hệ thực thể (ERD).
  4. Thiết kế giao diện mẫu (Mockup) mô phỏng trải nghiệm người dùng và thiết lập hệ thống quản lý mã nguồn (Source control system).

Đối tượng nghiên cứu là quy trình nghiệp vụ và tương tác đa chiều trong hệ thống đặt xe trực tuyến giữa ba tác nhân: Khách hàng (Customer/User), Tài xế (Driver) và Hệ thống quản trị (System/Admin). Phạm vi nghiên cứu bao quát 10 phân hệ nghiệp vụ chính từ quản lý tài khoản, điều phối chuyến đi, tính toán giá cước, tích hợp cổng thanh toán đa kênh đến đánh giá chất lượng dịch vụ và quản lý doanh thu.


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

Đề tài áp dụng phương pháp phân tích và thiết kế hệ thống hướng đối tượng (Object-Oriented Analysis and Design - OOAD) kết hợp bộ ký hiệu chuẩn UML để mô hình hóa toàn diện các khía cạnh tĩnh và động của hệ thống phần mềm.

Phương pháp nghiên cứu và kỹ thuật triển khai bao gồm:

  • Phương pháp khảo sát đối thủ: Đánh giá định tính và định lượng các tính năng của các đối thủ cạnh tranh trên thị trường theo thang điểm từ 1 sao (*) đến 5 sao (*****), phân tích ưu - nhược điểm về giao diện và chức năng để định hình các yêu cầu cốt lõi.
  • Phương pháp thu thập và mô hình hóa yêu cầu: Phân rã cấu trúc hệ thống thành 10 gói nghiệp vụ (packages), lập ma trận ánh xạ giữa Actor và 58 Use Case (từ UC01 đến UC58).
  • Phương pháp đặc tả chi tiết ca sử dụng: Chuẩn hóa từng use case theo cấu trúc định dạng chuẩn quốc tế gồm: Mã và tên use case, Tác nhân (Actor), Sự kiện kích hoạt (Trigger), Điều kiện tiên quyết (Pre-condition), Điều kiện sau (Post-condition), Các tình huống lỗi (Error situations), Trạng thái hệ thống khi có lỗi (System state in error situations), Luồng sự kiện chính (Standard flow) và các Luồng sự kiện thay thế/rẽ nhánh (Alternative flows).
  • Mô hình hóa động và dữ liệu: Xây dựng sơ đồ Sequence và Activity biểu diễn luồng dữ liệu thời gian thực; State Machine biểu diễn vòng đời trạng thái cuốc xe; Class Diagram và ERD biểu diễn kiến trúc cơ sở dữ liệu quan hệ.

Bảng phân công nhiệm vụ thực hiện trong nhóm nghiên cứu:

Thành viên thực hiện Mã số sinh viên Phân công nhiệm vụ cụ thể
Nguyễn Ngọc Hiền Thanh 21DH114103 - Xây dựng Use case diagram tổng quát và chi tiết.
- Đặc tả chi tiết các Use Case: UC01–UC13, UC25–UC35.
- Xây dựng sơ đồ Sequence, Activity, State machine, ERD cho các luồng: Đặt xe, đăng nhập, nhận cuốc, đăng xuất, xóa tài khoản.
Võ Thiện Nhân 21DH111296 - Xây dựng Use case diagram.
- Đặc tả chi tiết các Use Case: UC14–UC24, UC36–UC47.
- Xây dựng sơ đồ Sequence, Activity, State machine, Class diagram cho các luồng: Đăng ký, đăng nhập bằng SĐT/Gmail/Facebook, đánh giá tài xế.
Lê Thị Hải Yến 21DH112244 - Khảo sát đối thủ cạnh tranh, tổng hợp tài liệu, phối hợp thiết kế giao diện mockup và hoàn thiện báo cáo.

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

Tài liệu đồ án dày 90 trang được bố cục mạch lạc thành 4 phần nội dung chính:

I. Giới thiệu chung và Khảo sát đối thủ

Nội dung chương tập trung vào việc mô tả bối cảnh bài toán và khảo sát các ứng dụng đặt xe hiện có trên thị trường. Nhóm tác giả phân tích giao diện và chức năng của từng đối thủ, chỉ rõ ưu điểm và nhược điểm thực tế. Bảng so sánh ma trận tính năng sử dụng thang điểm từ (*) đến (*****) nhằm đánh giá mức độ hoàn thiện của các chức năng (như đặt xe nhanh, thuê xe theo giờ, tích hợp ví điện tử, quản lý thu nhập tài xế), từ đó rút ra các bài học thiết kế và đề xuất danh mục yêu cầu chức năng cho hệ thống mới.

II. Yêu cầu hệ thống

Chương này xác lập các tiêu chuẩn vận hành cho hệ thống, bao gồm:

  • Đặc tả hệ thống (System requirements): Yêu cầu về khả năng xử lý đồng thời, thời gian phản hồi, tính toàn vẹn dữ liệu và độ sẵn sàng khi kết nối mạng không ổn định.
  • Giả định cho hệ thống (Assumptions): Giả định về thiết bị đầu cuối của người dùng (smartphone có kết nối 4G/Internet, hỗ trợ GPS), tích hợp hạ tầng API bên thứ ba (Google Maps, cổng thanh toán ngân hàng, cổng SMS OTP).
  • Phạm vi của hệ thống (Scope): Giới hạn các chức năng quản lý khách hàng, tài xế và hệ thống điều phối trung tâm.
  • Yêu cầu của người sử dụng (Users requirements): Nhu cầu trải nghiệm mượt mà, minh bạch về giá cước, hỗ trợ đa dạng phương thức thanh toán và bảo mật thông tin cá nhân.

III. Phân tích thiết kế hệ thống

Đây là nội dung trọng tâm của đồ án, chiếm phần lớn dung lượng tài liệu với các thành phần kỹ thuật chi tiết:

  1. Ma trận Actor và Use Case: Liệt kê đầy đủ 58 use case thuộc 10 gói nghiệp vụ, xác định rõ actor tương tác và điều kiện tiên quyết (Precedents).
  2. Hệ thống Use Case Diagram: Bao gồm biểu đồ tổng quát theo package và biểu đồ chi tiết cho 10 phân hệ nghiệp vụ.
  3. Tập hồ sơ đặc tả Use Case chi tiết (UC01 đến UC48): Mô tả từng bước thao tác của người dùng, phản hồi của hệ thống, xử lý lỗi xác thực OTP, lỗi thẻ ngân hàng, rớt mạng, hủy cuốc, hoàn tiền.
  4. Mô hình tương tác và hành vi: Hệ thống sơ đồ tuần tự (Sequence Diagram), sơ đồ hoạt động (Activity Diagram), sơ đồ máy trạng thái (State Machine Diagram) cho toàn bộ các ca sử dụng quan trọng.
  5. Mô hình dữ liệu và giao diện: Sơ đồ lớp (Class Diagram), sơ đồ quan hệ thực thể (ERD), hệ thống bản vẽ thiết kế giao diện (Mockup) và ảnh chụp hệ thống kiểm soát phiên bản mã nguồn (Source Control System).

IV. Tài liệu tham khảo

Tổng hợp các tài liệu học thuật, giáo trình phân tích thiết kế hệ thống thông tin, tài liệu hướng dẫn chuẩn UML và các tài liệu kỹ thuật về kiến trúc phần mềm di động.


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

1. Kiến trúc phân hệ và Ma trận Ca sử dụng (Use Case Matrix)

Hệ thống quản lý đặt xe được cấu trúc thành 10 gói nghiệp vụ (packages) với 58 Use Case (UC), phục vụ 3 nhóm tác nhân chính: Khách hàng, Tài xế và Hệ thống (System):

Phân hệ (Package) Danh mục Use Case tiêu biểu Tác nhân chính
Quản lý tài khoản người dùng UC01: Đăng ký, UC02: Đăng nhập (SĐT), UC03: Đăng nhập Facebook, UC04: Đăng nhập Gmail, UC05: Đăng xuất Khách hàng, Tài xế
Quản lý dữ liệu người dùng UC06–UC09: Quản lý/Thêm/Xóa/Sửa thông tin tài xế; UC10–UC13: Quản lý/Thêm/Xóa/Sửa thông tin khách hàng System (Admin)
Thiết lập phương thức thanh toán UC14: Kích hoạt ví Moca, UC15: Thêm phương thức thanh toán, UC16: Thêm thẻ, UC17: Liên kết ngân hàng, UC18: Liên kết ZaloPay Khách hàng
Quản lý tin nhắn và thông báo UC19: Xem tin nhắn, UC20: Xem thông báo, UC21: Xem cuộc trò chuyện, UC22: Gửi thông báo, UC23: Xóa thông báo, UC24: Xóa cuộc trò chuyện Khách hàng, System
Quản lý thông tin tài khoản UC25: Cập nhật thông tin tài xế, UC26: Xác nhận thay đổi thông tin tài xế, UC27: Cập nhật thông tin khách hàng, UC28: Thiết lập tài khoản liên kết (Apple/Google/FB) Khách hàng, Tài xế, System
Quản lý đặt xe và Điều phối UC29: Đặt GrabNow, UC30: Đặt xe thông thường, UC33: Thuê xe theo giờ, UC34: Bật nhận cuốc, UC35: Tắt nhận cuốc, UC36: Nhận cuốc, UC37: Hủy cuốc, UC38: Xác nhận hoàn thành cuốc, UC45: Ghép tài xế và khách hàng, UC46: Đánh giá tài xế, UC48: Xếp hạng ưu tiên nhận cuốc Khách hàng, Tài xế, System
Xử lý thanh toán và Khuyến mãi UC39: Thanh toán chung, UC40: Thanh toán tiền mặt, UC41: Thanh toán qua Moca, UC42: Thanh toán qua thẻ ATM / ZaloPay, UC44: Sử dụng ưu đãi (Voucher) Khách hàng, System
Quản lý lịch sử hoạt động UC48: Xem lịch sử hoạt động, UC49: Xem chi tiết chuyến đi, UC50: Xem lịch sử tài chính, UC51: Đánh giá chuyến đi, UC52: Báo cáo sự cố Khách hàng
Quản lý lịch sử cuốc xe UC53: Xem lịch sử cuốc xe, UC54: Xem đánh giá Tài xế
Quản lý thu nhập tài xế UC55: Liên kết ngân hàng, UC56: Xem thống kê thu nhập, UC57: Rút tiền, UC58: Nạp tiền vào ví Tài xế

2. Đặc tả quy trình và luồng xử lý nghiệp vụ cốt lõi

  • Quy trình Xác thực người dùng (UC01 - UC04):
    • Đăng ký qua SĐT (UC01): Hệ thống sinh và gửi mã OTP qua SMS. Người dùng có tối đa 3 lần nhập mã OTP. Nếu nhập sai quá 3 lần, hệ thống khóa phiên tạm thời và yêu cầu thử lại sau.
    • Đăng nhập đa kênh (UC02 - UC04, UC28): Hỗ trợ OAuth 2.0 liên kết với tài khoản Facebook, Google/Gmail và Apple ID (xác thực qua FaceID/mật khẩu thiết bị).
  • Quy trình Đặt xe và Ghép nối tài xế (UC29, UC30, UC45, UC48):
    • Đặt xe thông thường (UC30): Khách hàng chọn điểm đón/điểm đến, áp dụng voucher ưu đãi (UC44) và phương thức thanh toán. Hệ thống tự động tính cước, tìm kiếm tài xế trong bán kính phù hợp dựa trên thuật toán xếp hạng ưu tiên (UC48 - đánh giá khoảng cách GPS và điểm số tín nhiệm tài xế).
    • Đặt GrabNow (UC29): Khách hàng kết nối trực tiếp với tài xế tại chỗ thông qua việc nhập mã số (Code) do tài xế cung cấp trên ứng dụng.
  • Quy trình Xử lý chuyến đi và Thanh toán (UC34 - UC43):
    • Tài xế bật chế độ nhận cuốc (UC34) -> Hệ thống điều phối thông báo cuốc xe (UC45) -> Tài xế nhận cuốc (UC36) -> Di chuyển và đón khách -> Xác nhận hoàn thành cuốc (UC38).
    • Thanh toán linh hoạt: Tiền mặt (UC40), Ví Moca (UC41 - yêu cầu mã PIN bảo mật), Thẻ ATM/Visa/MasterCard qua CVV (UC42) hoặc Ví điện tử ZaloPay (UC42). Nếu số dư tài khoản/ví không đủ hoặc thẻ bị khóa, hệ thống tự động cảnh báo và chuyển hướng chọn phương thức khác.
  • Quy trình Đánh giá và Quản lý chất lượng (UC46, UC48, UC52):
    • Sau khi hoàn thành cuốc, khách hàng đánh giá chất lượng tài xế theo thang điểm sao (1-5 sao) và để lại phản hồi. Điểm đánh giá được cập nhật trực tiếp vào cơ sở dữ liệu để phục vụ thuật toán phân bổ độ ưu tiên nhận cuốc (UC48). Khách hàng có thể báo cáo sự cố (UC52) để bộ phận hỗ trợ xử lý.

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

Đồ án đã đạt được các kết quả cụ thể sau:

  • Hoàn thiện bộ hồ sơ thiết kế kỹ thuật phần mềm chuẩn mực với quy mô 90 trang, bao quát toàn diện 58 ca sử dụng nghiệp vụ trong lĩnh vực đặt xe trực tuyến.
  • Phân tích và xây dựng thành công ma trận phân quyền 3 lớp (Khách hàng - Tài xế - Quản trị viên hệ thống), giải quyết bài toán đồng bộ hóa trạng thái cuốc xe thời gian thực.
  • Thiết kế chi tiết cơ chế xử lý ngoại lệ (Alternative flows) cho toàn bộ các tình huống lỗi phổ biến như: mất kết nối Internet/4G, nghẽn mạng hệ thống, bảo trì máy chủ, nhập sai OTP/PIN quá số lần quy định, hủy chuyến trước/sau khi nhận, và lỗi giao dịch ngân hàng.
  • Xây dựng hệ thống bản vẽ thiết kế trực quan gồm sơ đồ lớp, sơ đồ tuần tự, sơ đồ hoạt động, sơ đồ thực thể ERD và bản mockup giao diện người dùng, tạo nền tảng vững chắc cho giai đoạn lập trình và kiểm thử phần mềm.

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

  • Hạn chế: Báo cáo tập trung chủ yếu vào giai đoạn phân tích yêu cầu và thiết kế mô hình hóa hệ thống (giai đoạn OOAD trong vòng đời phát triển phần mềm), chưa bao gồm mã nguồn lập trình hoàn chỉnh (source code implementation), cấu hình hạ tầng triển khai thực tế (Cloud/DevOps) hoặc số liệu kiểm thử hiệu năng tải trọng cao (Stress Testing/Load Testing).
  • Hướng nghiên cứu tiếp:
    1. Hiện thực hóa kiến trúc phần mềm trên nền tảng di động (React Native / Flutter / Android / iOS) và xây dựng hệ thống backend phân tán (Microservices).
    2. Tích hợp trực tiếp các cổng API thực tế như Google Maps Matrix API cho định vị tối ưu tuyến đường và cổng thanh toán VNPay/ZaloPay/Momo Sandbox.
    3. Ứng dụng trí tuệ nhân tạo và học máy vào thuật toán điều phối ghép cuốc xe (Matching Algorithm) và định giá linh động (Dynamic Pricing) theo thời gian thực.

Giá trị tham khảo

Báo cáo đồ án mang lại giá trị tham khảo học thuật và ứng dụng thực tiễn cao:

  • Đối với 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: Là tài liệu mẫu trực quan, chuẩn mực về phương pháp phân tích thiết kế hệ thống thông tin theo chuẩn UML, đặc biệt là kỹ thuật viết đặc tả Use Case đầy đủ các luồng sự kiện chính và rẽ nhánh.
  • Đối với các nhóm phát triển phần mềm và startup công nghệ: Cung cấp tài liệu tham khảo chi tiết về luồng nghiệp vụ (Business Workflow) và kiến trúc dữ liệu cho các ứng dụng kinh tế chia sẻ trong lĩnh vực vận tải, giao hàng và dịch vụ theo yêu cầu (On-Demand Services).

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

1. Hệ thống quản lý đặt xe trong đồ án hỗ trợ những phương thức đăng nhập nào?

Hệ thống hỗ trợ 4 phương thức xác thực người dùng linh hoạt: Đăng nhập bằng Số điện thoại xác thực mã OTP (UC02), Đăng nhập bằng tài khoản Facebook (UC03), Đăng nhập bằng tài khoản Google/Gmail (UC04) và Đăng nhập/liên kết tài khoản Apple ID (UC28).

2. Sự khác biệt giữa chức năng Đặt GrabNow (UC29) và Đặt xe thông thường (UC30) là gì?

  • Đặt GrabNow (UC29): Cho phép khách hàng kết nối trực tiếp với tài xế có mặt tại chỗ bằng cách nhập mã số PIN/Code do tài xế cung cấp trên ứng dụng.
  • Đặt xe thông thường (UC30): Khách hàng nhập điểm đón và điểm đến; hệ thống sẽ tự động tìm kiếm, tính toán khoảng cách và ghép nối với tài xế phù hợp nhất ở khu vực lân cận.

3. Hệ thống hỗ trợ những phương thức thanh toán cước phí nào?

Hệ thống thiết kế giải pháp thanh toán đa kênh bao gồm: Tiền mặt trực tiếp cho tài xế (UC40), Ví điện tử Moca có xác thực mã PIN (UC41), Thẻ ATM/thẻ thanh toán quốc tế qua CVV (UC42), Ví điện tử ZaloPay (UC42) và áp dụng phiếu giảm giá ưu đãi (UC44).

4. Tác nhân Hệ thống (System) thực hiện những vai trò tự động nào trong quy trình điều phối?

Tác nhân Hệ thống chịu trách nhiệm: Tự động phân tích và ghép tài xế với khách hàng (UC45), Gửi thông báo cuốc xe đến thiết bị tài xế (UC45), Tính toán và xếp hạng ưu tiên nhận cuốc cho tài xế dựa trên cự ly GPS và điểm đánh giá (UC48), đồng thời tự động quản lý dữ liệu người dùng (CRUD tài xế/khách hàng từ UC06 đến UC13).

5. Một bản đặc tả ca sử dụng (Use Case Specification) trong đồ án gồm những trường thông tin chuẩn nào?

Mỗi use case được chuẩn hóa gồm: Tên (Name), Mã (Code), 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-condition), Điều kiện sau (Post-condition), Các tình huống lỗi (Error situations), Trạng thái hệ thống khi lỗi (System state in error situations), Luồng xử lý chuẩn (Standard flow) và các Luồng xử lý thay thế (Alternative flows).


Kết luận

Đồ án môn học "Phân tích thiết kế hệ thống quản lý đặt xe" của nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học TP.HCM (HUFLIT) là một công trình nghiên cứu ứng dụng có cấu trúc chặt chẽ và chuyên nghiệp. Bản báo cáo 90 trang đã mô hình hóa chi tiết 58 use case và 10 gói nghiệp vụ, giải quyết thấu đáo bài toán tương tác giữa khách hàng, tài xế và hệ thống điều phối. Đâ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ế phần mềm hướng đối tượng cũng như thiết kế hệ thống ứng dụng di động thực tiễn.