Tải bản đầy đủ (.pdf) (69 trang)

Tiểu luận 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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.41 MB, 69 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<b>Khoa Cơng Nghệ Thơng Tin </b>

<b>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 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Bảng phân công công việc </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<small>1.4. So sánh tính năng của các đối thủ ... 11</small>

<small>2. Phân tích u cầu ... 12</small>

<i><small>2.1. Mơ tả dự án ... 12</small></i>

<b><small>2.2. Actors và Use Cases... 13</small></b>

<small>2.2.1. Các Use Case Diagram ... 13</small>

<small>2.2.2. Mô tả Actors ... 15</small>

<small>2.2.3. Mô tả Use Cases ... 15</small>

<b><small>2.3. Bảng phân quyền User vs. Function ... 17</small></b>

<small>3. Yêu cầu chức năng ... 18</small>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<small>3.2.2. Activity Diagram: Quản lí đặt xe ... 47</small>

<small>3.2.3. Activity Diagram: Đổi mã khuyến mãi ... 47</small>

<small>3.2.4. Activity Diagram::Đánh giá tài xế ... 48</small>

<small>3.2.5. Activity Diagram: Xác nhận hoàn thành đơn ... 48</small>

<small>3.2.6. Activity Diagram: Hủy đặt xe ... 49</small>

<small>3.2.7. Activity Diagram: Thanh toán ... 49</small>

<small>3.2.8. Activity Diagram: Phân tài xế ... 50</small>

<small>3.2.9. Activity Diagram: Cập nhật thông tin cá nhân ... 50</small>

<small>3.2.10. Activity Diagram: Xem lịch sử đặt xe ... 51</small>

<small>3.2.11. Activity Diagram: Đặt xe ... 52</small>

<small>3.3. Sequence Diagram ... 53</small>

<small>3.3.1. Sequence Diagram: Quản lí đặt xe ... 53</small>

<small>3.3.2. Sequence Diagram: Quản lí profile ... 54</small>

<small>3.3.3. Sequence Diagram:Xem lịch sử đặt xe ... 55</small>

<small>3.3.4. Sequence Diagram: Đăng nhập ... 56</small>

<small>3.3.5. Sequence Diagram: Hủy đặt xe... 57</small>

<small>3.3.6. Sequence Diagram: Phân tài xế ... 58</small>

<small>3.3.7. Sequence Diagram:Thanh toán ... 59</small>

<small>3.3.8. Sequence Diagram: Đặt xe ... 60</small>

<small>3.3.9. Sequence Diagram: Cập nhật thông tin cá nhân... 61</small>

<small>3.3.10. Sequence Diagram: QnA ... 62</small>

<small>3.3.11. Sequence Diagram: Đăng xuất... 63</small>

<small>3.3.12. Sequence Diagram: Xác nhận hoàn thành đơn ... 64</small>

<small>3.4. State Diagram ... 65</small>

<small>3.4.1. State Diagram: <User> ... 65</small>

<small>3.4.2. State Diagram: <UserIteration> ... 66</small>

<small>3.4.3. State Diagram: <Driver> ... 67</small>

<small>3.4.4. State Diagram: <Passenger> ... 68</small>

<small>4. Thiết kế hệ thống ... 69</small>

<b><small>4.1. Thiết kế dữ liệu ... 69</small></b>

<small>4.1.1. Class Diagram ... 69</small>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

1. Giới thiệu

<b>1.1. Mục tiêu </b>

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

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

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Đặt xe trực tuyến

Người dùng đặt xe trong qua điện thoại và chọn địa điểm cần đến

Tìm tài xế nhanh

Hiển thị giá cước Cung cấp người dùng giá cước dựa trên khoảng cách và thời gian dự kiến của chuyến

Giá cước cao hơn các ứng dụng khác. Định vị GPS Giúp người dùng chia sẻ vị trí và giúp

tài xế nhận biết khách hàng đang ở địa

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

