You are on page 1of 70

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 chia 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%
Mục lục

Mục lục .........................................................................................................................2


1. Giới thiệu ...................................................................................................................4
1.1. Mục tiêu ..............................................................................................................4
1.2. Các định nghĩa và từ viết tắt ..................................................................................4
1.3. Tham khảo ...........................................................................................................4
1.3.1. <Uber> .........................................................................................................4
1.3.2. <Be> ............................................................................................................5
1.3.3. <Gojek> ........................................................................................................6
1.3.4. <Xanh SM>....................................................................................................9
1.3.5. <Maxim> .......................................................................................................9
1.4. So sánh tính năng của các đối thủ ......................................................................... 10
2. Phân tích yêu cầu ..................................................................................................... 11
2.1. Mô tả dự án ....................................................................................................... 11

2|Page
2.2. Actors và Use Cases............................................................................................ 12
2.2.1. Các Use Case Diagram ................................................................................... 12
2.2.2. Mô tả Actors ................................................................................................. 14
2.2.3. Mô tả Use Cases ........................................................................................... 14
2.3. Bảng phân quyền User vs. Function ...................................................................... 16
3. Yêu cầu chức năng .................................................................................................... 17
3.1. Đặc tả usecase ................................................................................................... 17
3.1.1. UC01: Đăng nhập ......................................................................................... 17
3.2. Activity Diagram ................................................................................................. 44
3.2.1. Activity Diagram: Quản lí thông tin cá nhân ..................................................... 44
3.2.2. Activity Diagram: Quản lí đặt xe ..................................................................... 45
3.2.3. Activity Diagram: Đổi mã khuyến mãi .............................................................. 46
3.2.4. Activity Diagram: Đặt xe ................................................................................ 47
3.2.5. Activity Diagram::Đánh giá tài xế ................................................................... 47
3.2.6. Activity Diagram: Xác nhận hoàn thành đơn ..................................................... 48
3.2.7. Activity Diagram: Hủy đặt xe .......................................................................... 48
3.2.8. Activity Diagram: Thanh toán ......................................................................... 49
3.2.9. Activity Diagram: Phân tài xế ......................................................................... 49
3.2.10. Activity Diagram: Cập nhật thông tin cá nhân ................................................. 50
3.2.11. Activity Diagram: Xem lịch sử đặt xe ............................................................. 50
3.2.12. Activity Diagram: Đăng ký ............................................................................ 51
3.2.13. Activity Diagram: Đăng nhập ........................................................................ 51
3.2.14. Activity Diagram: Nhắn tin ........................................................................... 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 .................................................................. 55
3.3.3. Sequence Diagram:Xem lịch sử đặt xe ............................................................. 56
3.3.4. Sequence Diagram: Đăng nhập ....................................................................... 57
3.3.5. Sequence Diagram: Hủy đặt xe....................................................................... 58
3.3.6. Sequence Diagram: Phân tài xế ...................................................................... 59
3.3.7. Sequence Diagram:Thanh toán ....................................................................... 60
3.3.8. Sequence Diagram: Đặt xe ............................................................................. 61
3.3.9. Sequence Diagram: Cập nhật thông tin cá nhân................................................ 62
3.3.10. Sequence Diagram: Đăng xuất...................................................................... 63

3|Page
3.3.11. Sequence Diagram: Nhắn tin ........................................................................ 64
3.3.12. Sequence Diagram: Xác nhận hoàn thành đơn ................................................ 65
3.4. State Diagram .................................................................................................... 66
3.4.1. State Diagram: <User> ................................................................................. 66
3.4.2. State Diagram: <UserIteration> ..................................................................... 67
3.4.3. State Diagram: <Driver> ............................................................................... 68
3.4.4. State Diagram: <Passenger> ......................................................................... 69
4. Thiết kế hệ thống ..................................................................................................... 70
4.1. Thiết kế dữ liệu .................................................................................................... 70
4.1.1. Class Diagram .............................................................................................. 70

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

4|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ì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.

5|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ì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
Đị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.

6|Page
7|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

8|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.

9|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ì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 ***** ***** **** *** ****

10 | 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
o Tài xế được quản lý thu nhập của bản thân, được thưởng thêm dựa trên số giờ và
và số đơn hoàn thành, ngoài ra còn có thể tự do lựa chọn hình thức chạy theo
quy định.

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

