5) Đặc tả Use case
5.10. Điều khiển thiết bị
Hình 12. Biểu đồ hoạt động ca sử dụng điều khiển thiết bị
Mô tả:
Người dùng sử dụng chức năng điều khiển để điều khiển thiết bị đi từ địa điểm này đến địa điểm kia
Điều kiện kích hoạt ca sử dụng:
Người dùng muốn điều khiển thiết bị của mình
Tiền điều kiện:
Người dùng đã đăng ký thành công thiết bị của mình trên hệ thống
Thiết bị được kết nối internet
Hậu điều kiện:
Người dùng điều khiển thiết bị từ điểm bắt đầu là vị trí của xe đến điểm đến theo mong muốn của mình
Hệ thống ghi nhận hành trình của xe và thông báo kết thúc hành trình khi xe đến điểm dừng
Các luồng sự kiện:
Luồng cơ bản:
1. Ở giao diện chính của ứng dụng, người dùng chọn thẻ điều khiển xe. 2. Người dùng chọn thiết bị muốn sử dụng và nhập điểm đến
3. Sau khi chọn xong, người dùng ấn vào nút xem
4. Hệ thống sẽ cung cấp danh sách kết quả các chuyến đi sắp xếp theo thứ tự thời gian kết thúc hành trình từ nhanh nhất đến lâu nhất. Mỗi kết quả sẽ cung cấp 4 thông tin gồm: thời gian dự tính kết thúc hành trình, tổng quãng đường, thời gian khởi hành, tình trạng giao thông lúc đó
5. Người dùng chọn chuyến phù hợp trong danh sách kết quả, sau đó bấm nút bắt đầu
6. Hệ thống chuyển sang Use case theo dõi thiết bị để người dùng có thể theo dõi chi tiết hành trình của xe
Luồng thay thế:
2.1. Người dùng sử dụng Use case tìm kiếm thiết bị. Sau khi tìm được thiết bị chọn lệnh điều khiển xe
2.2 Hệ thống sẽ hiển thị giao diện điều khiển xe với bản đồ để người dùng có thể chọn vị trí điểm đến ngay trên bản đồ
Use case tiếp tục thực hiện các bước tiếp theo
Luồng ngoại lệ:
1.1e. Người dùng thoát khỏi chế độ điều khiển xe
1.2e Người dùng chọn thiết bị đang thực hiện một hành trình khác. Hệ thống sẽ thông báo “Thiết bị này đang thực hiện hành trình khác” 2e. Hệ thống thông báo “Không tìm được vị trí mà người dùng nhập” 3.1e. Nếu điểm đến chưa được chọn, hệ thống sẽ thông báo "Không có vị trí của địa điểm kết thúc".
5e. Người dùng chọn hành trình nhưng chưa chọn bắt đầu khởi hành đã thoát khỏi chế độ điều khiển xe
Business rules: Không có Yêu cầu phi chức năng:
Vị trí xe di chuyển phải ở thời gian thực
Extension point: Không có 5.11. Thống kê
Hình 13. Biểu đồ hoạt động ca sử dụng thống kê
Mô tả:
Quản trị viên muốn tổng hợp thông tin thiết bị và người dùng
Các tác nhân: Quản trị viên, hệ thống Điều kiện kích hoạt ca sử dụng:
Quản trị viên chọn lệnh thống kê dữ liệu
Quản trị viên đăng nhập hệ thống thành công
Thiết bị kết nối internet
Hậu điều kiện:
Quản trị viên lấy được bảng thống kê thành công
Hệ thống hiển thị các thống kê theo quản trị viên
Các luồng sự kiện:
Luồng cơ bản:
1. Quản trị viên chọn lệnh thống kê dữ liệu
2. Quản trị viên chọn mốc thời gian muốn thống kê: tháng/ quý/ năm
3. Hệ thống hiển thị giao diện các lựa chọn để quản trị viên chọn các thông tin cần thiết ví dụ như thống kê xe hay thống kê người dùng hoặc thống kê doanh thu
4. Hệ thống hiển thị bảng thống kê tổng số lượng xe/ người dùng/ doanh thu theo tháng/ quý/ năm
Luồng thay thế: Không có
Luồng ngoại lệ: Không có
Business rules: Không có
Yêu cầu phi chức năng: Không có Extension point: Không có
II. PHÂN TÍCH HỆ THỐNG1) Phân tích kiến trúc 1) Phân tích kiến trúc
1.1. Thành phần cấp cao và sự phụ thuộc
Hình trên mô tả tổ chức cấp cao của hệ thống phần mềm. Hệ thống bao gồm ba lớp:
Tầng Ứng dụng (Application): chứa các yếu tố thiết kế cụ thể cho từng trường hợp sử dụng của hệ thống.
Tầng Dịch vụ (Services): bao gồm một số trừu tượng chính và các dịch vụ phổ biến cho tất cả các trường hợp sử dụng.
Tầng Middleware: cung cấp các dịch vụ cho phép giao tiếp và quản lý dữ liệu trên các hệ thống phân tán.
1.2. Key abstraction
Account: Bản ghi về người dùng/quản trị viên. Mỗi tài khoản có một tên
đăng nhập duy nhất, được sử dụng để xác minh người dùng/quản trị viên và cấp cho họ quyền truy cập và sử dụng phần an toàn của hệ thống.
Vehicle: Bản ghi về thông tin của các thiết bị. Mỗi thiết bị được đăng ký
bởi một tài khoản duy nhất và có được phân loại.
History: Lịch sử di chuyển của mỗi thiết bị. Cho biết thiết bị đã từng đi
đến đâu vào thời gian nào.
2) Phân tích Use case
2.1. Biểu đồ tuần tự các Use case 2.1.1. Đăng ký tài khoản
Hình 15. Biểu đồ tuần tự đăng ký tài khoản
2.1.2. Đăng nhập
Hình 18. Biểu đồ tuần tự thay đổi thông tin
Hình 19. Biểu đồ tuần tự đăng ký thiết bị
Hình 20 Biểu đồ tuần tự phê duyệt thiết bị
Hình 21. Biểu đồ tuần tự phê duyệt người dùng
Hình 22. Biểu đồ tuần tự thanh toán
2.1.7. Theo dõi thiết bị
2.1.8.Tìm thiết bị
Hình 24. Biểu đồ tuần tự tìm kiếm thiết bị
Hình 25. Biểu đồ tuần tự xem lịch sử di chuyển của thiết bị
2.1.10. Điều khiển xe
2.1.11. Thống kê
Hình 27. Biểu đồ tuần tự thống kê
2.2. Biểu đồ lớp pha phân tích
VOPC cho chức năng đăng nhập tài khoản
VOPC cho chức năng phê duyệt thiết bị
VOPC cho chức năng thanh toán
VOPC cho chức năng tìm thiết bị
VOPC cho chức năng điều khiển xe
VOPC cho chức năng thống kê
2.3. Ánh xạ từ lớp phân tích tới cơ chế phân tích
Analysis Class Analysis Mechanism(s)
CreateAccountForm Distribution CreateAccountController Distribution
Account Persistency, Security
LoginForm None
LoginControllerForm Distribution VehicleRegistrationForm None
VehicleRegistrationController Distribution
Vehicle Persistency, Security VehicleApproveForm None
VehicleApproveController Distribution UserApproveForm None
UserApproveController Distribution
PaymentForm None
PaymentController Distribution, Error detection /handling /reporting Payment Persistence, Security
TrackingVehicleForm None TrackingVehicleController Distribution FindingVehicleForm None FindingVehicleController Distribution LocationHistoryForm None LocationHistoryController Distribution MapView None MapController Distribution
MapAPISystem Persistency, Security LocationFindingForm None
VehicleStatisticsController Distribution
Statistics None
VehicleStatisticsForm None Đặc điểm cơ chế phân tích
Security
Mức độ chi tiết của thuộc tính: mức thuộc tính
Mức độ chi tiết của người dùng: 3 vai trò - chưa đăng ký, đã đăng ký và quản trị viên.
Các quy tắc bảo mật:
Chỉ người dùng, quản trị viên đã đăng ký mới có thể đăng nhập vào hệ thống.
Chỉ những người dùng đã đăng nhập mới có thể xem và chỉnh sửa hồ sơ của họ.
Chỉ những người dùng đã đăng nhập mới có thể xem vị trí đơn hàng (thiết bị), thay đổi vị trí giao hàng của họ.
Chỉ quản trị viên mới có thể: xem thông tin thiết bị, vị trí, số lượng các thiết bị đang vận chuyển và ở trong kho, hồ sơ người dùng, thêm, sửa, xóa người dùng, thiết bị, xem thống kê chi tiết.
Persistency
Mức độ chi tiết của thuộc tính: Phạm vi kích thước của các đối tượng để duy trì liên tục.
Mức độ chi tiết của người dùng: Số lượng đối tượng cần lưu giữ.
Thời lượng: Đối tượng thường cần được lưu giữ trong bao lâu.
Cơ chế truy xuất: Làm thế nào một đối tượng nhất định được xác định và truy xuất duy nhất?
Tần suất cập nhật: Các đối tượng nhiều hay ít không đổi; chúng có được cập nhật vĩnh viễn không?
Độ tin cậy: Các đối tượng sẽ tồn tại sau sự cố của quy trình; bộ xử lý; hay toàn bộ hệ thống?
III. THIẾT KẾ HỆ THỐNG 1) Làm mịn kiến trúc 1) Làm mịn kiến trúc
1.1. Cải tiến mẫu thiết kế
1.1.1 Xác định các thành phần thiết kế
Analysis class Design element
Account Account, Database subsystem Vehicle Vehicle, Database subsystem MapAPISystem MapAPISystem, Database subsystem
CreateAccountController Map directly to design classes MapController VehicleRegistrationController LoginControllerForm TrackingVehicleController VehicleStatisticsController PaymentController UserApproveController FindingVehicleController LocationHistoryController 1.1.2 Xác định cơ chế thiết kế
Hệ thống con cung cấp hỗ trợ cho CSDL quan hệ được viết bằng SQL. Hệ thống con được thiết kế như sau:
Hình 28. Hệ thống con Cơ sở dữ liệu và các giao diện của nó
1.1.3. Xác định các gói
Mỗi lớp trong phân tích tương ứng với một gói cấp cao trong hệ thống.
Gói ứng dụng có chứa ranh giới và các lớp điều khiển, có trong ứng dụng khách hàng. Nó được chia thành bốn gói phụ, mỗi gói chịu trách nhiệm về một phần khác nhau của ứng dụng:
Lớp con Xác thực xử lý việc tạo và đăng nhập tài khoản.
Lớp con View là việc thực hiện hai trường hợp sử dụng liên quan đến việc xem và tìm kiếm thiết bị không hoạt động. Phần này của ứng dụng có thể được truy cập miễn phí bởi bất cứ ai.
Lớp con Tương tác người dùng chứa các lớp liên quan đến các hành động yêu cầu người dùng đăng nhập: cập nhật hồ sơ và tìm kiếm / chỉnh sửa / báo cáo vị trí thiết bị của mình.
Lớp con Quản trị chứa các tiện ích giúp quản trị viên duy trì tài khoản, quản lý thiết bị và báo cáo. Chỉ Quản trị viên mới có quyền truy cập vào các công cụ này.
Gói Business Services
Gói Dịch vụ Doanh nghiệp cũng chứa hệ thống con CSDL và các giao diện của nó như các lớp thực thể. Những yếu tố này là chung cho tất cả các trường hợp sử dụng.
Gói Middleware bao gồm gói SQL của Java, cung cấp quyền truy cập vào cơ sở dữ liệu và Java Spring framework, cung cấp các dịch vụ mạng.
Gói và phụ thuộc của chúng
Như đã nói ở trên, gói Gói Application phụ thuộc vào gói Business Services, từ đó phụ thuộc vào gói Middleware.
Cơ chế phân
tích Cơ chế thiết kế Cơ chế thực hiện
Persistency RDBMS JDBC
Security Web tokens Java Spring framework Distribution REST API Java Spring framework
2) Mô tả kiến trúc thực thi
4) Thiết kế ca sử dụng
4.1 Thiết kế biểu đồ tuần tự 4.1.1. Đăng ký tài khoản
Hình 29. Biểu đồ tuần tự đăng ký tài khoản
4.1.2. Đăng nhập
Hình 31. Biểu đồ tuần tự xoá tài khoản
Hình 32. Biểu đồ tuần tự thay đổi thông tin
Hình 33. Biểu đồ tuần tự đăng ký thiết bị
4.1.4. Phê duyệt thiết bị
4.1.5. Phê duyệt người dùng
Hình 35. Biểu đồ tuần tự phê duyệt người dùng
Hình 36. Biểu đồ tuần tự thanh toán
4.1.7. Theo dõi thiết bị
Hình 37. Biểu đồ tuần tự theo dõi thiết bị
Hình 38. Biểu đồ tuần tự tìm kiếm thiết bị
4.1.9. Xem lịch sử di chuyển của thiết bị
Hình 39. Biểu đồ tuần tự xem lịch sử di chuyển của thiết bị
Hình 40. Biểu đồ tuần tự điều khiển xe
4.1.11. Thống kê
Hình 41. Biểu đồ tuần tự thống kê
Cách thức làm mịn các lớp tham gia cho từng ca sử dụng được mô tả trong phần 6: Thiết kế Lớp học.
5) Thiết kế hệ thống con5.1. Vehicle Subsystem 5.1. Vehicle Subsystem
Hình 42. Biểu đồ cấu trúc Vehicle SubSystem
Biểu đồ tuần tự trong Vehicle Subsystem
Hàm approveUser()
Hàm trackVehicle()
Hàm VehicleHistory()
5.2. User Subsystem
Hình 43. Biểu đồ cấu trúc User SubSystem
Biểu đồ tuần tự trong User Subsystem
Hàm checkLoginInfo()
Hàm editAccount()
Hàm trackVehicle()
Hàm VehicleHistory()
6) Thiết kế lớp
6.1. Đăng ký tài khoản
6.3. Đăng ký thiết bị
6.4. Phê duyệt thiết bị
6.6. Thanh toán
6.8. Tìm kiếm thiết bị
6.9. Theo dõi lịch sử di chuyển của thiết bị
Chọn điểm đến
Định vị thiết bị
Tìm đường