Đặt xe trực tuyến

Người dùng đặt xe trong qua điện thoại và chọn địa điểm cần đến

Tìm tài xế nhanh

Hiển thị giá cước Cung cấp người dùng giá cước dựa trên khoảng cách và thời gian dự kiến

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Định vị GPS Giúp người dùng chia sẻ vị trí và giúp tài xế nhận biết khách hàng đang ở địa điểm nào

Định vị khá tốt Đôi lúc không hiển thị địa chỉ 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ẻ

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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

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 trên khoảng cách và thời gian dự kiến

Giờ cao điểm giá quá cao

Định vị GPS Giúp người dùng chia sẻ vị trí và giúp tài xế nhận biết khách hàng đang ở địa Dịch vụ ngoài lĩnh vực Người dùng đặt thức ăn, giao hàng Phí giao rẻ

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>1.3.4. <Xanh SM> </b>

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.

Đặt xe trực tuyến

Người dùng đặt xe trong qua điện thoại và chọn địa điểm cần đến

100% xe điện Tìm tài xế lâu

Hiển thị giá cước Cung cấp người dùng giá cước dựa

trên khoảng cách và thời gian dự kiến Định vị GPS Giúp người dùng chia sẻ vị trí và giúp

tài xế nhận biết khách hàng đang ở địa

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

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

thoại và chọn địa điểm cần đến

Tìm tài xế lâu

Hiển thị giá cước Cung cấp người dùng giá cước dựa

trên khoảng cách và thời gian dự kiến của chuyến

Giá cước rẻ

Định vị GPS Giúp người dùng chia sẻ vị trí và giúp tài xế nhận biết khách hàng đang ở địa điểm nào

Hiển thị địa chỉ khơng 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ẻ

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

<i>Đá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ì để </i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

<i><small>2.1. </small></i>

Mô tả dự án

<i><small>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. </small></i>

<i><small>➢ Ứng dụng có đặc điểm nổi bật </small></i>

<i><small>✓ Ứ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à </small></i>

<i><small>hỗ trợ ưu đãi doanh nghiệp </small></i>

<i><small>✓ 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 q trình đặt xe và thanh tốn </small></i>

<i><small>✓ 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 q trình đặt xe và thanh tốn </small></i>

<i><small>✓ 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 tồn và đáng tin cậy cho tất cả mọi người. </small></i>

<i><small>➢ User chính và chức năng từng user: ⚫ Passenger (Hành khách) </small></i>

<i><small>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 </small></i>

<i><small>dịch vụ của Grab </small></i>

<i><small>o Thanh toán các đơn đặt xe bằng nhiều hình thức thanh tốn được tích hợp với Grab </small></i>

<i><small>⚫ Tài xế (Driver) </small></i>

<i><small>o Nhận đơn đặt xe với 2 hình thức thủ cơng và tự động nhận đơn </small></i>

<i><small>o Thanh toán các đơn đặt xe bằng nhiều hình thức thanh tốn được tích hợp với Grab </small></i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>2.2. Actors và Use Cases 2.2.1. Các Use Case Diagram </b>

UCD tổng quát

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

UCD Quản lí thơng tin cá nhân

UCD Quản lí đặt xe

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

UCD Đổi mã khuyến mãi

<b>2.2.2. Mô tả Actors </b>

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 tốn.

<b>2.2.3. Mơ tả Use Cases </b>

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

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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

3 UC03 <small>Đặt xe </small> <sup>Cho phép actor đặt 1 chuyến đi đến địa điểm mong muốn </sup>

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í

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 tố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 đã hồ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

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

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

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

<b><small>Table 3: Use Case List </small></b>

<b>2.3. Bảng phân quyền User vs. Function </b>

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

<b>2.3.1. Admin </b>

<b>Actor chính Usecase </b>

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ế

<b>2.3.2. Passenger </b>

<b>Actor chính Usecase </b>

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ý

<b>2.3.3. Driver </b>

