0502-G11 - GrabTravel

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

Bộ Giáo Dục Và Đào Tạo

Trường Đại Học Ngoại Ngữ - Tin Học Thành Phố Hồ Chí Minh
Khoa Công Nghệ Thông Tin

MÔN HỌC : PHÂN TÍCH THIẾT KẾ PHẦN MỀM

ĐỀ TÀI : PHÂN TÍCH THIẾT KẾ HỆ THỐNG ĐẶT XE


QUA ỨNG DỤNG GRAB

Giáo Viên Hướng Dẫn : TS/ThS Bùi Thị Thanh Tú

Thành Viên :
1. Lê Quốc Cường-MSSV:22DH110457
2. Huỳnh Nhật Hoàng-MSSV:22DH111132
3. Cuột Văn Phong – MSSV: 22DH114677
4. Nguyễn Trần Thảo Vy – MSSV: 22DH114365

Tp. Hồ chí minh, Tháng 3 năm 2024


Bảng phân công công việc

Thành viên Nhiệm vụ Mức độ hoàn Mức độ tích


(Tên + MSSV) thành cực
Lê Quốc Cường Vẽ các sơ đồ UC, 100% Chủ động
22DH110457 Đặc tả UC,
Activity Diagram,
Sequence Diagram,
State Diagram,
Class Diagram
Cuột Văn Phong Class Diagram 30% Thụ động, chờ
22DH114677 giao việc
Huỳnh Nhật Hoàng Không có 0% Thụ động, chờ
22DH111132 giao việc
Nguyễn Trần Thảo Vy Giới thiệu, mô tả tự án, 100% Chủ động
tham khảo
22DH114365
Class Diagram 40%

Bảng chữ ký
Tác giả:

Tên: Chữ ký:

Vị trí: Ngày:

Tên: Chữ ký:

Vị trí: Ngày:

Tên: Chữ ký:

Vị trí: Ngày:

Người điều chỉnh:

Tên: Chữ ký:

Vị trí: Ngày:

2|Page
Người duyệt:

Tên: Chữ ký:

Vị trí: Ngày:

Mục lục

Bảng chữ ký .................................................................................................................2


Mục lục .........................................................................................................................3
1. Giới thiệu ...................................................................................................................5
1.1. Mục tiêu ..............................................................................................................5
1.2. Các định nghĩa và từ viết tắt ..................................................................................5
1.3. Tham khảo ...........................................................................................................5
1.3.1. <Uber> .........................................................................................................5
1.3.2. <Be> ............................................................................................................6
1.3.3. <Gojek> ........................................................................................................7
1.3.4. <Xanh SM>.................................................................................................. 10
1.3.5. <Maxim> ..................................................................................................... 10
1.4. So sánh tính năng của các đối thủ ......................................................................... 11
2. Phân tích yêu cầu ..................................................................................................... 12
2.1. Mô tả dự án ....................................................................................................... 12
2.2. Actors và Use Cases............................................................................................ 13
2.2.1. Các Use Case Diagram ................................................................................... 13
2.2.2. Mô tả Actors ................................................................................................. 15
2.2.3. Mô tả Use Cases ........................................................................................... 15
2.3. Bảng phân quyền User vs. Function ...................................................................... 17
3. Yêu cầu chức năng .................................................................................................... 18
3.1. Đặc tả usecase ................................................................................................... 18
3.1.1. UC01: Đăng nhập ......................................................................................... 18
3.2. Activity Diagram ................................................................................................. 46
3.2.1. Activity Diagram: Đăng nhập/ Đăng ký ............................................................ 46

3|Page
3.2.2. Activity Diagram: Quản lí đặt xe ..................................................................... 47
3.2.3. Activity Diagram: Đổi mã khuyến mãi .............................................................. 47
3.2.4. Activity Diagram::Đánh giá tài xế ................................................................... 48
3.2.5. Activity Diagram: Xác nhận hoàn thành đơn ..................................................... 48
3.2.6. Activity Diagram: Hủy đặt xe .......................................................................... 49
3.2.7. Activity Diagram: Thanh toán ......................................................................... 49
3.2.8. Activity Diagram: Phân tài xế ......................................................................... 50
3.2.9. Activity Diagram: Cập nhật thông tin cá nhân ................................................... 50
3.2.10. Activity Diagram: Xem lịch sử đặt xe ............................................................. 51
3.2.11. Activity Diagram: Đặt xe .............................................................................. 52
3.3. Sequence Diagram .............................................................................................. 53
3.3.1. Sequence Diagram: Quản lí đặt xe .................................................................. 53
3.3.2. Sequence Diagram: Quản lí profile .................................................................. 54
3.3.3. Sequence Diagram:Xem lịch sử đặt xe ............................................................. 55
3.3.4. Sequence Diagram: Đăng nhập ....................................................................... 56
3.3.5. Sequence Diagram: Hủy đặt xe....................................................................... 57
3.3.6. Sequence Diagram: Phân tài xế ...................................................................... 58
3.3.7. Sequence Diagram:Thanh toán ....................................................................... 59
3.3.8. Sequence Diagram: Đặt xe ............................................................................. 60
3.3.9. Sequence Diagram: Cập nhật thông tin cá nhân................................................ 61
3.3.10. Sequence Diagram: QnA .............................................................................. 62
3.3.11. Sequence Diagram: Đăng xuất...................................................................... 63
3.3.12. Sequence Diagram: Xác nhận hoàn thành đơn ................................................ 64
3.4. State Diagram .................................................................................................... 65
3.4.1. State Diagram: <User> ................................................................................. 65
3.4.2. State Diagram: <UserIteration> ..................................................................... 66
3.4.3. State Diagram: <Driver> ............................................................................... 67
3.4.4. State Diagram: <Passenger> ......................................................................... 68
4. Thiết kế hệ thống ..................................................................................................... 69
4.1. Thiết kế dữ liệu .................................................................................................... 69
4.1.1. Class Diagram .............................................................................................. 69

4|Page
1. Giới thiệu
1.1. Mục tiêu
Bản phân tích và thiết kế này cung cấp bản mô tả chi tiết về hệ thống “đặt xe qua ứng dụng Grab”,
bản phân tích các chức năng chủ yếu và bản thiết kế các chức năng thiết kế chính yếu của hệ thống
được xây dựng.

1.2. Các định nghĩa và từ viết tắt

# Thuật ngữ/ Mô tả
Từ viết tắt

1 UCD Use Case Diagram

2 BR Business Rule

1.3. Tham khảo


1.3.1. <Uber>
Giao diện:đơn giản dễ sử dụng, chủ đạo hai màu đen, trắng

Yêu cầu chức năng Chức năng Ưu điểm Nhược điểm

5|Page
Đặt xe trực tuyến Người dùng đặt xe trong qua điện Tìm tài xế
thoại và chọn địa điểm cần đến nhanh
Hiển thị giá cước Cung cấp người dùng giá cước dựa Giá cước cao
trên khoảng cách và thời gian dự kiến hơn các ứng
của chuyến dụng khác.
Định vị GPS Giúp người dùng chia sẻ vị trí và giúp Định vị khá tốt Đôi lúc không
tài xế nhận biết khách hàng đang ở địa hiển thị địa
điểm nào chỉ chính xác
Chọn phương tiện Chọn các loại phương tiện khác nhau Nhiều sự lựa
car,bike... chọn
Thanh toán Trả thẻ, tiền mặt Thuận tiện vì
hướng tới
khách hàng
trả bằng thẻ
nhiều.

1.3.2. <Be>
Giao diện:sinh động, bắt mắt chủ yếu hai màu vàng trắng.

Yêu cầu chức năng Chức năng Ưu điểm Nhược điểm


Đặt xe trực tuyến Người dùng đặt xe trong qua điện Tìm tài xế
thoại và chọn địa điểm cần đến nhanh
Hiển thị giá cước Cung cấp người dùng giá cước dựa Giá cước rẻ so
trên khoảng cách và thời gian dự kiến với nhiều app
của chuyến khác, nhiều
voucher,
không tăng
cao trong giờ
cao điểm

