Bối cảnh và vấn đề nghiên cứu
Trong lĩnh vực vận tải hàng không, các hãng bay luôn phải quản lý và lưu trữ khối lượng cơ sở dữ liệu rất lớn về mạng lưới đường bay, lịch trình và danh sách hành khách. Theo nhóm tác giả, quy trình phân phối và bán vé giữ vai trò trọng yếu trong toàn bộ hoạt động khai thác chuyến bay. Do đó, việc xây dựng một hệ thống phần mềm quản lý và hỗ trợ bán vé là nhu cầu cấp thiết nhằm tối ưu hóa việc quản lý dữ liệu cho các hãng hàng không, đồng thời hỗ trợ hành khách nắm bắt thông tin chuyến bay và chủ động trong việc mua vé.
Mục tiêu nghiên cứu và nhiệm vụ thực hiện của đề tài tập trung vào việc khảo sát, phân tích yêu cầu, thiết kế kiến trúc và xây dựng phần mềm quản lý bán vé chuyến bay với các nhóm chức năng chính được xác định cụ thể trong văn bản:
- Tiếp nhận và ghi nhận lịch chuyến bay mới.
- Thực hiện bán vé chuyến bay cho hành khách.
- Ghi nhận thông tin đặt vé trước của hành khách.
- Tra cứu thông tin danh sách các chuyến bay theo nhu cầu.
- Lập báo cáo doanh thu định kỳ theo tháng và theo năm.
- Cập nhật và thay đổi các quy định, tham số vận hành hệ thống.
Đối tượng nghiên cứu của đồ án là quy trình nghiệp vụ quản lý bán vé chuyến bay dân dụng và mô hình phần mềm ứng dụng quản lý thông tin chuyến bay. Về phạm vi nghiên cứu, không gian thực hiện đề tài tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh, trong khuôn khổ đồ án môn học Nhập môn Công nghệ phần mềm; mốc thời gian hoàn thành báo cáo là tháng 4 năm 2022.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của đề tài dựa trên các nguyên lý kỹ nghệ phần mềm kinh điển, trọng tâm là phương pháp phân tích thiết kế hệ thống có cấu trúc và phương pháp thiết kế dữ liệu đáp ứng đồng thời tính đúng đắn và tính tiến hóa. Nhóm tác giả áp dụng quy trình vòng đời phát triển phần mềm theo mô hình thác nước cải tiến (Modified Waterfall Model), bao gồm chuỗi 7 giai đoạn kế tiếp và có cơ chế phản hồi:
- Khảo sát hiện trạng: Xác định các nhu cầu chức năng của người dùng trên phần mềm.
- Xác định yêu cầu: Làm rõ yêu cầu nghiệp vụ, yêu cầu phi chức năng, các ràng buộc và rủi ro.
- Phân tích: Xác định mô hình hoạt động và các thành phần của hệ thống.
- Thiết kế: Xây dựng kiến trúc hệ thống, cơ sở dữ liệu và giao diện người dùng (nếu gặp vướng mắc sẽ quay lại bước xác định yêu cầu).
- Cài đặt: Lập trình và hiện thực hóa phần mềm dựa trên hồ sơ thiết kế.
- Kiểm chứng: Đội ngũ kiểm thử và đảm bảo chất lượng (QA/Tester) chạy thử nghiệm nhằm phát hiện lỗi vận hành để lập trình viên hiệu chỉnh.
- Triển khai và bảo trì: Đưa sản phẩm vào sử dụng thực tế, ghi nhận phản hồi và bảo trì định kỳ.
Phương pháp nghiên cứu thực tế bao gồm việc mô hình hóa yêu cầu thông qua bảng trách nhiệm người dùng – phần mềm, xây dựng sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) kèm giải thuật xử lý luồng dữ liệu tương ứng, cùng phương pháp lập sơ đồ logic dữ liệu từng bước. Nguồn dữ liệu nghiên cứu là các biểu mẫu nghiệp vụ mẫu (từ BM1 đến BM5) và hệ thống quy định quản lý bay (từ QĐ1 đến QĐ6) do đề tài xác lập.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc 3 tầng (3-tier) và 3 lớp (3-layer), phân tách rõ ràng giữa giao diện, xử lý nghiệp vụ và lưu trữ dữ liệu:
- Tầng trình diễn (Presentation Tier): Xây dựng trên nền tảng Windows Forms (GUI), chịu trách nhiệm hiển thị màn hình tương tác, chuẩn bị, tiếp nhận và kiểm tra tính hợp lệ sơ bộ của dữ liệu đầu vào.
- Tầng nghiệp vụ (Business Tier): Đảm nhiệm toàn bộ logic xử lý nghiệp vụ, bao gồm ba thành phần:
- Lớp DTO (Data Transfer Object): Lớp đối tượng truyền dữ liệu, chứa các thuộc tính mô tả thực thể nghiệp vụ.
- Lớp BUS (Business Logic Layer): Tiếp nhận dữ liệu từ DTO, kiểm tra tính hợp lệ của các quy tắc và ràng buộc nghiệp vụ trước khi chuyển tiếp dữ liệu xuống tầng dưới.
- Lớp DAO (Data Access Layer): Đảm nhiệm việc truy xuất và tác động trực tiếp vào cơ sở dữ liệu (thực hiện các thao tác kết nối, thêm, xóa, sửa, truy vấn) mà không can thiệp vào tính hợp lệ nghiệp vụ.
- Tầng dữ liệu (Data Tier): Hệ thống quản trị cơ sở dữ liệu lưu trữ dữ liệu vật lý, có khả năng tương thích với nhiều hệ quản trị khác nhau như Microsoft SQL Server, Oracle, SQLite, Microsoft Access, cũng như các tập tin XML và Text.
Về mặt vật lý, mô hình 3-tier cho phép phân tán hệ thống theo kiến trúc client-server; các tầng có thể đặt chung hoặc phân tán trên nhiều máy chủ vật lý khác nhau và giao tiếp thông qua Web services, WCF (Windows Communication Foundation) hoặc Remoting.
| Tầng kiến trúc |
Thành phần / Lớp |
Vai trò và chức năng chính |
| Presentation Tier |
Windows Forms (GUI) |
Tiếp nhận thao tác từ người dùng, hiển thị giao diện, tiền xử lý và lọc dữ liệu. |
| Business Tier |
Lớp BUS |
Thực thi quy tắc nghiệp vụ, kiểm tra ràng buộc logic trước khi lưu trữ. |
|
Lớp DTO |
Đóng gói và vận chuyển dữ liệu giữa các tầng trong hệ thống. |
|
Lớp DAO |
Thực hiện thao tác CRUD (Create, Read, Update, Delete) trực tiếp với cơ sở dữ liệu. |
| Data Tier |
MS SQL Server, Oracle, SQLite, MS Access, XML |
Lưu trữ cơ sở dữ liệu vật lý và các tập tin cấu hình hệ thống. |
Thiết kế giao diện của phần mềm được phân định thành 13 màn hình chức năng chính, bao gồm: Màn hình chính dành cho Quản lý, Màn hình chính dành cho Nhân viên, Màn hình Nhận lịch chuyến bay, Màn hình Đặt vé/bán vé chuyến bay, Màn hình Báo cáo doanh thu, Màn hình Quy định chuyến bay, Màn hình Tra cứu chuyến bay, Màn hình Quản lý nhân sự, Màn hình Thêm nhân viên, Màn hình Chỉnh sửa thông tin nhân viên, Màn hình Đổi mật khẩu và Màn hình Đăng nhập.
Nội dung chính theo từng chương
CHƯƠNG 1: GIỚI THIỆU BÀI TOÁN CẦN GIẢI QUYẾT, MÔ TẢ QUY TRÌNH THỰC HIỆN CÁC CÔNG VIỆC CHÍNH
Chương này nêu rõ tính đặc thù của ngành hàng không trong việc vận hành lượng dữ liệu lớn và khẳng định tầm quan trọng của phân hệ bán vé chuyến bay. Nhóm tác giả trình bày quy trình 7 bước của mô hình thác nước cải tiến được áp dụng trong suốt quá trình phát triển dự án, từ khâu khảo sát hiện trạng đến khâu bảo trì sản phẩm.
CHƯƠNG 2: XÁC ĐỊNH VÀ MÔ HÌNH HÓA YÊU CẦU PHẦN MỀM
Nội dung chương 2 là phần trọng tâm chi tiết nhất trong tài liệu, phân loại toàn diện các yêu cầu phần mềm thành 8 nhóm:
- Yêu cầu nghiệp vụ: Quy định cụ thể 6 chức năng qua hệ thống biểu mẫu và quy định:
- Nhận lịch chuyến bay (BM1, QĐ1): Ràng buộc danh mục 10 sân bay; thời gian bay tối thiểu 30 phút; tối đa 2 sân bay trung gian; thời gian dừng từ 10 đến 20 phút.
- Bán vé (BM2, QĐ2): Bán vé khi còn chỗ; vé hạng 1 có giá bằng 105% đơn giá; vé hạng 2 có giá bằng 100% đơn giá; mỗi chuyến bay áp dụng đơn giá riêng.
- Ghi nhận đặt vé (BM3, QĐ3): Cho phép đặt chỗ chậm nhất 1 ngày trước khởi hành; tự động hủy mọi phiếu đặt vào ngày khởi hành.
- Tra cứu chuyến bay (BM4): Hiển thị thông tin sân bay đi, sân bay đến, khởi hành, thời gian bay, số ghế trống và số ghế đặt.
- Lập báo cáo tháng (BM5.1, BM5.2): Thống kê doanh thu chuyến bay theo tháng và doanh thu tổng hợp theo năm kèm số chuyến bay, số vé và tỷ lệ đóng góp.
- Thay đổi quy định (QĐ6): Cho phép hiệu chỉnh các tham số thuộc QĐ1, QĐ2 và QĐ3.
- Yêu cầu tiến hóa: Xác định các tham số và miền giá trị có thể thay đổi trong tương lai (thời gian bay tối thiểu, số lượng và thời gian dừng tại sân bay trung gian, hạng vé, đơn giá, hạn đặt vé trễ nhất).
- Yêu cầu hiệu quả: Đặt ra chỉ tiêu xử lý đạt 10 lịch chuyến bay/giờ; tốc độ bán vé và ghi nhận đặt vé đạt 1000 vé/giờ; thời gian tra cứu, lập báo cáo và thay đổi quy định diễn ra tức thì; dung lượng lưu trữ báo cáo giới hạn ở mức 500KB.
- Yêu cầu tiện dụng: Thời gian học cách sử dụng cho tất cả các nghiệp vụ được khống chế trong vòng 5 phút hướng dẫn.
- Yêu cầu tương thích: Hỗ trợ nhập và xuất dữ liệu từ các tập tin Excel độc lập phiên bản cho các nghiệp vụ nhận lịch, bán vé, đặt vé và lập báo cáo.
- Yêu cầu bảo mật: Phân quyền người dùng theo 4 nhóm đối tượng: Quản trị hệ thống, Quản lý, Nhân viên phòng vé và Khác.
- Yêu cầu an toàn: Hỗ trợ phục hồi dữ liệu bị xóa, cho phép hủy dữ liệu vĩnh viễn và ngăn chặn hành vi xóa đối với những chuyến bay đã có hành khách.
- Yêu cầu công nghệ: Thời gian định vị lỗi trung bình không quá 15 phút mà không ảnh hưởng chức năng khác; kiến trúc hỗ trợ khả năng tái sử dụng để xây dựng phần mềm bán vé tàu điện trong vòng 3 ngày; khả năng chuyển đổi sang hệ quản trị cơ sở dữ liệu mới trong thời gian tối đa 2 ngày.
Chương này cũng thiết lập bảng trách nhiệm chi tiết giữa người dùng và phần mềm cho từng nhóm yêu cầu, đồng thời xây dựng sơ đồ luồng dữ liệu (DFD) cùng thuật toán tuần tự cho từng chức năng nghiệp vụ.
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
Trình bày chi tiết mô hình kiến trúc 3 tầng và 3 lớp (Presentation, Business, Data; DTO, BUS, DAO). Văn bản phân tích rõ trách nhiệm phân lập của từng lớp trong việc xử lý logic và truy xuất cơ sở dữ liệu, cũng như phương thức giao tiếp mạng giữa các tầng vật lý thông qua Web services, WCF hoặc Remoting.
CHƯƠNG 4: THIẾT KẾ DỮ LIỆU
Chương 4 xây dựng cơ sở dữ liệu theo thuật toán lập sơ đồ logic qua hai bước lặp: thiết kế dữ liệu với tính đúng đắn (đáp ứng đúng các biểu mẫu BM) và thiết kế dữ liệu với tính tiến hóa (đáp ứng các tham số thay đổi theo quy định QĐ).
- Bước 1 (Nhận lịch chuyến bay): Xác định các thuộc tính đúng đắn gồm
MaCBay, MaSanBayDi, MaSanBayDen, KhoiHanh, GioKhoiHanh, TgianBay, Dongia, ID, MaHangVe, SoLuongGhe, SoGheDat, MaSBayTrungGian, ThoiGianDung, GhiChu; các thuộc tính tiến hóa gồm MaSBay, Tensb cùng các tham số Thoigianbaytt, SLSBayTGtoida, Tgiandungtoithieu, Tgiandungtoida.
- Bước 2 (Bán vé chuyến bay): Bổ sung các thuộc tính đúng đắn
Mave, MaHK, Hangve, NgayBanVe, GiaVe, Tinhtrangve, CMND, Hoten, Dienthoai, Ngsinh, Email; thuộc tính tiến hóa MaHangVe, TenHangVe, TiLe, Hangghe, Tinhtrang.
- Bước 3 (Ghi nhận đặt vé): Bổ sung các tham số tiến hóa
Thoihandatve, Thoihanhuyve.
- Các bước tiếp theo xét cho yêu cầu tra cứu và lập báo cáo để tổng hợp thành sơ đồ logic hoàn chỉnh và danh sách các bảng dữ liệu.
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN
Trình bày sơ đồ điều hướng liên kết màn hình và mô tả cấu trúc hiển thị của 13 màn hình thành phần trong hệ thống, bao gồm các màn hình vận hành nghiệp vụ, màn hình tổng hợp báo cáo doanh thu, màn hình điều chỉnh quy định và nhóm màn hình quản lý tài khoản nhân viên.
CHƯƠNG 6: CÀI ĐẶT VÀ THỬ NGHIỆM
Theo cấu trúc mục lục của đồ án, chương này dành cho việc ghi nhận quá trình cài đặt phần mềm trên môi trường thực tế và tiến hành thử nghiệm các ca kiểm thử chức năng.
CHƯƠNG 7: NHẬN XÉT VÀ KẾT LUẬN
Ghi nhận tổng kết các kết quả đạt được của đề tài trong việc giải quyết bài toán quản lý và bán vé chuyến bay, cùng các đánh giá rút ra sau quá trình thực hiện đồ án môn học.
CHƯƠNG 8: HƯỚNG PHÁT TRIỂN
Xác định các nội dung mở rộng và cải tiến phần mềm trong tương lai nhằm nâng cao khả năng đáp ứng nhu cầu thực tế của các hãng hàng không.
Kết quả và đóng góp
Nghiên cứu đã cụ thể hóa toàn bộ quy trình quản lý bán vé chuyến bay thành hệ thống các yêu cầu kỹ thuật và mô hình thiết kế chặt chẽ. Kết quả nổi bật của báo cáo thể hiện qua việc lượng hóa rõ ràng các thông số vận hành và chỉ tiêu kỹ thuật:
| Nhóm thông số |
Chỉ số định lượng trong văn bản |
Ý nghĩa nghiệp vụ / kỹ thuật |
| Quy định bay (QĐ1) |
10 sân bay; bay tối thiểu 30 phút; tối đa 2 sân bay trung gian; dừng từ 10 - 20 phút |
Ràng buộc nghiệp vụ điều hành và tiếp nhận lịch bay. |
| Giá vé (QĐ2) |
Hạng 1 = 105% đơn giá; Hạng 2 = 100% đơn giá |
Ràng buộc tính toán tự động giá bán vé theo từng chuyến. |
| Đặt chỗ (QĐ3) |
Đặt trước tối thiểu 1 ngày (24 giờ); hủy vào ngày bay |
Quy tắc giải phóng chỗ tự động trên chuyến bay. |
| Hiệu năng xử lý |
10 lịch bay/giờ; 1000 vé bán/giờ; 1000 vé đặt/giờ; tra cứu/báo cáo tức thì |
Chỉ tiêu năng lực xử lý giao dịch của hệ thống. |
| Lưu trữ & Bảo trì |
Báo cáo ≤ 500KB; định vị lỗi ≤ 15 phút; đổi CSDL ≤ 2 ngày; tái sử dụng ≤ 3 ngày |
Các tiêu chuẩn phi chức năng về hiệu quả và công nghệ. |
Về mặt giải pháp, đồ án đã đề xuất phương pháp thiết kế dữ liệu hai bước (tính đúng đắn kết hợp tính tiến hóa), cho phép cơ sở dữ liệu có khả năng thích ứng linh hoạt khi có sự thay đổi về số lượng sân bay, số lượng hạng vé hay thời hạn đặt chỗ mà không làm phá vỡ cấu trúc phần mềm hiện hữu. Đóng góp tự thân của nhóm sinh viên là việc vận dụng hoàn chỉnh quy trình thác nước cải tiến vào một bài toán nghiệp vụ cụ thể, thiết lập đầy đủ hệ thống biểu mẫu, thuật toán DFD, kiến trúc 3 lớp và sơ đồ thực thể logic.
Hạn chế và hướng nghiên cứu tiếp
Nhóm tác giả thẳng thắn thừa nhận trong phần giới thiệu và lời cảm ơn rằng kiến thức của các thành viên còn nhiều hạn chế, dẫn đến quá trình thực hiện đề tài không tránh khỏi những thiếu sót và cần sự góp ý của giảng viên hướng dẫn để tiếp tục hoàn thiện.
Về phạm vi triển khai, đề tài mới chỉ dừng lại ở các quy định nghiệp vụ cơ bản với số lượng danh mục cố định (10 sân bay, 2 hạng vé ban đầu) và phạm vi mô phỏng trong khuôn khổ môn học Nhập môn Công nghệ phần mềm. Hướng nghiên cứu và phát triển tiếp theo được nhóm dành riêng tại Chương 8 nhằm nâng cấp phần mềm, tối ưu hóa các chức năng quản trị và mở rộng khả năng thích ứng với các bài toán vận tải tương tự.
Giá trị tham khảo
Báo cáo đồ án này là tài liệu tham khảo phù hợp cho:
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang theo học các học phần Nhập môn Công nghệ phần mềm, Phân tích thiết kế hệ thống thông tin hoặc Đồ án cơ sở.
- Người học cần tham khảo cấu trúc chuẩn của một hồ sơ phân tích thiết kế phần mềm, đặc biệt là cách thức trình bày bảng trách nhiệm người dùng – phần mềm, kỹ thuật viết giải thuật cho sơ đồ luồng dữ liệu (DFD) và phương pháp phân tách yêu cầu thành tính đúng đắn và tính tiến hóa.
- Các nhóm phát triển phần mềm ứng dụng quản lý máy tính (Desktop App) theo kiến trúc 3-layer (Presentation, Business, Data) sử dụng Windows Forms kết nối cơ sở dữ liệu quan hệ.
Câu hỏi thường gặp
1. Quy định về việc đặt vé và hủy vé được phần mềm thiết lập như thế nào?
Theo Quy định 3 (QĐ3), hệ thống chỉ cho phép hành khách đặt vé chậm nhất là 1 ngày trước khi chuyến bay khởi hành (tính toán kiểm tra khoảng thời gian giữa ngày giờ đặt vé và ngày giờ bay phải lớn hơn 24 giờ). Toàn bộ các phiếu đặt chỗ chưa thanh toán lấy vé sẽ tự động bị hủy vào ngày chuyến bay khởi hành.
2. Giá vé các hạng ghế được tính toán dựa trên công thức nào?
Theo Quy định 2 (QĐ2), mỗi chuyến bay sẽ có một đơn giá riêng. Giá vé cho ghế hạng 1 được tính bằng 105% đơn giá của chuyến bay đó, trong khi vé cho ghế hạng 2 được tính bằng 100% đơn giá.
3. Kiến trúc 3 tầng và 3 lớp của hệ thống phân chia trách nhiệm giữa BUS, DTO và DAO ra sao?
Lớp DTO chịu trách nhiệm đóng gói và truyền tải các thuộc tính dữ liệu của đối tượng giữa các tầng. Lớp BUS tiếp nhận dữ liệu từ DTO để kiểm tra tính hợp lệ và thực thi các quy tắc nghiệp vụ. Lớp DAO chỉ thực hiện các thao tác truy xuất dữ liệu vật lý (thêm, xóa, sửa, truy vấn) với hệ quản trị cơ sở dữ liệu theo yêu cầu từ lớp BUS mà không can thiệp vào logic nghiệp vụ.
4. Hệ thống đặt ra những chỉ tiêu định lượng nào về hiệu năng và khả năng bảo trì phần mềm?
Về hiệu năng, phần mềm đáp ứng tốc độ tiếp nhận 10 lịch chuyến bay/giờ, bán 1000 vé/giờ, ghi nhận 1000 vé đặt/giờ, các tác vụ tra cứu và báo cáo phản hồi tức thì với dung lượng lưu trữ báo cáo dưới 500KB. Về bảo trì, hệ thống đặt mục tiêu xác định lỗi trung bình trong vòng 15 phút, khả năng chuyển đổi sang hệ quản trị CSDL mới trong 2 ngày và tái sử dụng cấu trúc để xây dựng phần mềm bán vé tàu điện trong 3 ngày.
5. Những nhóm người dùng nào được phân quyền thao tác trên các chức năng của hệ thống?
Báo cáo phân định 4 nhóm đối tượng: Quản trị hệ thống, Quản lý, Nhân viên phòng vé và Khác. Trong đó, chức năng Phân quyền và Thay đổi quy định chỉ dành riêng cho Quản trị hệ thống; chức năng Lập báo cáo tháng thuộc thẩm quyền của Quản lý; chức năng Bán vé và Ghi nhận đặt vé do Nhân viên phòng vé thực hiện; chức năng Nhận lịch chuyến bay do cả Quản lý và Nhân viên đảm nhiệm; chức năng Tra cứu chuyến bay được mở cho Quản trị hệ thống, Quản lý và Nhân viên phòng vé.
Kết luận
Báo cáo đồ án "Bán vé chuyến bay" của nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM đã hoàn thành việc mô hình hóa bài toán quản lý và bán vé máy bay theo quy trình công nghệ phần mềm bài bản. Hệ thống được phân tích chi tiết qua các nhóm yêu cầu nghiệp vụ, hiệu năng, bảo mật và tương thích, đồng thời được hiện thực hóa thiết kế thông qua kiến trúc 3-layer, 3-tier kết hợp mô hình dữ liệu hỗ trợ tiến hóa. Tài liệu phản ánh đầy đủ các bước thực hiện từ khảo sát yêu cầu, thiết kế thuật toán luồng dữ liệu đến xây dựng giao diện người dùng, cung cấp một mẫu báo cáo kỹ thuật hoàn chỉnh cho học phần Nhập môn Công nghệ phần mềm.