<b>Actor chính Usecase </b>

Driver Nhận đơn tự động Driver Nhận đơn thủ công

Driver Xác nhận hoàn thành đơn Driver Xem lịch sử đơn

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Driver Đăng ký Driver Đăng nhập

Driver Cập nhật thông tin cá nhân Driver Đăng xuất

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

<i>(Viết description đầy đủ các Use cases nhưng chỉ vẽ đính kèm các Sequence/Activity/State Diagrams cần </i>

<i>thiết để minh họa cho các Use case chính yếu) </i>

3.1. Đặc tả usecase

<b>3.1.1. UC01: Đăng nhập </b>

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

<b>Actor </b>

Passenger/ Driver

<b>Trigger </b> Actor khi vừa khởi động app. Nhấn

<b>nút đăng nhập Pre-condition </b> Actor đã đăng kí số điện thoại tương ứng trên hệ thống

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

<b>Error situations </b> 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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>System state in error situations </b>

1. Hiển thị thông báo: MS01 2.Hiển thị thông báo: MS02 3.Hiển thị thông báo: MS03

<b>Activities </b>

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

1 Actor tại trang Đăng nhập nhập số điện thoại và nhấn vào button nhận OTP

2 Hệ thống gửi mã OTP tới sdt Actor đã nhập

3 Actor nhập mã OTP vào và nhấn nút đăng nhập

4 Hệ thống chuyển tới trang default với role tương ứng

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

1 <b>Actor nhấn vào nút Đăng nhập bằng </b>

6 Hệ thống gửi mã OTP tới sdt Actor đã nhập

7 Actor nhập mã OTP vào và nhấn nút đăng nhập

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

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

1 <b>Actor nhấn vào nút Đăng nhập bằng </b>

4 Hệ thống chuyển sang trang yêu cầu quyền cấp thông tin cho ứng dụng

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

5 <b>Actor nhấn vào nút Cho phép </b> 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 button nhận OTP

8 Hệ thống gửi mã OTP tới sdt Actor đã nhập

9 Actor nhập mã OTP vào và nhấn nút đăng nhập

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

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

1 Actor nhập mã OTP vào và nhấn nút đăng nhập

2 Hệ thống gửi thông báo MS12

<b>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 </b>

1 Actor nhập số điện thoại và nhấn vào nút nhận mã OTP

2 Hệ thống gửi thông báo MS03

<b>3.1.2. UC02:Đăng ký </b>

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

<b>Actor </b>

Passenger/ Driver

<b>Trigger </b> Actor khi vừa khởi động app. Nhấn

<b>nút đăng ký Pre-condition </b> Actor chưa đăng nhập & chấp nhận điều khoản và điều kiện

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

<b>Error situations </b> 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ệ

<b>System state in error situations </b>

1. Hiển thị thông báo: MS01 2.Hiển thị thông báo: MS04 3. Hiển thị thông báo: MS05

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

4. hiển thị thông báo: MS12

<b>Activities </b>

<b>Main Flow: Đăng ký thành công </b>

1 Actor tại trang đăng ký, nhập số điện thoại rồi nhấn nút nhận mã OTP

2 Hệ thống tiến hành gửi mã yêu cầu xác nhận tới 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 nhập mã OTP hợp lệ

4 Xác nhận đăng ký thành công và chuyển sang trang default với role tương ứng

<b>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 </b>

1 Actor nhập số điện thoại đã được đăng ký

2 Hệ thống hiển thị thông báo lỗi MS04

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

1 Actor nhập mã OTP không hợp lệ ( Sai mã OTP/ Mã hết thời gian hiệu lực)

2 Hệ thống hiển thị thông báo lỗi MS12

<b>3.1.3. UC03: Đặt xe </b>

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

<b>Actor </b>

Passenger

<b>Trigger Actor tại trang default, chọn nút Ơ tơ hoặc nút Xe máy </b>