6|Page
Định vị GPS Giúp người dùng chia sẻ vị trí và giúp Định vị khá tốt Đôi lúc không
tài xế nhận biết khách hàng đang ở địa hiển thị địa chỉ
điểm nào chính xác
Dịch vụ ngoài lĩnh vực Người dùng đặt thức ăn, giao hàng Phí ship rẻ
Thanh toán Trả thẻ, tiền mặt Thanh toán Hay bị lỗi khi
nhanh hoàn tiền về
thẻ.
Chọn phương tiện Chọn các loại phương tiện khác nhau Hình thức
car,bike... thanh toán đa
dạng

1.3.3. <Gojek>
Giao diện:sinh động, bắt mắt chủ yếu hai màu xanh lá, trắng.

7|Page
8|Page
Yêu cầu chức năng Chức năng Ưu điểm Nhược điểm
Đặt xe trực tuyến Người dùng đặt xe trong qua điện Đặt nhiều Tìm tài xế hơi
thoại và chọn địa điểm cần đến chuyến cùng lâu
lúc
Hiển thị giá cước Cung cấp người dùng giá cước dựa Giá trước cạnh Giờ cao điểm
trên khoảng cách và thời gian dự kiến tranh ở việc giá quá cao
của chuyến đặt xe và món
ăn gây hứng
thú cho người
có ngân sách
hạn chế
Định vị GPS Giúp người dùng chia sẻ vị trí và giúp Định vị khá Đôi lúc không
tài xế nhận biết khách hàng đang ở địa tốt hiển thị địa chỉ
điểm nào chính xác
Dịch vụ ngoài lĩnh vực Người dùng đặt thức ăn, giao hàng Phí giao rẻ
Thanh toán Trả thẻ, tiền mặt Thanh toán
nhanh
Chọn phương tiện Chọn các loại phương tiện khác nhau Nhiều lựa
car,bike... chọn

9|Page
1.3.4. <Xanh SM>
Giao diện:sinh động, bắt mắt chủ yếu hai màu xanh da trời, trắng,dễ sử dụng.

Yêu cầu chức năng Chức năng Ưu điểm Nhược điểm


Đặt xe trực tuyến Người dùng đặt xe trong qua điện 100% xe điện Tìm tài xế lâu
thoại và chọn địa điểm cần đến
Hiển thị giá cước Cung cấp người dùng giá cước dựa Cước phí minh Giá cước cao,
trên khoảng cách và thời gian dự kiến bạch ít ưu đãi.
của chuyến
Định vị GPS Giúp người dùng chia sẻ vị trí và giúp hiển thị địa
tài xế nhận biết khách hàng đang ở địa chỉ chưa chính
điểm nào chính xác
Thanh toán Trả thẻ, tiền mặt Thanh toán
nhanh
Chọn phương tiện Chọn các loại phương tiện khác nhau Nhiều lựa
car,bike... chọn

1.3.5. <Maxim>
Giao diện:đơn giản chủ yếu hai màu vàng trắng, dễ sử dụng.

10 | P a g e
Yêu cầu chức năng Chức năng Ưu điểm Nhược điểm
Đặt xe trực tuyến Người dùng đặt xe trong qua điện Tìm tài xế lâu
thoại và chọn địa điểm cần đến
Hiển thị giá cước Cung cấp người dùng giá cước dựa Giá cước rẻ
trên khoảng cách và thời gian dự kiến
của chuyến
Định vị GPS Giúp người dùng chia sẻ vị trí và giúp Hiển thị địa chỉ
tài xế nhận biết khách hàng đang ở địa không chính
điểm nào xác
Dịch vụ ngoài lĩnh vực Người dùng đặt thức ăn, giao hàng Phí giao rẻ
Thanh toán Trả thẻ, tiền mặt Thanh toán
nhanh
Chọn phương tiện Chọn các loại phương tiện khác nhau Chỉ có hai lựa
car,bike... chọn xe máy,
ô tô

1.4. So sánh tính năng của các đối thủ


Đánh giá chất lượng từng yêu cầu A theo thang điểm từ (*) đến (*****), nếu chức năng đó không có thì để
trống

Yêu cầu chức năng Uber Be GoJeck Xanh SM Maxim


Đặt xe trực tuyến **** ***** **** **** ***
Hiển thị giá cước *** ***** **** *** ****
Định vị GPS **** **** **** ***** ***
Thanh toán ***** ***** **** *** ****

11 | P a g e
Dịch vụ ngoài lĩnh vực **** **** ***

Kết luận: Nếu quan tâm đến dịch vụ đa dạng, be và gojek là những đối thủ hấp dẫn. Cả hai không chỉ cung
cấp dịch vụ đặt xe mà còn cung cấp nhiều dịch vụ đa dạng khác nhau như giao hàng, giao món ăn,đặt vé
máy bay...Giúp người dùng tiết kiệm thời gian và tiện lợi khi có thể dùng một ứng dụng duy nhất để đáp
ứng nhu cầu.Do nhu cầu ở các thành phố phát triển khá lớn nên ưu tiên dịch vụ như be và gojek.

2. Phân tích yêu cầu


2.1. Mô tả dự án
Hệ thống đặt xe qua ứng dụng (Grab) là một nền tảng công nghệ được thế kế để kết nối giữa
người dùng và tài xế cung cấp dịch vụ vận chuyển thông qua ứng dụng di động.
➢ Ứng dụng có đặc điểm nổi bật
✓ Ứng dụng được triển khai trên nền tảng di động sử dụng được trên cả android
và IOS, cho phép người dùng có thể truy cập hệ thống dù ở địa điểm nào.
✓ Nền tảng đa chức năng, người dùng có thể đặt đồ ăn, giao hàng, đi chợ...
✓ Tích hợp và liên kết nhiều doanh nghiệp, tiện lợi cho khách hàng thanh toán và
hỗ trợ ưu đãi doanh nghiệp
✓ Kết nối trực tiếp giữa người dùng và tài xế thông qua ứng dụng, tối ưu hóa thời
quá trình đặt xe và thanh toán
✓ Kết nối trực tiếp giữa người dùng và tài xế thông qua ứng dụng, tối ưu hóa thời
quá trình đặt xe và thanh toán
✓ Người dùng có thể đánh giá và xem xếp hạng tài xế hoặc nhà cung cấp dịch vụ
khác trên nền tảng Grab, tạo ra một môi trường an toàn và đáng tin cậy cho tất
cả mọi người.
➢ User chính và chức năng từng user:
⚫ Passenger (Hành khách)
o Đặt xe với nhiều loại phương tiện có thể lựa chọn ( Grab Bike, Grab Car,…)
o Tích điểm và đổi các ưu đãi, khuyến mãi đặc biệt cho các hành khách sử dụng
dịch vụ của Grab
o Thanh toán các đơn đặt xe bằng nhiều hình thức thanh toán được tích hợp với
Grab
⚫ Tài xế (Driver)
o Nhận đơn đặt xe với 2 hình thức thủ công và tự động nhận đơn
o Thanh toán các đơn đặt xe bằng nhiều hình thức thanh toán được tích hợp với
Grab

12 | P a g e
2.2. Actors và Use Cases
2.2.1. Các Use Case Diagram

UCD tổng quát

13 | P a g e
UCD Quản lí thông tin cá nhân

UCD Quản lí đặt xe

14 | P a g e
UCD Đổi mã khuyến mãi

2.2.2. Mô tả Actors
# Tên Actor Mô tả

1 Người dùng (User) Là người sử dụng ứng dụng di động hoặc trang web để đặt xe.

2 Tài xế (Driver) Là người nhận yêu cầu đặt xe từ người dùng và chở họ đến điểm đến mong
muốn.