UCD tổng quát

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

UCD Quản lí đặt xe

13 | 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

14 | 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 Xóa đơn Cho phép actor xóa những đơn đã đặt

15 | P a g e
28 UC28 Khóa tài khoản Cho phép admin xóa tài khoản của những actor khác

29 UC29 Chia sẻ chuyến đi Cho phép actor chia sẻ thông tin chuyến đi hiện tại của mình

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ý
Passenger Gọi điện
Passenger Chia sẻ chuyến đi
Passenger Xem lịch sử đặt xe

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
Driver Xem thu nhập
Driver Đăng ký

16 | P a g e
Driver Đăng nhập
Driver Cập nhật thông tin cá nhân
Driver Đăng xuất
Driver Nhắn tin
Driver Gọi điện

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

17 | 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

18 | 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

19 | 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

20 | 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 thông tin để 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

21 | 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

22 | 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

23 | 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

24 | 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

25 | 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

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

26 | P a g e
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

27 | 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

Alternative Flow: Xem lịch sử đặt xe thất bại

28 | P a g e
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

Actor Driver Trigger Actor bật chế độ nhận đơn tự động

29 | P a g e
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

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

30 | P a g e
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

Actor System

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

31 | P a g e
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

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

32 | P a g e
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

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

33 | P a g e
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

System state in
error situations

Activities

34 | P a g e
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

Post condition Cập nhật mức ưu tiên mới cho driver

Error situations

System state in
error situations

35 | P a g e
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

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”

36 | P a g e
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

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

37 | P a g e
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

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

38 | P a g e
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: Xóa đơn


Name Xóa đơn Code UC27

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.28. UC28: Khóa tài khoản


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

39 | P a g e
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

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

3.1.29. UC29: Chia sẻ chuyến đi


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

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

Actor Passenger Trigger Sau khi UC03 – Đặt xe thực hiện


thành công, actor nhấn vào biểu
tượng chia sẻ chuyến đi

Pre-condition Trạng thái đơn đã chuyển sang “processing”

Post condition Hiển thị đường dẫn hoặc thông tin đơn rút gọn của actor ở nơi được chia sẻ

Error situations 1.Đơn đã bị huỷ

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


error situations

Activities

Actor System

Main Flow: Chia sẻ tài khoản thành công

40 | P a g e
1 Sau khi UC03 – Đặt xe thực hiện thành 2 Hệ thống hiển thị các hình thức chia sẻ
công, actor nhấn vào biểu tượng chia
sẻ chuyến đi

3 Actor chọn và sử dụng 1 hình thức 4 Hệ thống hiển thị thông báo “Chia sẻ thành
chia sẻ công”

Actor System

Main Flow: Chia sẻ chuyến đi thất bại

1 Actor chọn và sử dụng 1 hình thức 2 Hệ thống hiển thị thông báo MS19
chia sẻ

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 “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

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.”

41 | P a g e
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”

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

42 | P a g e
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

Khách VIP: hệ số ưu tiên = 2

43 | P a g e
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: Quản lí thông tin cá nhân

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

45 | P a g e
3.2.3. Activity Diagram: Đổi mã khuyến mãi

46 | P a g e
3.2.4. Activity Diagram: Đặt xe

3.2.5. Activity Diagram::Đánh giá tài xế

47 | P a g e
3.2.6. Activity Diagram: Xác nhận hoàn thành đơn

3.2.7. Activity Diagram: Hủy đặt xe

48 | P a g e
3.2.8. Activity Diagram: Thanh toán

3.2.9. Activity Diagram: Phân tài xế

49 | P a g e
3.2.10. Activity Diagram: Cập nhật thông tin cá nhân

3.2.11. Activity Diagram: Xem lịch sử đặt xe

50 | P a g e
3.2.12. Activity Diagram: Đăng ký

3.2.13. Activity Diagram: Đăng nhập

51 | P a g e
3.2.14. Activity Diagram: Nhắn tin

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

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

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

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

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

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

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

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

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

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

63 | P a g e
3.3.11. Sequence Diagram: Nhắn tin

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

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

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

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

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

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

4.1.1. Class Diagram

70 | P a g e

You might also like