Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh kinh tế - xã hội phát triển và hội nhập kinh tế quốc tế gia tăng, nhu cầu di chuyển, giao thương, làm việc cũng như thăm quan, thăm viếng của người dân giữa các vùng miền ngày càng có xu hướng tăng cao. Sự dịch chuyển cơ cấu kinh tế và lực lượng lao động dẫn đến sự biến động lớn về nhu cầu vận chuyển hành khách liên tỉnh. Tuy nhiên, trên thực tế, đa số các doanh nghiệp và hãng xe vận tải hành khách tại Việt Nam vẫn đang áp dụng mô hình quản lý, tổ chức bán vé theo phương thức truyền thống.
Phương thức vận hành thủ công này bộc lộ nhiều bất cập nghiêm trọng đối với cả phía đơn vị vận tải lẫn hành khách:
- Đối với hành khách: Thường xuyên xảy ra tình trạng quá tải, chen lấn xếp hàng tại các bến xe để mua vé, đặc biệt vào các đợt cao điểm lễ, Tết. Nhiều hành khách phải chờ đợi nhiều giờ hoặc nhiều ngày nhưng vẫn không mua được vé do hết chỗ, gây lãng phí thời gian và bức xúc xã hội.
- Đối với doanh nghiệp vận tải: Quy trình quản lý thủ công gây khó khăn trong việc kiểm soát số lượng vé bán ra, quản lý thông tin khách hàng, bố trí nhân sự (tài xế, phụ xe, nhân viên bán vé), theo dõi phương tiện, cập nhật các trạm dừng/bến đỗ đón trả khách và điều chỉnh lịch trình khi xảy ra sự cố đột xuất. Việc tính toán doanh thu, thiết lập chính sách giá vé và lập báo cáo quản trị gặp nhiều sai sót và chậm trễ.
Nhận thức được các thách thức thực tiễn trên cùng sự phổ cập của mạng Internet và máy tính cá nhân đến từng hộ gia đình, nhóm tác giả gồm sinh viên Nguyễn Văn Thanh (Mã SV: CT050446) và Phạm Song Toàn (Mã SV: CT050449) thuộc Khoa Công nghệ thông tin – Học viện Kỹ thuật Mật mã đã thực hiện đề tài: "Phân tích thiết kế và xây dựng hệ thống thông tin quản lý xe khách" (Bài tập lớn môn Phân tích Thiết kế hệ thống, năm 2023).
Mục tiêu và nhiệm vụ nghiên cứu
Đề tài xác định các mục tiêu và nhiệm vụ trọng tâm sau:
- Xây dựng một hệ thống website cho phép khách hàng tra cứu thông tin và thực hiện đặt vé xe khách trực tuyến 24/7.
- Hỗ trợ nhân viên nhà xe dễ dàng thực hiện các nghiệp vụ tiếp nhận đặt vé, chỉnh sửa thông tin vé, kiểm tra trạng thái vé và duyệt thanh toán cho khách hàng.
- Thiết lập cơ chế phân quyền người dùng chặt chẽ giữa các nhóm tác nhân (khách hàng, nhân viên, cán bộ quản lý), bảo đảm tính an toàn và bảo mật dữ liệu giao dịch.
- Tự động hóa công tác lập báo cáo, thống kê đa chiều (doanh thu, lượng vé, lượt khách, lượt xe, tuyến đường) phục vụ công tác điều hành của ban lãnh đạo.
- Quản lý toàn diện các nguồn lực và dữ liệu vận tải: thông tin nhân viên, đội ngũ xe khách, tuyến đường, điểm đón/trả khách, lịch trình chạy và chính sách giá.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý phương tiện, lịch trình, nhân sự, bán vé và điều hành hoạt động vận tải hành khách đường bộ.
- Phạm vi dự án:
- Hệ thống được thiết kế hoàn toàn mới (không kế thừa từ các sản phẩm có sẵn), phục vụ mô hình vận hành của một số công ty vận tải hành khách khảo sát thực tế tại khu vực Hà Nội.
- Về mặt công nghệ, hệ thống được xây dựng trên nền tảng Webform và sử dụng công nghệ ASP kết hợp với cơ sở dữ liệu quan hệ.
Cơ sở lý thuyết và phương pháp tiếp cận
Đề tài áp dụng quy trình phân tích và thiết kế hệ thống hướng đối tượng chuẩn hóa, kết hợp chặt chẽ giữa khảo sát thực địa và mô hình hóa hình thức.
Phương pháp nghiên cứu thực tế
- Khảo sát thực tế: Tiến hành tìm hiểu, khảo sát quy trình quản lý, bán vé và điều phối xe trực tiếp tại các bến xe và một số doanh nghiệp vận tải hành khách trên địa bàn Hà Nội.
- Phân tích nghiệp vụ: Nghiên cứu rõ các quy tắc nghiệp vụ, quy trình quản lý thông tin khách hàng, nhân viên, quản lý phương tiện, quy trình đặt chỗ - thanh toán và xuất báo cáo.
Phương pháp phân tích và mô hình hóa hệ thống
- Mô hình hóa chức năng và hành vi: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng hệ thống biểu đồ:
- Biểu đồ ca sử dụng (Use Case Diagram): Xác định các gói chức năng và ranh giới nghiệp vụ của từng tác nhân.
- Đặc tả Use Case (Use Case Specification): Mô tả chi tiết điều kiện tiên quyết, luồng sự kiện chính và các luồng sự kiện rẽ nhánh.
- Biểu đồ trình tự (Sequence Diagram): Thể hiện luồng tương tác giữa các đối tượng theo trục thời gian cho từng chức năng.
- Biểu đồ hoạt động (Activity Diagram): Trực quan hóa luồng xử lý công việc từ trạng thái bắt đầu đến trạng thái kết thúc của các tác vụ thêm, sửa, xóa, tìm kiếm, thống kê.
- Phương pháp trích danh từ xác định lớp đối tượng: Nhóm tác giả áp dụng kỹ thuật trích xuất danh từ từ bản mô tả bài toán và yêu cầu nghiệp vụ, sau đó tiến hành sàng lọc, loại bỏ các lớp dư thừa để xác định tập hợp các lớp thực thể trong hệ thống.
- Thiết kế cơ sở dữ liệu: Ánh xạ các quan hệ lớp hướng đối tượng (1-1, 1-nhiều, nhiều-nhiều) sang mô hình dữ liệu quan hệ (Relational Data Model), chuẩn hóa các trường thuộc tính, khóa chính (PK) và khóa ngoại (FK).
Thiết kế và triển khai hệ thống
Phân quyền và mô hình tác nhân (Actors)
Hệ thống xác định 3 tác nhân chính tham gia tương tác với các quyền hạn và trách nhiệm được phân định rõ ràng:
| STT |
Tác nhân (Actor) |
Thuộc tính định danh |
Quyền hạn và chức năng nghiệp vụ |
| 1 |
Khách hàng |
Mã khách hàng, họ tên, số điện thoại |
- Tìm kiếm, xem thông tin lịch trình xe chạy. - Đặt vé, hủy vé, thanh toán (trực tuyến hoặc trả sau). - Sửa thông tin vé đã đặt. |
| 2 |
Nhân viên |
Mã nhân viên, họ tên, địa chỉ, số điện thoại, giới tính, năm sinh |
- Bao gồm các chức danh: tài xế, phụ xe, nhân viên bán vé, nhân viên CSKH. - Đặt vé, hủy vé, sửa thông tin vé, kiểm tra và xác nhận thanh toán vé cho khách hàng. - Tạo và xuất các báo cáo thống kê phục vụ công việc. |
| 3 |
Quản lý |
Tài khoản quản trị hệ thống, phân quyền |
- Cấp, hủy, phân quyền tài khoản truy cập hệ thống. - Quản lý danh mục: điểm đến, vị trí, chặng đường, trạm nghỉ, bến xe, tuyến đường. - Quản trị nhân viên, khách hàng, xe khách, lịch trình. - Xem thống kê tổng hợp toàn diện. - Cấu hình, bảo trì và nâng cấp hệ thống. |
Cấu trúc các gói Use Case và chức năng hệ thống
Hệ thống được chia thành 5 gói Use Case chính:
- Gói Đăng ký, đăng nhập: UC Đăng ký, UC Đăng nhập, UC Phân quyền.
- Gói Quản lý: UC Quản lý thông tin khách hàng, UC Quản lý vé, UC Quản lý thông tin tuyến đường, UC Quản lý thông tin nhân viên, UC Quản lý lịch trình, UC Quản lý xe, UC Quản lý địa điểm, UC Quản lý việc đặt vé và thanh toán.
- Gói Báo cáo, thống kê: UC Thống kê doanh thu, UC Thống kê lượt khách, UC Thống kê lượt xe, UC Thống kê về vé, UC Thống kê về tuyến đường (hỗ trợ lọc theo mốc thời gian ngày, tháng, quý).
- Gói Đặt vé: UC Đặt vé (chọn tuyến, chuyến, số lượng vé, gửi email xác nhận), UC Hủy vé, UC Chỉnh sửa thông tin vé, UC Thanh toán.
- Gói Tìm kiếm: UC Tìm kiếm vé, UC Tìm kiếm nhân viên, UC Tìm kiếm khách hàng, UC Tìm kiếm tuyến đường/lịch trình, UC Tìm kiếm địa điểm, UC Tìm kiếm xe.
Mô hình dữ liệu và quan hệ giữa các lớp
Qua phương pháp trích danh từ, hệ thống xác định 13 lớp đối tượng cốt lõi: Khách hàng, Nhân viên, Loại nhân viên, Tài khoản, Loại tài khoản, Vé, Loại vé, Xe khách, Loại xe, Lịch trình, Địa điểm, Tuyến, Ghế.
Mối quan hệ giữa các thực thể dữ liệu được quy định cụ thể:
- Loại nhân viên – Nhân viên: Quan hệ một - nhiều ($1 - N$). Mỗi loại nhân viên (tài xế, phụ xe, bán vé, CSKH, quản lý) gồm nhiều nhân viên; mỗi nhân viên chỉ thuộc một loại nhân viên.
- Nhân viên – Tài khoản: Mỗi nhân viên sở hữu một tài khoản để đăng nhập hệ thống. Tài khoản lưu trữ:
username, password, id_nhanvien, id_loaitk, tinhtrang, thoigian (thời gian đăng nhập gần nhất).
- Loại tài khoản – Tài khoản: Quan hệ một - nhiều ($1 - N$). Bảng Loại tài khoản chứa
id_loaitk, tenloaitk, phanquyen.
- Khách hàng – Vé: Quan hệ một - nhiều ($1 - N$). Một khách hàng có thể mua nhiều vé; mỗi vé gắn liền với một khách hàng.
- Ghế ngồi – Vé: Quan hệ một - một ($1 - 1$). Mỗi ghế tương ứng với một vé cụ thể kèm trạng thái ghế.
- Loại vé – Vé & Xe khách: Bảng Loại vé chứa
id_loaive, id_xe, id_tuyen. Một loại vé áp dụng cho nhiều xe; mỗi xe chỉ có một loại vé; một loại vé có nhiều vé bán ra.
- Địa điểm – Tuyến: Quan hệ nhiều - nhiều ($N - N$). Một địa điểm có nhiều tuyến đường đi qua và một tuyến đường đi qua nhiều địa điểm đón/trả.
- Tuyến – Lịch trình: Quan hệ một - nhiều ($1 - N$). Mỗi tuyến đường (gồm điểm đầu, điểm cuối, độ dài, tình trạng) có nhiều lịch trình xe chạy.
- Lịch trình – Xe khách: Quan hệ nhiều - nhiều ($N - N$). Một lịch trình có nhiều xe chạy và một xe khách có thể tham gia nhiều lịch trình chạy khác nhau theo thời gian.
- Xe khách: Lưu trữ các thuộc tính:
id_xe, id_loaixe, id_lichtrinh, hangxe, tenxe, mauxe, bienso, ngaythem, tinhtrang.
Cấu trúc lược đồ bảng dữ liệu đại diện cho thực thể Khách hàng sau khi ánh xạ:
| Tên trường (Field Name) |
Kiểu dữ liệu (Data Type) |
Kích thước (Field Size) |
Chỉ mục (Index) |
Mô tả (Description) |
id_khachhang |
Int |
Mặc định |
PK (Primary Key) |
Mã khách hàng |
id_ve |
Int |
Mặc định |
FK (Foreign Key) |
Mã vé |
Tenkh |
Varchar |
30 |
None |
Tên khách hàng |
Dienthoai |
Varchar |
15 |
None |
Số điện thoại khách hàng |
Nội dung chính theo từng chương
Chương I: Khảo sát thực trạng
Chương I tập trung làm rõ cơ sở thực tiễn và phát biểu bài toán:
- Phân tích những khó khăn của phương thức bán vé truyền thống tại các bến xe Hà Nội: tình trạng xếp hàng chen lấn, mất thời gian, thiếu thông tin minh bạch về chuyến xe.
- Chỉ ra các điểm nghẽn trong quản lý nội bộ doanh nghiệp vận tải: điều phối lịch trình xe bị động khi có sự cố, khó quản lý doanh thu theo thời gian thực, thiếu công cụ cập nhật lộ trình, trạm dừng và định biên nhân sự.
- Phát biểu yêu cầu bài toán: xây dựng phần mềm quản lý và website đặt vé trực tuyến 24/7 nhằm nâng cao năng lực cạnh tranh và chất lượng phục vụ của hãng xe.
Chương II: Phân tích chức năng hệ thống
Chương II trình bày toàn bộ tiến trình mô hình hóa hệ thống bằng UML:
- Xác định và định nghĩa chi tiết quyền hạn của 3 Actor: Khách hàng, Nhân viên, Quản lý.
- Thiết lập 5 gói Use Case và đặc tả chi tiết từng Use Case cụ thể (Đăng ký, Đăng nhập, Quản lý xe, Quản lý nhân viên, Quản lý khách hàng, Quản lý vé, Quản lý tuyến đường, Quản lý địa điểm, Quản lý lịch trình, Tìm kiếm, Thống kê, Đặt vé) bao gồm luồng sự kiện chính, các luồng rẽ nhánh và điều kiện tiên quyết.
- Xác định biểu đồ lớp nghiệp vụ thông qua phương pháp trích danh từ.
- Xây dựng hệ thống 12 biểu đồ trình tự (Sequence Diagrams) và hệ thống biểu đồ hoạt động (Activity Diagrams) cho các thao tác Thêm, Sửa, Xóa, Tìm kiếm, Đặt vé và Thống kê.
Chương III: Phân tích hệ thống về dữ liệu
Chương III đi sâu vào thiết kế cấu trúc dữ liệu:
- Phân tích chi tiết ngữ nghĩa và ràng buộc mối quan hệ giữa 13 lớp thực thể đối tượng.
- Thực hiện ánh xạ từ quan hệ lớp sang mô hình cơ sở dữ liệu quan hệ.
- Định nghĩa chi tiết từ điển dữ liệu (tên trường, kiểu dữ liệu, kích thước, khóa chính/ngoại, mô tả chức năng) cho các bảng dữ liệu: Khách hàng, Lịch trình, Loại nhân viên, Xe khách, Loại tài khoản, v.v.
Chương IV: Demo phần mềm
Chương IV trình bày kết quả hiện thực hóa hệ thống thành 2 phân hệ giao diện:
- Phân hệ Phần mềm Quản lý xe khách:
- Tổng quan phần mềm quản lý: Giao diện làm việc tập trung cho cán bộ quản lý và nhân viên.
- Chức năng Đăng nhập: Xác thực tài khoản và chuyển hướng theo phân quyền.
- Chức năng Đặt vé xe & Quản lý vé: Cho phép nhân viên tiếp nhận đặt vé tại quầy, cập nhật, hủy vé hoặc xác nhận thanh toán.
- Chức năng Quản lý tuyến đường & Quản lý địa điểm: Thêm, sửa, xóa thông tin lộ trình, cự ly và các trạm dừng.
- Chức năng Quản lý xe khách & Quản lý lịch trình: Thiết lập xe chạy, kiểm soát biển số, mẫu xe, tình trạng xe và phân bổ thời gian xuất bến.
- Chức năng Quản trị người dùng: Quản lý thông tin nhân viên và cấp phát tài khoản hệ thống.
- Thống kê chung: Bảng điều khiển trực quan tổng hợp doanh thu, lượng khách, lượng vé bán ra.
- Phân hệ Website đặt vé trực tuyến:
- Tổng quan Website: Giao diện công cộng phục vụ hành khách truy cập qua trình duyệt.
- Chức năng Tìm kiếm đặt vé: Cho phép lọc thông minh theo điểm đi – điểm đến, ngày chạy và giờ xuất bến.
- Chức năng Đặt vé xe: Khách hàng trực tiếp chọn vị trí ghế, nhập thông tin liên hệ cá nhân, lựa chọn hình thức thanh toán và nhận email xác nhận đặt vé.
Kết quả và đóng góp
Kết quả đạt được
- Hoàn thiện bộ hồ sơ phân tích thiết kế: Xây dựng đầy đủ các mô hình phân tích chức năng (Use Case, Sequence Diagram, Activity Diagram) và mô hình dữ liệu (Class Diagram, Data Dictionary) theo chuẩn hướng đối tượng.
- Xây dựng thành công ứng dụng thực nghiệm: Phát triển hoàn chỉnh 2 phân hệ trên nền tảng ASP Webform bao gồm Phần mềm quản trị nghiệp vụ cho nhà xe và Website đặt vé trực tuyến phục vụ hành khách.
- Đáp ứng các tiêu chuẩn chất lượng đã đề ra:
- Tính đúng đắn: Vận hành chính xác các quy trình đặt vé, hủy vé, duyệt thanh toán và phân quyền.
- Tính khoa học: Cấu trúc CSDL được thiết kế hợp lý, tối ưu hóa tốc độ truy vấn và tiết kiệm tài nguyên lưu trữ.
- Tính tin cậy: Đảm bảo tính an toàn dữ liệu trong các giao dịch đặt và hủy vé.
- Tính thích nghi: Khả năng tương thích và hoạt động ổn định trên nhiều môi trường hệ điều hành khác nhau.
Đóng góp thực tiễn
- Đóng góp một giải pháp phần mềm chuyển đổi số quy trình quản lý vận tải hành khách, thay thế cho mô hình ghi chép sổ sách và bán vé truyền thống.
- Cung cấp kênh đặt vé trực tuyến minh bạch, giúp hành khách chủ động tra cứu lịch trình và mua vé mọi lúc mọi nơi mà không cần đến trực tiếp bến xe.
- Giúp doanh nghiệp vận tải tối ưu hóa việc phân bổ phương tiện, lịch trình, quản lý nhân sự chặt chẽ và theo dõi doanh thu kịp thời.
Hạn chế và hướng phát triển
Dựa trên phạm vi nghiên cứu và nội dung được trình bày trong tài liệu:
- Hạn chế: Hệ thống được thiết kế và khảo sát dựa trên mô hình của một số công ty vận tải tại khu vực Hà Nội trên nền tảng ASP Webform truyền thống, chưa đề cập đến việc tích hợp các cổng thanh toán điện tử tự động của bên thứ ba qua API hoặc ứng dụng di động dành riêng cho thiết bị thông minh.
- Hướng phát triển: Nghiên cứu mở rộng tích hợp thanh toán trực tuyến qua các ví điện tử và cổng thanh toán quốc tế; phát triển phiên bản ứng dụng di động (Mobile App) dành riêng cho tài xế/hành khách; tích hợp hệ thống định vị GPS để theo dõi vị trí thực tế của xe khách theo thời gian thực trên lịch trình.
Giá trị tham khảo
Tài liệu bài tập lớn môn Phân tích và Thiết kế hệ thống này có giá trị tham khảo hữu ích đối với:
- Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm: Là tài liệu mẫu trực quan về cách triển khai một bài tập lớn hoặc đồ án chuyên ngành theo đúng quy trình chuẩn: từ khảo sát hiện trạng, phân tích Use Case, mô hình hóa tương tác (Sequence/Activity) đến thiết kế CSDL và demo giao diện.
- Các nhóm phát triển phần mềm quản lý vận tải: Tham khảo cấu trúc quan hệ thực thể (Data Model) giữa các đối tượng phức tạp trong ngành vận tải xe khách như: Tuyến đường, Địa điểm dừng, Lịch trình chạy, Xe khách, Loại vé và Ghế ngồi.
Câu hỏi thường gặp
1. Hệ thống phân chia quyền hạn cho những nhóm tác nhân (Actor) nào?
Hệ thống xác định 3 nhóm tác nhân chính:
- Khách hàng: Tìm kiếm lịch trình, đặt vé, hủy vé, sửa thông tin vé và thực hiện thanh toán.
- Nhân viên (tài xế, phụ xe, bán vé, CSKH): Đặt, sửa, hủy và kiểm tra vé cho toàn bộ khách hàng; lập các báo cáo theo nhiệm vụ.
- Quản lý: Cấp phát/phân quyền tài khoản; quản trị danh mục xe, tuyến đường, địa điểm đón trả, lịch trình, nhân viên, khách hàng; xem thống kê doanh thu toàn diện và cấu hình hệ thống.
2. Công nghệ và nền tảng chính được nhóm tác giả lựa chọn để xây dựng hệ thống là gì?
Hệ thống được thiết kế hoàn toàn mới và xây dựng trên nền tảng Webform, sử dụng công nghệ lập trình ASP kết hợp cùng hệ quản trị cơ sở dữ liệu quan hệ.
3. Nhóm tác giả sử dụng phương pháp nào để xác định các lớp đối tượng từ yêu cầu bài toán?
Nhóm tác giả sử dụng phương pháp trích danh từ từ bản mô tả bài toán và yêu cầu nghiệp vụ, sau đó loại bỏ các lớp không cần thiết để xác định 13 lớp thực thể: Khách hàng, Nhân viên, Loại nhân viên, Tài khoản, Loại tài khoản, Vé, Loại vé, Xe khách, Loại xe, Lịch trình, Địa điểm, Tuyến, Ghế.
4. Bảng dữ liệu Khách hàng trong cơ sở dữ liệu gồm những trường thông tin nào?
Theo thiết kế ánh xạ từ lược đồ lớp sang bảng CSDL, bảng Khách hàng gồm 4 trường thuộc tính:
id_khachhang (Kiểu Int, Khóa chính PK): Mã định danh khách hàng.
id_ve (Kiểu Int, Khóa ngoại FK): Mã vé liên kết.
Tenkh (Kiểu Varchar 30): Họ và tên khách hàng.
Dienthoai (Kiểu Varchar 15): Số điện thoại liên hệ của khách hàng.
5. Quy trình xử lý của Use Case Đặt vé trực tuyến dành cho khách hàng diễn ra như thế nào?
Quy trình gồm 8 bước tuần tự: (1) Khách hàng truy cập website; (2) Nhập điểm đi, điểm đến, ngày giờ, số lượng vé; (3) Hệ thống hiển thị danh sách chuyến xe phù hợp; (4) Khách hàng chọn chuyến và nhập thông tin liên lạc; (5) Hệ thống xác nhận thông tin và yêu cầu thanh toán; (6) Khách hàng chọn phương thức thanh toán; (7) Hệ thống thông báo đặt vé thành công và gửi email xác nhận; (8) Kết thúc Use Case.
Kết luận
Bài tập lớn "Phân tích thiết kế và xây dựng hệ thống thông tin quản lý xe khách" của nhóm sinh viên Nguyễn Văn Thanh và Phạm Song Toàn (Học viện Kỹ thuật Mật mã) đã giải quyết trọn vẹn bài toán chuyển đổi số nghiệp vụ vận tải hành khách đường bộ. Đề tài áp dụng nghiêm ngặt phương pháp phân tích hướng đối tượng UML để mô hình hóa toàn diện chức năng, luồng tương tác và kiến trúc dữ liệu 13 thực thể của hệ thống. Sản phẩm phần mềm thực nghiệm gồm phân hệ quản trị và website đặt vé trực tuyến trên nền tảng ASP Webform đã hiện thực hóa thành công các mục tiêu đặt ra, mang lại giá trị thực tiễn và tính ứng dụng cao cho công tác quản lý vận tải hành khách.