3 Hệ thống (System) Là phần mềm hoặc nền tảng ứng dụng di động và web quản lý và xử lý yêu
cầu đặt xe, hiển thị thông tin tài xế và quản lý thanh toán.

4 Admin Là người điều hành hay chủ của hệ thống

2.2.3. Mô tả Use Cases


Mô tả tóm tắt mục đích sử dụng của usecase

# Code Name Brief Description

1 UC01 Đăng nhập Cho phép actor đăng nhập vào hệ thống

2 UC02 Đăng ký Cho phép actor đăng ký một tài khoản cho hệ thống

15 | P a g e
3 UC03 Cho phép actor đặt 1 chuyến đi đến địa điểm mong muốn
Đặt xe
4 UC04 Phân tài xế Hệ thống tìm tài xế cho đơn đơn mới được tạo

5 UC05 Định vị Hệ thống định vị vị trí của người dùng

6 UC06 Gọi điện Cho phép các actor gọi điện trong nội bộ app miễn phí

7 UC07 Hủy đặt xe Cho phép actor hủy đơn đặt xe

8 UC08 Thanh toán Cho phép actor thanh toán đơn đặt xe với nhiều hình thức

9 UC09 Cập nhật thông tin cá nhân Cho phép người dùng thay đổi thông tin cá nhân

10 UC10 Đăng xuất Cho phép actor đăng xuất khỏi hệ thống

11 UC11 Xem lịch sử đặt xe Cho phép actor xem lại các đơn đã đặt

12 UC12 Nhận đơn thủ công Cho phép actor nhận làm tài xế cho chuyến đi

13 UC13 Nhận đơn tự động Cho phép hệ thống chọn những tài xế để tự động nhận đơn

14 UC14 Xác nhận hoàn thành đơn Cho phép actor đặt trạng thái đơn thành đã hoàn thành

15 UC15 Nhắn tin Cho phép một actor nhắn tin với các actor khác

16 UC16 Đổi mã khuyến mãi Cho phép actor đổi mã khuyến mãi

17 UC17 Tính giá cước Hệ thống tính toán và hiển thị giá cước của chuyến đi

18 UC18 Đánh giá chuyến đi Cho phép actor phản hồi trải nghiệm về chuyến đi

19 UC19 Xem danh sách tài khoản Cho phép admin xem các tài khoản đã được đăng kí trên hệ
thống

20 UC20 Thống kê đánh giá tài xế Hệ thống tự động điều chỉnh lại điểm đánh giá của tài xế khi
có lượt đánh giá mới

21 UC21 Xếp mức ưu tiên tài xế Hệ thống tự động sắp xếp mức ưu tiên của tài xế dựa vào
điểm đánh giá

22 UC22 Xem mức ưu tiên tài xế Cho phép actor xem danh sách mức ưu tiên của từng tài xế

23 UC23 Thống kê số đơn Hệ thống tự động tính tổng số đơn mà driver đã hoàn thành

24 UC24 Tính tiền thưởng Hệ thống tự động tính tiền thưởng cho driver

25 UC25 Tính điểm reward Hệ thống tự động tính điểm reward và gửi cho khách hàng

26 UC26 Nâng cấp bậc khách hàng Hệ thống tự động tăng cấp bậc khách hàng khi đủ điểm
reward

27 UC27 Thống kê tin nhắn Hệ thống thống kê số lượng tin nhắn

16 | P a g e
28 UC28 Lọc số câu hỏi nhiều nhất Cho phép admin lọc ra những câu hỏi được các actor khác
nhắn nhiều nhất

29 UC29 Trả lời câu hỏi Cho phép admin thêm các câu trả lời cho mục Các câu hỏi
thường gặp

30 UC30 Xóa đơn Cho phép actor xóa những đơn đã đặt

31 UC31 Khóa tài khoản Cho phép admin xóa tài khoản của những actor khác

Table 3: Use Case List

2.3. Bảng phân quyền User vs. Function

Đưa bảng Ma trận actor và usecase vào đây

2.3.1. Admin
Actor chính Usecase
Admin Khóa tài khoản
Admin Xem danh sách tài khoản
Admin Xem mức đánh giá tài xế

2.3.2. Passenger
Actor chính Usecase
Passenger Đặt xe
Passenger Đánh giá chuyến đi
Passenger Thanh toán
Passenger Hủy đơn
Passenger Đăng nhập
Passenger Nhắn tin
Passenger Cập nhật thông tin cá nhân
Passenger Đổi mã khuyến mãi
Passenger Đăng xuất
Passenger Đăng ký

2.3.3. Driver
Actor chính Usecase
Driver Nhận đơn tự động
Driver Nhận đơn thủ công
Driver Hủy đơn
Driver Xác nhận hoàn thành đơn
Driver Xem lịch sử đơn

17 | P a g e
Driver Đăng ký
Driver Đăng nhập
Driver Cập nhật thông tin cá nhân
Driver Đăng xuất
Driver Nhắn tin

2.3.4. Hệ thống
Actor chính Usecase
Hệ thống Định vị
Hệ thống Tính tiền cước
Hệ thống Phân tài xế
Hệ thống Xếp mức ưu tiên driver
Hệ thống Nâng cấp bậc khách hàng
Hệ thống Thống kê đánh giá driver
Hệ thống Tính điểm reward
Hệ thống Thống kê số đơn
Hệ thống Tính tiền thưởng

3. Yêu cầu chức năng


(Viết description đầy đủ các Use cases nhưng chỉ vẽ đính kèm các Sequence/Activity/State Diagrams cần
thiết để minh họa cho các Use case chính yếu)

3.1. Đặc tả usecase


3.1.1. UC01: Đăng nhập

Name Đăng nhập Code UC01

Description Cho phép actor đăng nhập vào hệ thống

Actor Passenger/ Driver Trigger Actor khi vừa khởi động app. Nhấn
nút đăng nhập

Pre-condition Actor đã đăng kí số điện thoại tương ứng trên hệ thống

Post condition Chuyển tới trang default với role tương ứng

Error situations 1. Hệ thống đang bảo trì

2.Mất kết nối internet

3.Số điện thoại chưa đăng ký với hệ thống

18 | P a g e
System state in 1. Hiển thị thông báo: MS01
error situations
2.Hiển thị thông báo: MS02

3.Hiển thị thông báo: MS03

Activities

Actor System

Main Flow: Đăng nhập thành công bằng số điện thoại

1 Actor tại trang Đăng nhập nhập số 2 Hệ thống gửi mã OTP tới sdt Actor đã nhập
điện thoại và nhấn vào button nhận
OTP

3 Actor nhập mã OTP vào và nhấn nút 4 Hệ thống chuyển tới trang default với role tương
đăng nhập ứng

Actor System

Alternative Flow: Đăng nhập thành công bằng google

1 Actor nhấn vào nút Đăng nhập bằng 2 Hệ thống hiển thị giao diện đăng nhập bằng
google google

3 Actor nhập tài khoản và mật khẩu rồi 4 Hệ thống chuyển sang trang yêu cầu nhập số
nhấn nút Đăng nhập điện thoại

5 Actor nhập số điện thoại và nhấn vào 6 Hệ thống gửi mã OTP tới sdt Actor đã nhập
button nhận OTP

7 Actor nhập mã OTP vào và nhấn nút 8 Hệ thống xác nhận mã OTP là đúng và chuyển tới
đăng nhập trang default với role tương ứng

Actor System

Alternative Flow: Đăng nhập thành công bằng facebook

1 Actor nhấn vào nút Đăng nhập bằng 2 Hệ thống hiển thị giao diện đăng nhập bằng
facebook facebook

3 Actor nhập tài khoản và mật khẩu rồi 4 Hệ thống chuyển sang trang yêu cầu quyền cấp
nhấn nút Đăng nhập thông tin cho ứng dụng

19 | P a g e
5 Actor nhấn vào nút Cho phép 6 Hệ thống chuyển sang trang yêu cầu nhập số
điện thoại