<b>Actor đứng tại trang hoạt động, chọn nút đặt lại </b>

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

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

<b>Error situations </b> 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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>System state in error situations </b>

1. Hiển thị thông báo: MS01 2.Hiển thị thông báo: MS02 3.Hiển thị thông báo: MS06

<b>Activities </b>

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

1 <b>Actor tại trang default, chọn nút Ơ tơ hoặc nút Xe máy </b>

2 Hệ thống chuyển sang trang nhập điểm đón, đến

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 đón

6 <b>Hệ thống thực hiện theo UC17-Tính giá cước </b>

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

thị thông báo MS14 + thông tin tài xế

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

1 Actor đứng tại trang hoạt động, chọn

<b>nút đặt lại </b>

2 <b>Hệ thống thực hiện theo UC17-Tính giá cước </b>

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

thị thông báo MS14 + thông tin tài xế

<b>Alternative Flow: Đặt xe không thành công </b>

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

báo MS08

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

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

1 <b>Actor nhấn vào nút xác nhận đặt xe </b> 2 Hệ thống hiển thị thông báo MS10

<b>3.1.4. UC04: Phân tài xế </b>

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

<b>Actor </b>

Hệ thống

<b>Trigger Sau khi UC03-Đặt xe thành công Pre-condition </b> UC03 đã thực hiện thành công

<b>Post condition </b> Hiển thị thông tin tài xế

<b>Error situations </b> 1.Khơng có tài xế nào đang hoạt động

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

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 <b>-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 </b>

3 <b>-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” </b>

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

<b>UC03-Đặt xe </b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Alternative Flow: Khơng tìm được tài xế </b>

1 <b>-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” </b>

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

<b>UC03-Đặt xe </b>

2 -Nếu kết quả cuối cùng trả về là NULL thì hiển thị

<b>thơng báo MS08 cho UC03-Đặt xe </b>

<b>3.1.5. UC05: Định vị </b>

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

<b>Actor </b>

Hệ thống

<b>Trigger Actor nhấn vào nút cho phép truy cập vị trí </b>

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

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

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

<b>System state in error situations </b>

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

<b>Main Flow: Định vị thành công </b>

1 Actor nhấn vào nút cho phép truy cập vị trí

2 Hệ thống xác định vị trí của khách hàng dựa vào GPS

<b>Alternative Flow: Định vị không thành công </b>

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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>3.1.6. UC06: Gọi điện </b>

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

<b>Actor </b>

Passenger/ Driver

<b>Trigger </b> Sau khi phân tài xế thành công, Actor nhấn vào biểu tượng hình

<b>điện thoại Pre-condition </b> Actor đã đặt xe thành công

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

<b>Error situations </b> 1.Lỗi kết nối 2.Lỗi hệ thống

<b>System state in error situations </b>

1.Hiển thị thông báo MS13 2.Hiển thị thông báo: MS15

<b>Main Flow: Gọi điện thành công </b>

1 Actor nhấn vào biểu tượng điện thoại ở phần thông tin của tài xế

2 Hệ thống tiến hành quay số + phát ra chuông reo liền mạch

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

1 Actor nhấn vào biểu tượng điện thoại ở phần thông tin của tài xế

2 Hệ thống tiến hành quay số + phát ra âm thanh gián đoạn, sau đó hiển thị thơng báo MS13

<b>3.1.7. UC07: Hủy đặt xe </b>

<b>Description </b> Cho phép actor hủy đơn đặt xe

<b>Actor </b>

Passenger/ Driver

<b>Trigger Sau khi UC03-Đặt xe thành công, actor nhấn vào nút hủy đặt xe Pre-condition </b> Actor đã đặt xe thành công

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>Post condition </b> Màn hình thơng báo đơn đã bị hủy

<b>Error situations </b> 1.Lỗi kết nối

<b>System state in error situations </b>

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

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

1 <b>Sau khi UC03-Đặt xe thành công, actor </b>

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

