3.2.1.1. Tổng quan về ứng dụng
Ứng dụng được biểu thị là thành phần Staff Android Application trên mô hình hệ thống (Hình 3.1). Là ứng dụng được cài đặt trên thiết bị Android cố định được cung cấp cho mỗi xe buýt. Ứng dụng này cung cấp cho nhân viên xe buýt cách xác thực người dùng dịch vụ xe buýt một cách tự động thông qua việc quét thẻ NFC mà khách hàng được cấp khi đăng ký làm thẻ xe buýt, cũng như đẩy dữ liệu về vị trí hiện tại của xe buýt lên máy chủ và cung cấp thông tin cá nhân chính nhân viên xe buýt đang trực và người dùng vừa thực hiện giao dịch thông qua thẻ NFC thông qua các dịch vụ web .
Hình 3.3. Mô hình Use Case: Ứng dụng quản lý người dùng dịch vụ xe buýt
Về cơ bản có hai tác nhân chính tác động lên ứng dụng:
- Nhân viên: nhân viên là người khởi động ứng dụng thông qua đăng nhập bằng một trong hai cách: sử dụng thẻ NFC hoặc cung cấp tài khoản và mật khẩu. Nhân viên có thể kiểm tra thông tin cá nhân sơ lược được lưu trên hệ thống thông qua ứng dụng cũng như lịch sử xác nhận giao dịch khách hàng của mình. Sau khi ứng dụng khởi động, nhân viên điều phối, kiểm tra khách hàng thực hiện việc quét thẻ qua thiết bị nhằm xác thực giao dịch. Cũng như phát hiện các xác thực không hợp lệ hoặc gian lận mà tùy vào đó thực hiện báo cáo vi phạm, tạm thời đình chỉ khả năng hoạt động của thẻ thông qua ứng dụng.
- Khách hàng: là tác nhân cần được xác thực thông qua việc quét thẻ qua thiết bị. Khi khách hàng thực hiện công việc quét thẻ, ứng dụng sẽ thực hiện việc xác nhận bằng cách gửi ID thẻ NFC tới các dịch vụ web mà tại đó thực hiện công việc xác nhận khách hàng và thực hiện giao dịch nếu trạng thái thẻ còn hợp lệ để thực hiện thao tác giao dịch. Ứng dụng sẽ nhận kết quả trả về của các webservice đó và thông báo cho nhân viên và khách hàng thông tin của khách hàng (bao gồm ảnh) nếu thẻ có thể xác thực và thông báo giao dịch có được thực hiện thành công hay không.
3.2.1.2. Đặc tả Use Case
3.2.1.2.1. Đăng nhập
- Mô tả: là chức năng cho phép người dùng ứng dụng đăng nhập vào hệ thống bằng thẻ NFC hoặc tài khoản và mật khẩu.
- Tác nhân: người sử dụng.
- Điều kiện trước: Người sử dụng mới khởi động ứng dụng hoặc mới thực hiện đăng xuất và chưa đăng nhập lại.
- Điều kiện sau: Nếu đăng nhập thành công hiển thị giao diện cung cấp thông tin cá nhân cho người dùng. Thông tin tài khoản gửi về được lưu trong cơ sở dữ liệu cục bộ. Nếu không, thông báo người sử dụng lý do.
- Kịch bản ca sử dụng:
1. Ứng dụng hiển thị màn hình đăng nhập, kiểm tra xem thiết bị đã bật chế độ đọc thẻ NFC hay chưa. Nếu chưa, hiển thị cảnh báo yêu cầu thiết bị bật chế độ đọc ghi thẻ NFC với hai tùy chọn:
1.1. Yes: chuyển hướng tới tùy chọn của thiết bị để khởi động chế độ đọc thẻ NFC.
1.2. No: Tiếp tục sử dụng ứng dụng mà không bật chế độ dọc thẻ NFC.
2. Người dùng thông qua thẻ NFC hoặc tài khoản, mật khẩu và chọn nút “Đăng nhập”.
3. Ứng dụng tiền kiểm tra thông tin sau đó gửi và nhận kết quả dịch vụ web để xác nhận.
3.1. Nếu thông tin không hợp lệ thì use case “thông tin đầu vào sai lệnh” được thực hiện.
3.2. Nếu tình trạng kết nối với server là không thể thiết lập thì use case “xử lý không thể kết nối với server” được kích hoạt.
3.3. Nếu phản hồi của dịch vụ web là thành công, thông tin người sử dụng được trả về từ dịch vụ web được lưu trong cơ sở dữ liệu của ứng dụng, ứng dụng chuyển qua giao diện use case “Kiểm tra thông tin cá nhân”.
4. Ứng dụng phản hồi kết quả lên giao diện.
- Yêu cầu phi chức năng: Hệ thống đáp ứng đăng nhập không quá 7 giây.
- Ca sử dụng con:
o Khi hệ thống không thể kết nối tới server, hệ thống thông báo không thể kết nối cho người dử dụng.
o Khi thông tin đầu vào là sai lệch, hệ thống thông báo thông tin không chính xác cho người sử dụng.
Hình 3.4. Use case: "Đăng nhập"
3.2.1.2.2. Đăng xuất
- Mô tả: là chức năng giúp người dùng thông báo kết thúc phiên làm việc với hệ thống.
- Tác nhân: người sử dụng.
- Điều kiện trước: ứng dụng đang chạy và trước đó người sử dụng đã đăng nhập rồi và chưa đăng xuất.
- Điều kiện sau: Đăng xuất thành công hay thất bại đều kích hoạt chức năng đăng nhập, thông tin người dùng được lưu trong cơ sở dữ liệu cục bộ đều bị xóa.
- Kịch bản ca sử dụng:
1. Người sử dụng chọn chức năng đăng xuất từ giao diện ứng dụng.
2. Ứng dụng lấy thông tin người sử dụng từ cơ sở dữ liệu của ứng dụng, thực hiện gửi thông tin người sử dụng lên dịch vụ web thông báo người sử dụng kết thúc pha làm việc.
2.1. Nếu tình trạng kết nối với server là không thể thiết lập thì use case “xử lý không thể kết nối với server” được kích hoạt.
2.2. Nếu tình trạng không tìm thấy thông tin tài khoản từ cơ sở dữ liệu thì use case “không tìm thấy thông tin tài khoản” được thực thi.
3. Ứng dụng thông báo kết quả phản hồi cho người sử dụng và trở lại màn hình đăng nhập.
- Yêu cầu phi chức năng: phản hồi không quá 5 giây.
- Ca sử dụng con:
o “xử lý không thể kết nối với server” : xóa thông tin người dùng trong cơ sở dữ liệu ứng dụng, thông báo cho người sử dụng lỗi kết nối với server.
o “không tìm thấy tài khoản” : thông báo cho người sử dụng việc không tìm thấy thông tin cá nhân trong cơ sở dữ liệu.
Hình 3.5. Use case: "Đăng xuất"
3.2.1.2.3. Kiểm tra thông tin cá nhân`
- Mô tả: chức năng này để hiển thị thông tin sơ bộ (bao gồm ảnh) cho người sử dụng ứng dụng.
- Tác nhân: người sử dụng.
- Điều kiện trước: ứng dụng đang chạy và trong trạng thái đăng nhập thành công.
- Điều kiện sau: hiển thị thông tin người dùng.
- Kịch bản ca sử dụng:
1. Người sử dụng vừa mới đăng nhập thành công hoặc chọn chức năng hiển thị thông tin của mình.
2. Ứng dụng truy xuất đến cơ sở dữ liệu của ứng dụng lấy định danh (ID) của người sử dụng (là một trong những thông tin trả về sau đăng nhập). Gửi thông tin đó đến dịch vụ web nhằm lấy thông tin của người sử dụng:
2.1. Nếu không thể kết nối với server, uses case “xử lý không thể kết nối server” được kích hoạt.
2.2. Nếu thông tin gửi lên chính xác, dịch vụ web trả về thông tin cá nhân và ứng dụng hiển thị thông tin đó lên giao diện.
- Yêu cầu: thông tin phản hồi không quá 5 giây.
- Ca sử dụng con:
o Khi hệ thống không thể kết nối tới server, hệ thống thông báo không thể kết nối cho người dử dụng.
3.2.1.2.4. Kiểm tra lịch sử giao dịch
- Mô tả: Chức năng này thể hiện thông tin về giao dịch mà nhân viên đã thực hiện kiểm tra giao dịch.
- Tác nhân: Người sử dùng (quyền nhân viên).
- Điều kiện trước: ứng dụng đang chạy và trong trạng thái đăng nhập thành công.
- Điều kiện sau: hiển thị danh sách lịch sử giao dịch được đánh theo danh mục: trong ngày: giao dịch được ghi nhận trong ngày, trong tuần: giao dịch được ghi nhận trong tuần của những ngày trước đó, trong tháng: giao dịch được ghi nhận trong tháng của các tuần trước đó.
- Kịch bản ca sử dụng:
1. Người sử dụng chọn chức năng hiển thị thông tin giao dịch của mình.
2. Ứng dụng truy xuất đến cơ sở dữ liệu của ứng dụng lấy định danh (ID) của người sử dụng (là một trong những thông tin trả về sau đăng nhập). Gửi thông tin đó đến dịch vụ web nhằm lấy thông tin của người sử dụng:
2.1. Nếu không thể kết nối với server, uses case “xử lý không thể kết nối server” được kích hoạt.
2.2. Nếu thông tin gửi lên chính xác, dịch vụ web trả về lịch sử giao dịch trog vòng một tháng, ứng dụng phân danh mục rồi hiển thị thông tin đó lên giao diện.
- Yêu cầu: thông tin phản hồi không quá 20 giây.
- Ca sử dụng con:
o Khi hệ thống không thể kết nối tới server, hệ thống thông báo không thể kết nối cho người dử dụng.
Hình 3.7. Use case: "Kiểm tra lịch sử giao dịch"
3.2.1.2.5. Xác thực người dùng
- Mô tả: là chức năng quan trọng, chức năng chính của ứng dụng. Dùng để xác thực và thanh toán không tiếp xúc với người dùng dịch vụ xe buýt.
- Tác nhân: người dùng dịch vụ xe buýt.
- Điều kiện trước: Ứng dụng đang chạy trong trạng thái đã đăng nhập tài khoản quyền nhân viên và thiết bị bật trạng thái đọc NFC.
- Điều kiện sau: Thông báo thông tin người dùng và trạng thái giao dịch( bằng âm thanh và thông điệp hiển thị). Kích hoạt gửi giao dịch nếu trạng thái giao dịch hợp lệ.
- Kịch bản ca sử dụng:
1. Nhân viên chọn chức năng xác thực người dùng. 2. Người dùng quẹt thẻ NFC qua thiết bị.
3. Ứng dụng kiểm tra thẻ có đúng chuẩn để đọc hay không:
3.1. Nếu không, kích hoạt use case “thẻ không thỏa mãn điều kiện giao dịch”. 3.2. Nếu có, lấy định danh từ thẻ (ID) gửi nó lên dịch vụ web, dịch vụ web
thông qua ID sẽ xác thực người dùng:
3.2.1. Nếu xác thực được người dùng thành công, kiểm tra trạng thái giao dịch của thẻ và loại hình giao dịch của thẻ. Thực hiện giao dịch. Và đồng thời trả về thông tin của người sử dụng.
3.2.2. Nếu không thành công thông báo tới ứng dụng việc giao dịch không thành công.
4. Thông qua kết quả trả về của giao dịch từ dịch vụ web, ứng dụng thông báo việc xác nhận không thành công hoặc có thành công bằng âm thanh và thông báo khác nhau. Nếu có thể xác thực và người dùng, trạng thái thẻ có thể giao dịch thì thông báo giao dịch thành công và hiển thị thông tin người sử dụng.
- Yêu cầu phi chức năng: thông tin trả về không quá 5 giây và việc hiển thị ảnh của người dùng không quá 7 giây.
- Ca sử dụng con:
o “Thẻ không thỏa mãn điều kiện giao dịch”:
Nếu không thể xác thực người dùng qua thẻ, không trả về thông tin gì và thông báo không thể giao dịch.
Nếu có thể xác thực người dùng qua thẻ, nhưng trạng thái thẻ không thể giao dịch thì hiển thị thông tin người dùng và thông báo không thể giao dịch.
o Khi hệ thống không thể kết nối tới server, hệ thống thông báo không thể kết nối cho người dử dụng.
Hình 3.8. Use case: "Xác thực người dùng dịch vụ xe buýt"
3.2.1.2.6. Báo cáo vi phạm
- Mô tả: là chức năng báo cáo hành vi gian lận, vi phạm trật tự của người sử dụng dịch vụ xe buýt như: sử dụng thẻ của người khác,…
- Tác nhân: người sử dụng (quyền nhân viên).
- Điều kiện trước: người sử dụng xác nhận thông tin, thực hiện giao dịch bằng việc quẹt thẻ.
- Điều kiện sau: hiển thị thông điệp thành công hay thất bại.
- Kịch bản ca sử dụng:
1. Sau khi người sử dụng được xác nhận, nhân viên phát hiện hành vi gian lận. Và chọn chức năng báo cáo gian lận với người sử dụng này.
2. Ứng dụng lấy định danh người sử dụng gửi thông tin tới dịch vụ web báo cáo vi phạm:
2.1. Nếu không thể kết nối đến server kích hoạt use case “Xử lý khi không thể kết nối server”.
3. Hiển thị thành công hay thất bại của báo cáo vi phạm với người sử dụng.
- Yêu cầu phi chức năng: phản hồi trong vòng 3 giây.
- Ca sử dụng con:
o Khi hệ thống không thể kết nối tới server, hệ thống thông báo không thể kết nối cho người dử dụng.
Hình 3.9. Uses case: "Báo cáo vi phạm" 3.2.1.3. Mô hình lớp phân tích:
Mô hình lớp phân tích được thể hiện ở Hình 3.10. Và được mô tả sơ bộ ở Bảng 3.1.
Hình 3.10. Mô hình lớp phân tích: Ứng dụng quản lý người DVXB
Uses case Tên lớp phân tích Mô tả sơ bộ
Đăng nhập LoginForm Lớp giao diện cho phép người dùng đăng nhập
LoginController Lớp điều khiển việc xác thực đăng nhập từ dịch vụ web
LogoutController Lớp điều khiển việc xác thực đăng xuất từ dịch vụ web
Kiểm tra thông tin cá nhân
InformationForm Lớp giao diện cho phép người dùng xem thông tin
InformationForm Lớp điều khiển việc triết xuất thông tin từ dịch vụ web
Xác thực người dùng
AuthenticationForm Lớp giao diện cho phép nhân viên xác thực người dùng xe buýt
AuthenticationController Lớp điều khiển việc triết xuất thông tin, thực hiện giao dịch từ dịch vụ web
Thông báo vi phạm
ReportController Lớp điều khiển việc thông báo vi phạm tới dịch vụ web
Gửi tọa độ hiện tại
LocationService Lớp điều khiển gửi tọa độ lên server location Kiểm tra
lịch sử giao dịch
HistoryPaymentsForm Lớp giao diện cho phép nhân viên hiển thị thông tin giao dịch mình đã duyệt
HistoryPaymentsControl ler
Lớp điều khiển việc triết giao dịch từ dịch vụ web
UserBean Lớp thực thể chứa thông tin tài khoản (User) UserInformation Lớp thực thể chứa thông tin chi tiết về người
dùng
Payment Lớp thực thể chứa thông tin về giao dịch Location Lớp thực thể chứa thông tin về tọa độ
Bảng 3.1. Các lớp phân tích: Ứng dụng quản lý người dùng DVXB