7 Actor nhập số điện thoại và nhấn vào 8 Hệ thống gửi mã OTP tới sdt Actor đã nhập
button nhận OTP

9 Actor nhập mã OTP vào và nhấn nút 10 Hệ thống xác nhận mã OTP là đúng và chuyển tới
đăng nhập trang default với role tương ứng

Actor System

Alternative Flow: Đăng nhập không thành công do mã OTP không hợp lệ

1 Actor nhập mã OTP vào và nhấn nút 2 Hệ thống gửi thông báo MS12
đăng nhập

Actor System

Alternative Flow: Đăng nhập không thành công do số điện thoại chưa được đăng kí trên hệ thống

1 Actor nhập số điện thoại và nhấn vào 2 Hệ thống gửi thông báo MS03
nút nhận mã OTP

3.1.2. UC02:Đăng ký
Name Đăng ký Code UC02

Description Cho phép actor đăng ký một tài khoản mới

Actor Passenger/ Driver Trigger Actor khi vừa khởi động app. Nhấn
nút đăng ký

Pre-condition Actor chưa đăng nhập & chấp nhận điều khoản và điều kiện

Post condition Có thông báo xác nhận: đăng ký thành công

Error situations 1. Hệ thống đang bảo trì

2.Số điện thoại đã được đăng ký với hệ thống

3.SĐT sai cú pháp

4. Mã OTP không hợp lệ

System state in 1. Hiển thị thông báo: MS01


error situations
2.Hiển thị thông báo: MS04

3. Hiển thị thông báo: MS05

20 | P a g e
4. hiển thị thông báo: MS12

Activities

Actor System

Main Flow: Đăng ký thành công

1 Actor tại trang đăng ký, nhập số điện 2 Hệ thống tiến hành gửi mã yêu cầu xác nhận tới
thoại rồi nhấn nút nhận mã OTP số điện thoại của khách hàng.

3 Tại trang xác thực mã OTP, khách hàng 4 Xác nhận đăng ký thành công và chuyển sang
nhập mã OTP hợp lệ trang default với role tương ứng

Actor System

Alternative Flow: Đăng ký không thành công khi nhập số điện thoại đã được đăng ký với hệ thống

1 Actor nhập số điện thoại đã được 2 Hệ thống hiển thị thông báo lỗi MS04
đăng ký

Actor System

Alternative Flow: Đăng ký không thành công khi nhập mã OTP không hợp lệ

1 Actor nhập mã OTP không hợp lệ ( Sai 2 Hệ thống hiển thị thông báo lỗi MS12
mã OTP/ Mã hết thời gian hiệu lực)

3.1.3. UC03: Đặt xe


Name Đặt xe Code UC03

Description Cho phép actor đặt 1 chuyến đi đến địa điểm mong muốn

Actor Passenger Trigger Actor tại trang default, chọn nút Ô


tô hoặc nút Xe máy

Actor đứng tại trang hoạt động,


chọn nút đặt lại

Pre-condition Actor đã đăng nhập với role = Passenger

Post condition Có thông báo xác nhận: Đặt xe thành công – Hiển thị thông tin tài xế

Error situations 1. Hệ thống đang bảo trì

2.Mất kết nối internet

3. Người dùng chọn địa chỉ không tồn tại

21 | P a g e
System state in 1. Hiển thị thông báo: MS01
error situations
2.Hiển thị thông báo: MS02

3.Hiển thị thông báo: MS06

Activities

Actor System

Main Flow: Đặt xe thành công với một chuyến đi hoàn toàn mới

1 Actor tại trang default, chọn nút Ô tô 2 Hệ thống chuyển sang trang nhập điểm đón, đến
hoặc nút Xe máy

3 Actor nhập địa điểm đón, đến 4 Hệ thống hiển thị lên điểm đón để người dùng
xác nhận

5 Actor nhấn vào nút xác nhận điểm 6 Hệ thống thực hiện theo UC17-Tính giá cước
đón

7 Actor nhấn vào nút xác nhận đặt xe 8 Hệ thống thực hiện theo UC04-Phân tài xế + hiển
thị thông báo MS14 + thông tin tài xế

Actor System

Alternative Flow: Đặt xe thành công bằng cách đặt lại chuyến đi cũ

1 Actor đứng tại trang hoạt động, chọn 2 Hệ thống thực hiện theo UC17-Tính giá cước
nút đặt lại

3 Actor nhấn vào nút xác nhận đặt xe 4 Hệ thống thực hiện theo UC04-Phân tài xế + hiển
thị thông báo MS14 + thông tin tài xế

Actor System

Alternative Flow: Đặt xe không thành công

1 Actor nhấn vào nút xác nhận đặt xe 2 Hệ thống thực hiện theo UC04 + hiển thị thông
báo MS08

Actor System

Alternative Flow: Đặt xe không thành công do có biến động trong việc tính giá cước

22 | P a g e
1 Actor nhấn vào nút xác nhận đặt xe 2 Hệ thống hiển thị thông báo MS10

3.1.4. UC04: Phân tài xế


Name Phân tài xế Code UC04

Description Hệ thống tìm tài xế cho đơn đơn mới được tạo

Actor Hệ thống Trigger Sau khi UC03-Đặt xe thành công

Pre-condition UC03 đã thực hiện thành công

Post condition Hiển thị thông tin tài xế

Error situations 1.Không có tài xế nào đang hoạt động

System state in 1. Hiển thị thông báo: MS08


error situations

Activities

Actor System

Main Flow: Đã tìm được tài xế

1 -Hệ thống tiến hành xác định tọa độ Điểm đón,


Điểm đến.

-Dựa trên danh sách những tài xế đang hoạt


động, lọc ra những tài xế thỏa tiêu chí tọa độ
Điểm đón

2 -Nếu danh sách có tài xế thực hiện theo UC13-


Nhận đơn tự động thành công thì trả về thông
báo MS14 cho UC03-Đặt xe

3 -Nếu danh sách không có tài xế thực hiện UC13-


Nhận đơn tự động thì xét trong danh sách
những tài xế thực hiện theo UC12-Nhận đơn thủ
công với trả về kết quả trả về là “ACCEPTED”

-> Hiển thị thông báo MS14 + thông tin tài xế cho
UC03-Đặt xe

Actor System

23 | P a g e
Alternative Flow: Không tìm được tài xế

1 -Nếu danh sách không có tài xế thực hiện UC13-


Nhận đơn tự động thì xét trong danh sách
những tài xế thực hiện theo UC12-Nhận đơn thủ
công với trả về kết quả trả về là “ACCEPTED”

-> Hiển thị thông báo MS14 + thông tin tài xế cho
UC03-Đặt xe

2 -Nếu kết quả cuối cùng trả về là NULL thì hiển thị
thông báo MS08 cho UC03-Đặt xe

3.1.5. UC05: Định vị


Name Định vị Code UC05

Description Hệ thống định vị vị trí của người dùng

Actor Hệ thống Trigger Actor nhấn vào nút cho phép truy
cập vị trí

Pre-condition Actor đã bật tính năng gps của thiết bị

Post condition Hiển thị vị trí của khách hàng/ driver trên map

Error situations 1. Actor chưa bật gps của thiết bị

System state in 1. Hiển thị thông báo: MS11


error situations

Actor System

Main Flow: Định vị thành công

1 Actor nhấn vào nút cho phép truy cập 2 Hệ thống xác định vị trí của khách hàng dựa vào
vị trí GPS

Actor System

Alternative Flow: Định vị không thành công

1 Actor từ chối cho phép truy cập vị trí 2 Hệ thống hiển thị thông báo MS11

24 | P a g e
3.1.6. UC06: Gọi điện
Name Gọi điện Code UC06

Description Cho phép actor gọi điện trong nội bộ app miễn phí

Actor Passenger/ Driver Trigger Sau khi phân tài xế thành công,
Actor nhấn vào biểu tượng hình
điện thoại