2 Hệ thống hiển thị bảng lựa chọn lí do hủy đặt xe

3 Actor nhấn vào nút xác nhận hủy đặt xe

4 Hệ thống hiển thị đơn đã bị hủy và chuyển sang trang Hoạt động + gửi thông báo tới driver/ passenger

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

1 Actor nhấn vào nút xác nhận hủy đặt xe

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

<b>3.1.8. UC08: Thanh toán </b>

<b>Description </b> Cho phép actor thanh tốn đơn đặt xe với nhiều hình thức

<b>Actor </b>

Passenger

<b>Trigger </b> Actor tại trang đơn đặt xe hiện tại,

<b>nhấn vào nút thanh toán Pre-condition </b> Trạng thái đơn là “đã hoàn thành”

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

<b>Error situations </b> 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

<b>System state in error situations </b>

1. Hiển thị thông báo: MS17 2.Hiển thị thông báo: MS15

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>Actor System Main Flow: Thanh tốn thành cơng bằng ví grab </b>

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

2 Hệ thống chuyển sang màn hình chọn hình thức thanh tốn

3 Chọn hình thức thanh tốn bằng ví grab

4 Hệ thống hiển thị trang xác nhận thanh toán với 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

<b>Main Flow: Thanh tốn thành cơng bằng third-party payment method </b>

1 Chọn hình thức thanh toán bằng 1 ứng dụng thứ 3

2 Hệ thống hiển thị trang xác nhận thanh toán với 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 tốn bằng ví

grab

4 Hệ thống hiển thị trang xác nhận thanh toán với số tiền cần thanh toán

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

<b>Alternative Flow: Thanh tốn khơng thành cơng </b>

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

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

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

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

<b>Actor </b>

Passenger/ Driver

<b>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 </b> Actor đã đăng nhập với role tương ứng

<b>Post condition </b> 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

<b>Error situations </b> 1. Lỗi kết nối

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

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

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

<b>System state in error situations </b>

1. Hiển thị thông báo: MS15 2.Hiển thị thông báo: MS02 3.Hiển thị thông báo: MS07

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

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

4 Hệ thống trở lại trang Tài khoản và hiển thị thông tin mới được thay đổi

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

1 Actor nhập thông tin muốn thay đổi và nhấn nút lưu

4 Hệ thống hiển thị thông báo MS16

<b>3.1.10. UC10: Đăng xuất </b>

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

<b>Actor </b>

Passenger/ Driver

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

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

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

<b>Error situations </b> 1. Hệ thống đang bảo trì 2.Mất kết nối internet

<b>System state in error situations </b>

1. Hiển thị thông báo: MS01 2.Hiển thị thông báo: MS02

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>Activities </b>

<b>Main Flow: Đăng xuất thành công </b>

1 Tại trang chỉnh sửa thông tin cá nhân, bấm vào nút đăng xuất

2 Hệ thống chuyển sang màn hình đăng nhập

<b>Alternative Flow: Đăng xuất khơng thành công </b>

1 Tại trang chỉnh sửa thông tin cá nhân, bấm vào nút đăng xuất

2 Hệ thống hiển thị thông báo lỗi MS15

<b>3.1.11. UC11: Xem lịch sử đặt xe </b>

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

<b>Actor </b>

Passenger

<b>Trigger </b> Actor tại trang default, nhấn vào

<b>trang Hoạt động Pre-condition </b> Actor đã đăng nhập với role tương ứng

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

<b>Error situations </b> 1. Lỗi kết nối

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

1 Tại trang default, Actor nhấn vào trang

<b>Hoạt động </b>

2 <b>Hệ thống chuyển sang trang Hoạt động và hiển </b>

thị Lịch sử đặt xe của Actor

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

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

1 Tại trang default, Actor nhấn vào trang

<b>Hoạt động </b>

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

<b>3.1.12. UC12: Nhận đơn thủ công </b>

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

<b>Actor </b>