Pre-condition Actor đã đặt xe thành công

Post condition Màn hình thông báo cuộc gọi đến/ cuộc gọi đi

Error situations 1.Lỗi kết nối

2.Lỗi hệ thống

System state in 1.Hiển thị thông báo MS13


error situations
2.Hiển thị thông báo: MS15

Actor System

Main Flow: Gọi điện thành công

1 Actor nhấn vào biểu tượng điện thoại 2 Hệ thống tiến hành quay số + phát ra chuông reo
ở phần thông tin của tài xế liền mạch

Actor System

Alternative Flow: Gọi điện không thành công

1 Actor nhấn vào biểu tượng điện thoại 2 Hệ thống tiến hành quay số + phát ra âm thanh
ở phần thông tin của tài xế gián đoạn, sau đó hiển thị thông báo MS13

3.1.7. UC07: Hủy đặt xe

Name Hủy đặt xe Code UC07

Description Cho phép actor hủy đơn đặt xe

Actor Passenger/ Driver Trigger Sau khi UC03-Đặt xe thành công,


actor nhấn vào nút hủy đặt xe

Pre-condition Actor đã đặt xe thành công

25 | P a g e
Post condition Màn hình thông báo đơn đã bị hủy

Error situations 1.Lỗi kết nối

System state in 1.Hiển thị thông báo MS13


error situations

Actor System

Main Flow: Hủy đặt xe thành công

1 Sau khi UC03-Đặt xe thành công, actor 2 Hệ thống hiển thị bảng lựa chọn lí do hủy đặt xe
nhấn vào nút hủy đặt xe

3 Actor nhấn vào nút xác nhận hủy đặt 4 Hệ thống hiển thị đơn đã bị hủy và chuyển sang
xe trang Hoạt động + gửi thông báo tới driver/
passenger

Actor System

Alternative Flow: Hủy đặt xe không thành công

1 Actor nhấn vào nút xác nhận hủy đặt 2 Hệ thống hiển thị thông báo MS13
xe

3.1.8. UC08: Thanh toán


Name Thanh toán Code UC08

Description Cho phép actor thanh toán đơn đặt xe với nhiều hình thức

Actor Passenger Trigger Actor tại trang đơn đặt xe hiện tại,
nhấn vào nút thanh toán

Pre-condition Trạng thái đơn là “đã hoàn thành”

Post condition Hệ thống hiển thị đơn đã thanh toán

Error situations 1. Actor chưa liên kết tài khoản ngân hàng/ ví điện tử

2. Lỗi kết nối

System state in 1. Hiển thị thông báo: MS17


error situations
2.Hiển thị thông báo: MS15

Activities

26 | P a g e
Actor System

Main Flow: Thanh toán thành công bằng ví grab

1 Actor tại trang đơn đặt xe hiện tại, 2 Hệ thống chuyển sang màn hình chọn hình thức
nhấn vào nút thanh toán thanh toán

3 Chọn hình thức thanh toán bằng ví 4 Hệ thống hiển thị trang xác nhận thanh toán với
grab số tiền cần thanh toán

5 Nhấn vào nút xác nhận thanh toán 6 Hiển thị thông báo MS24

Actor System

Main Flow: Thanh toán thành công bằng third-party payment method

1 Chọn hình thức thanh toán bằng 1 ứng 2 Hệ thống hiển thị trang xác nhận thanh toán với
dụng thứ 3 số tiền cần thanh toán

3 Nhấn vào nút xác nhận thanh toán 4 Hiển thị thông báo MS24

3 Chọn hình thức thanh toán bằng ví 4 Hệ thống hiển thị trang xác nhận thanh toán với
grab số tiền cần thanh toán

5 Nhấn vào nút xác nhận thanh toán 6 Hiển thị thông báo MS24

Actor System

Alternative Flow: Thanh toán không thành công

1 Nhấn vào nút xác nhận thanh toán 2 Hệ thống hiển thị thông báo MS25

3.1.9. UC09: Cập nhật thông tin cá nhân


Name Cập nhật thông tin cá nhân Code UC09

Description Cho phép người dùng thay đổi thông tin cá nhân

Actor Passenger/ Driver Trigger Actor tại trang default, chọn giao
diện tài khoản, sau đó bấm nút
hình cây bút cạnh ảnh đại diện

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Có thông báo xác nhận: đã lưu thông tin cá nhân + hiển thị thông tin mới

Error situations 1. Lỗi kết nối

27 | P a g e
2.Mất kết nối internet

3. Người dùng điền thông tin không phù hợp

System state in 1. Hiển thị thông báo: MS15


error situations
2.Hiển thị thông báo: MS02

3.Hiển thị thông báo: MS07

Actor System

Main Flow: Cập nhật thông tin cá nhân thành công

1 Actor tại trang default, chọn giao diện 2 Hệ thống chuyển sang trang thay đổi thông tin cá
tài khoản, sau đó bấm nút hình cây nhân
bút cạnh ảnh đại diện

3 Actor nhập thông tin muốn thay đổi và 4 Hệ thống trở lại trang Tài khoản và hiển thị thông
nhấn nút lưu tin mới được thay đổi

Actor System

Main Flow: Cập nhật thông tin cá nhân thất bại

1 Actor nhập thông tin muốn thay đổi và 4 Hệ thống hiển thị thông báo MS16
nhấn nút lưu

3.1.10. UC10: Đăng xuất


Name Đăng xuất Code UC10

Description Cho phép actor đăng xuất khỏi hệ thống

Actor Passenger/ Driver Trigger Actor tại trang default, chọn giao
diện tài khoản, sau đó bấm nút
đăng xuất

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Trở lại giao diện đăng nhập

Error situations 1. Hệ thống đang bảo trì

2.Mất kết nối internet

System state in 1. Hiển thị thông báo: MS01


error situations
2.Hiển thị thông báo: MS02

28 | P a g e
Activities

Actor System

Main Flow: Đăng xuất thành công

1 Tại trang chỉnh sửa thông tin cá nhân, 2 Hệ thống chuyển sang màn hình đăng nhập
bấm vào nút đăng xuất

Actor System

Alternative Flow: Đăng xuất không thành công

1 Tại trang chỉnh sửa thông tin cá nhân, 2 Hệ thống hiển thị thông báo lỗi MS15
bấm vào nút đăng xuất

3.1.11. UC11: Xem lịch sử đặt xe


Name Xem lịch sử đặt xe Code UC11

Description Cho phép actor xem lại các đơn đã đặt

Actor Passenger Trigger Actor tại trang default, nhấn vào


trang Hoạt động

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Hiển thị đầy đủ thông tin đơn đặt

Error situations 1. Lỗi kết nối

System state in 1.Hiển thị thông báo: MS15


error situations

Activities

Actor System

Main Flow: Xem lịch sử đặt xe thành công

1 Tại trang default, Actor nhấn vào trang 2 Hệ thống chuyển sang trang Hoạt động và hiển
Hoạt động thị Lịch sử đặt xe của Actor

Actor System

29 | P a g e
Alternative Flow: Xem lịch sử đặt xe thất bại

1 Tại trang default, Actor nhấn vào trang 2 Hệ thống hiển thị thông tin báo MS15
Hoạt động

3.1.12. UC12: Nhận đơn thủ công


Name Nhận đơn thủ công Code UC12

Description Cho phép actor nhận làm tài xế cho chuyến đi

Actor Driver Trigger Actor tại trang danh sách các đơn
hiện tại, nhấn vào nút nhận đơn

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Hiển thị thông tin đơn đặt

Error situations 1. Đơn đã bị hủy

2. Lỗi kết nối

System state in 1. Hiển thị thông báo: MS17


error situations
2.Hiển thị thông báo: MS15

Activities

Actor System

Main Flow: Nhận đơn thủ công thành công

1 Tại trang các đơn hiện tại, Actor nhấn 2 Hệ thống trả về giá trị “ACCEPTED” cho UC04-
vào nút nhận đơn Phân tài xế và trả về thông tin chuyến đi

Actor System

Main Flow: Nhận đơn thất bại do đơn đã bị hủy

1 Tại trang các đơn hiện tại, Actor nhấn 2 Hệ thống hiển thị thông báo MS17
vào nút nhận đơn

3.1.13. UC13: Nhận đơn tự động


Name Nhận đơn tự động Code UC13

Description Cho phép actor nhận làm tài xế cho chuyến đi

30 | P a g e
Actor Driver Trigger Actor bật chế độ nhận đơn tự động

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Hiển thị thông tin đơn đặt và thông báo tới tài xế

Error situations

System state in
error situations

Activities

Actor System

Alternative Flow: Nhận đơn tự động thành công

1 Actor bật chế độ nhận đơn tự động 1 Hệ thống thực hiện theo UC04-Phân tài xế và trả
về thông tin chuyến đi

3.1.14. UC14: Xác nhận hoàn thành đơn


Name Xác nhận hoàn thành đơn Code UC14

Description Cho phép actor đặt trạng thái đơn thành đã hoàn thành

Actor Driver Trigger Sau khi UC04-Phân tài xế thực hiện


thành công, actor nhấn vào nút xác
nhận hoàn thành đơn

Pre-condition Actor đã được phân làm tài xế cho một đơn

Post condition Hệ thống hiển thị thông tin đơn là “đã hoàn thành”

Error situations 1. Đơn đã bị hủy bởi khách hàng

System state in 1. Hiển thị thông báo: MS17


error situations

Activities

Actor System

Main Flow: Xác nhận hoàn thành đơn thành công

31 | P a g e
1 Sau khi UC04-Phân tài xế thực hiện 2 Hệ thống chuyển sang trang hiển thị thông tin
thành công, actor nhấn vào nút xác đơn đã hoàn thành ở giao diện của driver + gửi
nhận hoàn thành đơn thông báo MS18 ở giao diện của passenger

Actor System

Alternative Flow: Xác nhận hoàn thành đơn thất bại

1 Sau khi UC04-Phân tài xế thực hiện 2 Hệ thống hiển thị thông báo MS17
thành công, actor nhấn vào nút xác
nhận hoàn thành đơn

3.1.15. UC15: Nhắn tin


Name Nhắn tin Code UC15

Description Cho phép một actor nhắn tin với các actor khác

Actor Passenger, Driver Trigger Sau khi hệ thống thực hiện thành
công UC03-Đặt xe, actor chọn mục
nhắn tin

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Tin nhắn được đánh dấu là đã gửi

Error situations 1. Tin nhắn không hợp lệ

2. Tin nhắn vượt quá kí tự cho phép

System state in 1. Hiển thị thông báo: MS20


error situations
2. Hiển thị thông báo: MS21

Activities

Actor System

Main Flow: Nhắn tin thành công

1 Sau khi hệ thống thực hiện thành công 2 Hệ thống chuyển sang phiên trò chuyện riêng
UC03-Đặt xe, actor chọn mục nhắn tin
với tài xế

3 Actor nhập nội dung muốn gửi đi và 4 Hệ thống hiển thị tin nhắn đã được gửi đi
nhấn gửi

32 | P a g e
Actor System

Alternative Flow: Nhắn tin thất bại do tin nhắn vượt quá kí tự cho phép

1 Actor nhập nội dung muốn gửi đi và 2 Hệ thống hiển thị thông báo MS21
nhấn gửi

Actor System

Alternative Flow: Nhắn tin thất bại do tin nhắn không hợp lệ

1 Actor nhập nội dung muốn gửi đi và 2 Hệ thống hiển thị thông báo MS20
nhấn gửi

3.1.16. UC16: Đổi mã khuyến mãi


Name Đổi mã khuyến mãi Code UC16

Description Cho phép một actor nhắn tin với các actor khác

Actor Passenger Trigger Actor tại trang default, nhấn chọn


mục Grab Reward

Pre-condition Actor đã đăng nhập với role tương ứng

Post condition Hiển thị thông báo đổi mã thành công

Error situations 1. Đổi mã không thành công

System state in 1. Hiển thị thông báo: MS22


error situations

Activities

Actor System

Main Flow: Đổi mã thành công

1 Actor tại trang default, nhấn chọn mục 2 Hệ thống chuyển sang trang đổi mã khuyến mãi
Grab Reward

3 Actor chọn mã khuyến mãi mong 4 Hệ thống hiển thị mã đã được đổi thành công
muốn và nhấn nút đổi

Actor System

Alternative Flow: Đổi mã thất bại

33 | P a g e
1 Actor chọn mã khuyến mãi mong 2 Hệ thống hiển thị thông báo MS22
muốn và nhấn nút đổi

3.1.17. UC17: Tính giá cước


Name Tính giá cước Code UC17

Description Hệ thống tính toán và hiển thị giá cước của chuyến đi

Actor Hệ thống Trigger Khi thực hiện UC03-Đặt xe

Pre-condition Passenger đã nhập đầy đủ điếm đón, điểm đến

Post condition Hiển thị giá tiền của đơn đặt

Error situations 1. Passenger nhập địa chỉ hệ thống không hỗ trợ

System state in 1. Hiển thị thông báo: MS23


error situations

Activities

Actor System

Main Flow: Tính giá cước thành công

1 Hệ thống tính giá cước dựa trên Điểm đến, điểm


đón từ UC03-Đặt xe và BR01-Cách tính giá cước

2 Hệ thống hiển thị cước, điểm đón, điểm đến lên


trang xác nhận đặt xe

Actor System

Main Flow: Tính giá cước thất bại

1 Hệ thống tính giá cước dựa trên Điểm đến, điểm


đón từ UC03-Đặt xe và BR01-Tính giá cước

2 Hệ thống hiển thị thông báo MS23

3.1.18. UC18: Đánh giá chuyến đi


Name Đánh giá chuyến đi Code UC18

Description Cho phép actor phản hồi trải nghiệm về chuyến đi

34 | P a g e
Actor Passenger Trigger Sau khi UC14-Xác nhận hoàn thành
đơn thực hiện thành công, actor
nhấn vào các biểu tượng ngôi sao ở
trang thông tin đơn

Actor tại trang Hoạt động, nhấn


vào nút đánh giá chuyến đi cho
đơn đã hoàn thành

Pre-condition Trạng thái của đơn là “đã hoàn thành”

Post condition Hiển thị thông tin đã đánh giá

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Đánh giá thành công

1 Sau khi UC14-Xác nhận hoàn thành 2 Hệ thống hiển thị thông tin đã được đánh giá
đơn thực hiện thành công, actor nhấn
vào các biểu tượng ngôi sao ở trang
thông tin đơn

Actor tại trang Hoạt động, nhấn vào


nút đánh giá chuyến đi cho đơn đã
hoàn thành

3.1.19. UC19: Xem danh sách tài khoản


Name Xem danh sách tài khoản Code UC19

Description Cho phép admin xem các tài khoản đã được đăng kí trên hệ thống

Actor Admin Trigger Admin nhấn vào nút xem danh sách
tài khoản

Pre-condition Actor đã đăng nhập với role = “Admin”

Post condition Hiển thị danh sách các tài khoản đã được đăng ký với hệ thống

Error situations

35 | P a g e
System state in
error situations

Activities

Actor System

Main Flow: Xem danh sách tài khoản thành công

1 Admin nhấn vào nút xem danh sách 2 Hiển thị danh sách các tài khoản đã được đăng ký
tài khoản với hệ thống

3.1.20. UC20: Thống kê đánh giá tài xế


Name Thống kê đánh giá tài xế Code UC20

Description Hệ thống tự động điều chỉnh lại điểm đánh giá của tài xế khi có lượt đánh giá mới