Driver

<b>Trigger </b> Actor tại trang danh sách các đơn

<b>hiện tại, nhấn vào nút nhận đơn Pre-condition </b> Actor đã đăng nhập với role tương ứng

<b>Post condition </b> Hiển thị thông tin đơn đặt

<b>Error situations </b> 1. Đơn đã bị hủy 2. Lỗi kết nối

<b>System state in error situations </b>

1. Hiển thị thông báo: MS17 2.Hiển thị thông báo: MS15

<b>Activities </b>

<b>Main Flow: Nhận đơn thủ công thành công </b>

1 Tại trang các đơn hiện tại, Actor nhấn vào nút nhận đơn

2 <b>Hệ thống trả về giá trị “ACCEPTED” cho UC04-Phân tài xế và trả về thông tin chuyến đi </b>

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

1 Tại trang các đơn hiện tại, Actor nhấn vào nút nhận đơn

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

<b>3.1.13. UC13: Nhận đơn tự động </b>

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

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>Actor </b>

Driver

<b>Trigger </b> Actor bật chế độ nhận đơn tự động

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

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

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

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

về thông tin chuyến đi

<b>3.1.14. UC14: Xác nhận hoàn thành đơn </b>

<b>Name </b> Xác nhận hoàn thành đơn <b>Code </b> UC14

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

<b>Actor </b>

Driver

<b>Trigger Sau khi UC04-Phân tài xế thực hiện </b>

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

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

<b>Post condition </b> Hệ thống hiển thị thơng tin đơn là “đã hồn thành”

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

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

1 <b>Sau khi UC04-Phân tài xế thực hiện </b>

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

2 Hệ thống chuyển sang trang hiển thị thơng tin đơn đã hồn thành ở giao diện của driver + gửi thông báo MS18 ở giao diện của passenger

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

1 <b>Sau khi UC04-Phân tài xế thực hiện </b>

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

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

<b>3.1.15. UC15: Nhắn tin </b>

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

<b>Actor </b>

Passenger, Driver

<b>Trigger </b> Sau khi hệ thống thực hiện thành

<b>công UC03-Đặt xe, actor chọn mục </b>

nhắn tin

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

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

<b>Error situations </b> 1. Tin nhắn khơng hợp lệ

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

<b>System state in error situations </b>

1. Hiển thị thông báo: MS20 2. Hiển thị thông báo: MS21

<b>Activities </b>

<b>Main Flow: Nhắn tin thành công </b>

1 Sau khi hệ thống thực hiện thành công

<b>UC03-Đặt xe, actor chọn mục nhắn tin </b>

với tài xế

2 Hệ thống chuyển sang phiên trò chuyện riêng

3 Actor nhập nội dung muốn gửi đi và nhấn gửi

4 Hệ thống hiển thị tin nhắn đã được gửi đi

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

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

1 Actor nhập nội dung muốn gửi đi và nhấn gửi

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

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

1 Actor nhập nội dung muốn gửi đi và nhấn gửi

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

<b>3.1.16. UC16: Đổi mã khuyến mãi </b>

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

<b>Actor </b>

Passenger

<b>Trigger </b> Actor tại trang default, nhấn chọn mục Grab Reward

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

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

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

<b>Main Flow: Đổi mã thành công </b>

1 Actor tại trang default, nhấn chọn mục Grab Reward

2 Hệ thống chuyển sang trang đổi mã khuyến mãi

3 Actor chọn mã khuyến mãi mong

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

1 Actor chọn mã khuyến mãi mong muốn và nhấn nút đổi

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

<b>3.1.17. UC17: Tính giá cước </b>

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

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

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

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

<b>Main Flow: Tính giá cước thành cơng </b>

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

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

2 Hệ thống hiển thị cước, điểm đón, điểm đến lên trang xác nhận đặt xe

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

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

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

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

<b>3.1.18. UC18: Đánh giá chuyến đi </b>

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

</div>

×