Actor Hệ thống Trigger Sau khi UC18-Đánh giá chuyến đi


được thực hiện

Pre-condition Các đánh giá được đánh dấu là hợp lệ

Post condition Cập nhật điểm đánh giá mới cho driver

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Thống kê đánh giá tài xế thành công

1 Sau khi UC18-Đánh giá chuyến đi thực 2 Hệ thống cập nhật mới điểm đánh giá cho driver
hiện thành công

3.1.21. UC21: Xếp mức ưu tiên tài xế


Name Xếp mức ưu tiên tài xế Code UC21

Description Hệ thống tự động sắp xếp mức ưu tiên của tài xế dựa vào điểm đánh giá

Actor Hệ thống Trigger Sau khi UC20-Thống kê đánh giá tài


xế được thực hiện

Pre-condition Tài xế đã được đánh giá từ 10 đơn trở lên

36 | P a g e
Post condition Cập nhật mức ưu tiên mới cho driver

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Xếp mức ưu tiên tài xế thành công

1 Sau khi UC20-Thống kê đánh giá tài xế 2 Hệ thống cập nhật mức ưu tiên mới cho driver
thực hiện thành công

3.1.22. UC22: Xem mức ưu tiên tài xế


Name Xem mức ưu tiên tài xế Code UC22

Description Cho phép actor xem danh sách mức ưu tiên của từng tài xế

Actor Admin Trigger Sau khi UC19-Xem danh sách tài


khoản được thực hiện, actor nhấn
vào chức năng xem mức ưu tiên

Pre-condition Đã đăng nhập với role = “Admin”

Post condition Hiển thị danh sách mức ưu tiên của từng tài xế

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Xem mức ưu tiên tài xế thành công

1 Sau khi UC19-Xem danh sách tài 2 Hệ thống hiển thị danh sách mức ưu tiên của
khoản thực hiện thành công, actor từng tài xế
nhấn vào chức năng xem mức ưu tiên

3.1.23. UC23: Thống kê số đơn


Name Thống kê số đơn Code UC23

37 | P a g e
Description Hệ thống tự động tính tổng số đơn mà driver đã hoàn thành

Actor Hệ thống Trigger Sau khi UC14-Xác nhận hoàn thành


đơn thành công

Pre-condition Trạng thái đơn là “đã hoàn thành”

Post condition Hiển thị danh sách tổng số đơn từng driver và các số liệu liên quan

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Xem mức ưu tiên tài xế thành công

1 Sau khi UC14-Xác nhận hoàn thành 2 Hệ thống hiển thị danh sách mức ưu tiên của
đơn thành công từng tài xế

3.1.24. UC24: Tính tiền thưởng


Name Tính tiền thưởng Code UC24

Description Hệ thống tự động tính tiền thưởng cho driver

Actor Hệ thống Trigger Sau khi UC23-Thống kê số đơn


được thực hiện

Pre-condition Các đơn chạy đủ theo quy định và hợp lệ

Post condition Cập nhật tiền thưởng cho driver

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Tính tiền thưởng thành công

38 | P a g e
1 Hệ thống tính tiền thưởng dựa trên số đơn mà
driver đã chạy trong ngày và BR05-Khung giờ
vàng

2 Nếu số tiền có thay đổi sẽ cập nhật giá trị tiền


thưởng mới cho driver

3.1.25. UC25:Tính điểm reward


Name Tính điểm reward Code UC25

Description Hệ thống tự động tính điểm reward cho passenger

Actor Hệ thống Trigger Sau khi UC14-Xác nhận hoàn thành


đơn thực hiện thành công

Pre-condition Trạng thái đơn là “đã hoàn thành”

Post condition Điểm reward của passenger được cập nhật

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Tính điểm reward thành công

1 Hệ thống tính tiền thưởng dựa trên giá tiền của


đơn đã được hoàn thành của passenger:

-5~10 điểm: cho những đơn dưới 2km

-10~20 điểm: cho những đơn từ 2km trở lên

2 Hệ thống cập nhật giá trị điểm reward mới cho


passenger

3.1.26. UC26: Nâng cấp bậc khách hàng


Name Nâng cấp bậc khách hàng Code UC26

Description Hệ thống tự động nâng cấp bậc khách hàng khi đủ điều kiện

Actor Hệ thống Trigger Khi UC25 được thực hiện

39 | P a g e
Pre-condition Tài khoản khách hàng hợp lệ

Post condition Cập nhật cấp bậc mới cho khách hàng

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Nâng cấp bậc khách hàng thành công

1 Hệ thống sẽ nâng cấp bậc dựa trên số điểm


reward khách hàng đã đạt được:

-bạc: 250 điểm

-vàng:400 điểm

-bạch kim:600 điểm

2 Hệ thống cập nhật cấp bậc mới cho khách hàng


nếu đã đủ điểm

3.1.27. UC27: Thống kê tin nhắn


Name Thống kê tin nhắn Code UC27

Description Hệ thống tự động thống kê tin nhắn

Actor Hệ thống Trigger Sau khi UC15-Nhắn tin được thực


hiện

Pre-condition Các tin nhắn hợp lệ

Post condition Cập nhật thông tin liên quan tới tin nhắn

Error situations

System state in
error situations

Activities

Actor System

40 | P a g e
Main Flow: Thống kê tin nhắn thành công

1 Sau khi UC15-Nhắn tin được thực hiện, hệ thống


cập nhật các dữ liệu mới liên quan tới tin nhắn

3.1.28. UC28: Lọc số câu hỏi nhiều nhất


Name Lọc số câu hỏi nhiều nhất Code UC28

Description Hệ thống tự động lọc số câu hỏi nhiều nhất

Actor Hệ thống Trigger Khi UC27-Thống kê tin nhắn được


thực hiện

Pre-condition Số lượng tin nhắn đủ nhiều

Post condition Cập nhật số lượng tin nhắn được hỏi nhiều nhất

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Lọc số câu hỏi nhiều nhất thành công

1 Sau khi UC27-Thống kê tin nhắn được thực hiện,


hệ thống cập nhật số lượng tin nhắn được hỏi
nhiều nhất

3.1.29. UC29: Trả lời câu hỏi


Name Trả lời câu hỏi Code UC29

Description Cho phép admin thêm các câu trả lời cho mục Các câu hỏi thường gặp

Actor Admin Trigger Admin nhấn thêm mục trả lời mới

Pre-condition Đã đăng nhập với role =”Admin”

Post condition Hiển thị câu trả lời mới

Error situations

System state in
error situations

41 | P a g e
Activities

Actor System

Main Flow: Trả lời câu hỏi

1 Admin nhấn thêm mục trả lời mới 2 Hệ thông hiển thị câu trả lời mới

3.1.30. UC30: Xóa đơn


Name Xóa đơn Code UC30

Description Cho phép actor xóa những đơn đã hoàn thành

Actor Passenger Trigger Khi UC11-Xem lịch sử đặt xe được


thực hiện, actor nhấn vào nút xóa

Pre-condition Trạng thái đơn là “đã hoàn thành”

Post condition Đơn không còn hiển thị ở trang Hoạt động

Error situations

System state in
error situations

Activities

Actor System

Main Flow: Xóa đơn thành công

1 Khi UC11-Xem lịch sử đặt xe được 2 Trang Hoạt động không còn hiển thị đơn đã bị
thực hiện, actor nhấn vào nút xóa xóa

3.1.31. UC31: Khóa tài khoản


Name Khóa tài khoản Code UC31

Description Cho phép actor khóa tài khoản của driver

Actor Admin Trigger Khi UC22-Xem mức ưu tiên tài xế


được thực hiện, actor chọn chức
năng khóa tài khoản

Pre-condition Đã đăng nhập với role = “Admin”

Post condition Trạng thái tài khoản của driver là “Inactivated”

Error situations

42 | P a g e
System state in
error situations

Activities

Actor System

Main Flow: Khóa tài khoản thành công

1 Khi UC22-Xem mức ưu tiên tài xế 2 Hệ thống hiển thị trạng thái tài khoản của driver
được thực hiện, actor chọn chức năng trở thành “Inactivated”
khóa tài khoản

System Message

MS01 “Hệ thống đang bảo trì”

Message thông báo khi actor sử dụng phần mềm

MS02 “Không có kết nối internet”

Message thông báo khi actor sử dụng phần mềm mà không có mạng

MS03 “Số điện thoại chưa được đăng ký”

Message thông báo khi actor đăng nhập với một số điện thoại không tồn tài trên hệ
thống

MS04 “Số điện thoại đã được đăng ký”

Message thông báo khi actor đăng ký một số điện thoại trùng với một số điện thoại
tồn tại trên hệ thống

MS05 “Đăng ký thành công”

Message thông báo khi actor nhập mã OTP hợp lệ

MS05 “Vui lòng nhập số điện thoại hợp lệ”

Message thông báo khi actor nhập số điện thoại không đúng định dạng

MS06 “Vui lòng chọn địa chỉ hợp lệ”

Message thông báo khi actor nhập một địa chỉ không tồn tại

MS07 “Vui lòng nhập thông tin hợp lệ”

Message thông báo khi actor nhấn vào nút thay đổi một thông tin cá nhân không
phù hợp

43 | P a g e
MS08 “Hiện không có tài xế phù hợp với yêu cầu của bạn! Vui lòng thử lại sau.”

Message thông báo khi hệ thống không nhận được phản hồi từ tài xế khi phân tài xế

MS09 “Tài xế không thể đến vị trí của bạn”

Message thông báo khi định vị của bạn không nằm trong phạm vi phục vụ của hệ
thống

MS10 “Đặt xe không thành công do có sự thay đổi về giá cước”

Message thông báo khi Passenger nhấn vào nút Đặt xe nhưng giá cước có sự thay
đổi

MS11 “Vui lòng bật định vị gps”

Message thông báo khi Passenger chưa bật tính năng GPS trên thiết bị khi sử dụng
app

MS12 “Mã OTP không hợp lệ”

Message thông báo khi Actor nhập một mã OTP không hợp lệ

MS13 “Đường truyền không ổn định, vui lòng thử lại”

Message thông báo khi Actor sử dụng các tính năng nhưng kết nối mạng yếu

MS14 “Tài xế đang trên đường tới chỗ bạn”

Message thông báo khi Actor đã đặt xe thành công

MS15 “Something went wrong”

Message thông báo khi hệ thống gặp trục trặc khi xử lí tính năng

MS16 “Thông tin không hợp lệ”

Message thông báo khi Actor nhập thông tin cá nhân không hợp lệ

MS17 “Đơn đã bị hủy”

Message thông báo khi Actor nhấn vào nút nhận đơn cho một đơn hàng đã bị hủy

MS18 “Bạn đã tới nơi”

Message thông báo khi Actor nhấn vào nút xác nhận hoàn thành đơn

MS19 “Tài xế đã hủy đơn”

Message thông báo khi Actor thực hiện các thao tác liên quan tới đơn khi đơn đã bị
hủy

MS20 “Tin nhắn chứa nội dung không phù hợp”

44 | P a g e
Message thông báo khi actor nhấn nút gửi cho nội dung tin nhắn chứa từ ngữ
không phù hợp

MS21 “Tin nhắn vượt quá kí tự cho phép”

Message thông báo khi actor nhấn nút gửi cho nội dung tin nhắn vượt quá độ dài kí
tự cho phép

MS22 “Bạn không có đủ điểm”

Message thông báo khi actor nhấn nút đổi một mã khuyến mãi khi không có đủ
điểm reward

MS23 “Địa điểm nằm ngoài phạm vị hệ thống”

Message thông báo khi actor nhấn vào nút xác nhận điểm đón khi đã nhập một địa
điểm mà hệ thống không hoạt động

MS24 “Thanh toán thành công”

Message thông báo khi actor nhấn vào nút xác nhận thanh toán cho đơn hàng

MS25 “Số dư tài khoản của bạn không đủ”

Message thông báo khi actor nhấn vào nút xác nhận thanh toán nhưng không đủ
tiền

Business Rules

Rule No. Rule Description

BR01 Cách tinh giá cước Giá cước cho chuyến đi :

<=2km = 12.000đ

>2km =( 12.000đ (2km đầu) + (3.400đ * số km tiếp theo) +


[300đ *số phút (sau 2km đầu tiên)] ) * hệ số cao điểm

BR02 Hệ số cao điểm = 1: Vào các khung giờ bình thường

= 1.2: Vào các khung giờ cao điểm trong ngày thường

= 1.5: Vào các khung giờ bình thường của ngày lễ Tết

= 1.7: Vào các khung giờ cao điểm của ngày lễ Tết

BR03 Điểm đón, điểm đến Người dùng phải bật định vị GPS để định vị được điểm đi,
điểm đến trên bản đồ

BR04 Hệ số ưu tiên phân -Khách:


tài
Khách thường: hệ số ưu tiên = 1

45 | P a g e
Khách VIP: hệ số ưu tiên = 2

Khách đã bị đánh giá thấp: Hệ số ưu tiên = 0.5

-Tài xế:

Tài xế: Hệ số ưu tiên = 1

Tài xế được đánh giá tích cực: Hệ số ưu tiên = 2

Tài xế bị đánh giá thấp: Hệ số ưu tiên = 0.5

BR05 Khung giờ vàng -Buổi sáng: 6-8h

-Buổi trưa:12-13h

-Buổi tối:16h-19h

3.2. Activity Diagram


3.2.1. Activity Diagram: Đăng nhập/ Đăng ký

46 | P a g e
3.2.2. Activity Diagram: Quản lí đặt xe

3.2.3. Activity Diagram: Đổi mã khuyến mãi

47 | P a g e
3.2.4. Activity Diagram::Đánh giá tài xế

3.2.5. Activity Diagram: Xác nhận hoàn thành đơn

48 | P a g e
3.2.6. Activity Diagram: Hủy đặt xe

3.2.7. Activity Diagram: Thanh toán

49 | P a g e
3.2.8. Activity Diagram: Phân tài xế

3.2.9. Activity Diagram: Cập nhật thông tin cá nhân

50 | P a g e
3.2.10. Activity Diagram: Xem lịch sử đặt xe

51 | P a g e
3.2.11. Activity Diagram: Đặt xe

52 | P a g e
3.3. Sequence Diagram
3.3.1. Sequence Diagram: Quản lí đặt xe

53 | P a g e
3.3.2. Sequence Diagram: Quản lí profile

54 | P a g e
3.3.3. Sequence Diagram:Xem lịch sử đặt xe

55 | P a g e
3.3.4. Sequence Diagram: Đăng nhập

56 | P a g e
3.3.5. Sequence Diagram: Hủy đặt xe

57 | P a g e
3.3.6. Sequence Diagram: Phân tài xế

58 | P a g e
3.3.7. Sequence Diagram:Thanh toán

59 | P a g e
3.3.8. Sequence Diagram: Đặt xe

60 | P a g e
3.3.9. Sequence Diagram: Cập nhật thông tin cá nhân

61 | P a g e
3.3.10. Sequence Diagram: QnA

62 | P a g e
3.3.11. Sequence Diagram: Đăng xuất

63 | P a g e
3.3.12. Sequence Diagram: Xác nhận hoàn thành đơn

64 | P a g e
3.4. State Diagram
3.4.1. State Diagram: <User>

65 | P a g e
3.4.2. State Diagram: <UserIteration>

66 | P a g e
3.4.3. State Diagram: <Driver>

67 | P a g e
3.4.4. State Diagram: <Passenger>

68 | P a g e
4. Thiết kế hệ thống
4.1. Thiết kế dữ liệu

4.1.1. Class Diagram

69 | P a g e

You might also like