Trắc nghiệm Công nghệ Phần mềm Bài: HỆ THỐNG QUẢN LÍ TOUR DU LỊCH DẠNG OPEN TOUR là một trong những đề thi thuộc Chương 11: BÀI TẬP DỰ ÁN trong học phần Công nghệ Phần mềm chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần kiến thức ứng dụng thực tiễn, giúp sinh viên củng cố hiểu biết về Công nghệ Phần mềm bằng cách áp dụng các nguyên tắc, phương pháp và kỹ thuật vào một bài toán thực tế – xây dựng hệ thống quản lý tour du lịch dạng Open Tour, một hệ thống đòi hỏi tính linh hoạt cao trong lịch trình, quản lý đặt chỗ động và tích hợp nhiều dịch vụ.
Trong bài học này, người học cần nắm vững cách phân tích yêu cầu (chức năng, phi chức năng), thiết kế hệ thống (kiến trúc, cơ sở dữ liệu, giao diện), triển khai các module phức tạp (quản lý tour, đặt chỗ, thanh toán, quản lý lịch trình linh hoạt), và thực hiện kiểm thử ở các cấp độ khác nhau (đơn vị, tích hợp, hệ thống, chấp nhận). Việc giải quyết các tình huống trong case study này sẽ trang bị cho sinh viên kỹ năng tư duy hệ thống, quản lý dự án và đảm bảo chất lượng phần mềm trong môi trường thực tế, đặc biệt với các hệ thống có tính động và nhiều tùy chọn.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Công nghệ Phần mềm Bài: HỆ THỐNG QUẢN LÍ TOUR DU LỊCH DẠNG OPEN TOUR
Câu 1.Yêu cầu “Khách hàng có thể tìm kiếm tour theo điểm đến, ngày khởi hành linh hoạt và số ngày mong muốn, sau đó đặt chỗ và thanh toán trực tuyến” là một ví dụ điển hình của loại yêu cầu nào trong hệ thống này?
A. Yêu cầu phi chức năng.
B. Yêu cầu hiệu suất.
C. Yêu cầu bảo mật.
D. Yêu cầu chức năng.
Câu 2.Hệ thống phải có khả năng cập nhật tình trạng chỗ trống và giá vé của các chặng tour (ví dụ: vé xe, vé tàu) từ các nhà cung cấp dịch vụ bên ngoài theo thời gian thực. Đây là một yêu cầu phi chức năng thuộc khía cạnh nào?
A. Khả năng sử dụng (Usability).
B. Bảo mật (Security).
C. Khả năng bảo trì (Maintainability).
D. Thời gian thực (Real-time) và Khả năng tích hợp (Integrability).
Câu 3.Thông tin cá nhân của khách hàng (Họ tên, thông tin liên hệ, chi tiết thanh toán) và lịch sử đặt tour phải được mã hóa và bảo vệ khỏi sự truy cập trái phép. Đây là yêu cầu phi chức năng thuộc khía cạnh nào?
A. Hiệu suất.
B. Khả năng sử dụng.
C. Độ tin cậy.
D. Bảo mật (Security) và Quyền riêng tư (Privacy).
Câu 4.Trong mô hình hướng đối tượng, `KhachHang` (Customer), `Tour` (Tour), `DiemDen` (Destination), `LichTrinh` (Itinerary), `DatCho` (Booking/Reservation), `PhuongTien` (Transportation) là các ví dụ điển hình của loại lớp nào?
A. Lớp biên giới (Boundary Class).
B. Lớp điều khiển (Control Class).
C. Lớp tiện ích (Utility Class).
D. Lớp thực thể (Entity Class).
Câu 5.Để mô tả việc một `KhachHang` (Customer) “tìm kiếm tour”, “đặt tour”, hoặc “hủy đặt chỗ”, biểu đồ UML nào sẽ là phù hợp nhất để biểu diễn các tương tác ở mức cao?
A. Biểu đồ lớp (Class Diagram).
B. Biểu đồ trình tự (Sequence Diagram).
C. Biểu đồ hoạt động (Activity Diagram).
D. Biểu đồ trường hợp sử dụng (Use Case Diagram).
Câu 6.Trong thiết kế cơ sở dữ liệu, mối quan hệ giữa `Tour` và `DiemDen` (một tour có nhiều điểm đến, một điểm đến có thể thuộc nhiều tour) thường là gì?
A. Mối quan hệ một-một (1:1).
B. Mối quan hệ một-nhiều (1:N).
C. Mối quan hệ nhiều-một (N:1).
D. Mối quan hệ nhiều-nhiều (N:M).
Câu 7.Module `QuanLyDatCho` (Booking Management) cần gọi đến API của `CongThanhToan` (Payment Gateway) để xử lý giao dịch. Sau khi cài đặt riêng từng module, nhóm phát triển cần thực hiện loại kiểm thử nào để đảm bảo chúng làm việc ăn ý với nhau?
A. Kiểm thử đơn vị (Unit Testing).
B. Kiểm thử hệ thống (System Testing).
C. Kiểm thử chấp nhận (Acceptance Testing).
D. Kiểm thử tích hợp (Integration Testing), đặc biệt là tích hợp với hệ thống bên ngoài.
Câu 8.Hệ thống phải đảm bảo rằng không có chỗ ngồi nào trên phương tiện vận chuyển (ví dụ: xe khách) bị trùng lặp khi nhiều khách hàng cùng đặt tour open. Đây là một yêu cầu phi chức năng thuộc khía cạnh nào?
A. Hiệu suất.
B. Khả năng sử dụng.
C. Bảo mật.
D. Tính toàn vẹn dữ liệu (Data Integrity) và Đồng thời (Concurrency).
Câu 9.Khi một khách hàng hủy tour, hệ thống cần xử lý hoàn tiền theo chính sách và cập nhật lại tình trạng chỗ trống. Đây là một trường hợp cần kiểm thử loại nào?
A. Kiểm thử cài đặt.
B. Kiểm thử tương thích.
C. Kiểm thử phục hồi.
D. Kiểm thử chức năng (Functional Testing) cho quy trình hủy tour và hoàn tiền.
Câu 10.Đội ngũ phát triển đã sửa lỗi liên quan đến việc hệ thống tính sai giá tour khi khách hàng chọn các tùy chọn nâng cấp (ví dụ: phòng khách sạn cao cấp hơn). Sau khi sửa, họ cần chạy lại các trường hợp kiểm thử cũ để đảm bảo không có lỗi mới nào xuất hiện trong chức năng tính giá. Đây là loại kiểm thử nào?
A. Kiểm thử xác nhận lỗi (Confirmation Testing).
B. Kiểm thử chức năng cho tính năng mới.
C. Kiểm thử hộp trắng.
D. Kiểm thử hồi quy (Regression Testing).
Câu 11.Việc thiết kế giao diện cho phép khách hàng dễ dàng tùy chỉnh lịch trình tour, thêm/bớt dịch vụ và xem tổng giá tiền mà không gặp khó khăn thuộc khía cạnh nào của thiết kế?
A. Thiết kế cơ sở dữ liệu.
B. Thiết kế kiến trúc.
C. Thiết kế module.
D. Thiết kế giao diện người dùng (UI) và trải nghiệm người dùng (UX).
Câu 12.Để quản lý sự phức tạp của hệ thống và cho phép các nhóm khác nhau phát triển các phần riêng biệt (ví dụ: quản lý tour, quản lý đặt chỗ, quản lý phương tiện vận chuyển), kiến trúc sư phần mềm có thể đề xuất kiến trúc nào?
A. Kiến trúc tập trung (Monolithic Architecture).
B. Kiến trúc phân lớp (Layered Architecture).
C. Kiến trúc Client-Server đơn giản.
D. Kiến trúc Microservices.
Câu 13.Nếu có một lỗi nghiêm trọng xảy ra trong module quản lý lịch trình tour, dẫn đến việc trùng lịch hoặc bỏ sót điểm đến, lập trình viên sẽ sử dụng công cụ nào để tìm kiếm và sửa chữa lỗi đó bằng cách chạy từng bước mã nguồn và xem giá trị biến?
A. Trình biên dịch.
B. Hệ thống kiểm soát phiên bản.
C. Công cụ xây dựng tự động.
D. Trình gỡ lỗi (Debugger).
Câu 14.Khi thiết kế module `DatTour` (Tour Booking) và `QuanLyLichTrinh` (Itinerary Management), nguyên tắc nào trong OOP giúp đảm bảo rằng thay đổi ở module này không ảnh hưởng quá nhiều đến module kia?
A. Tính kế thừa (Inheritance).
B. Tính đa hình (Polymorphism).
C. Tính trừu tượng (Abstraction).
D. Tính phụ thuộc thấp (Low Coupling).
Câu 15.Hệ thống cần gửi thông báo tự động cho khách hàng khi có thay đổi lịch trình tour, xác nhận đặt chỗ hoặc nhắc nhở về chuyến đi sắp tới. Mẫu thiết kế (Design Pattern) nào phù hợp nhất để quản lý việc này?
A. Singleton Pattern.
B. Strategy Pattern.
C. Factory Pattern.
D. Observer Pattern.
Câu 16.Vấn đề “Scope Creep” (Phạm vi trượt) có thể xảy ra trong dự án này nếu điều gì xảy ra?
A. Đại lý du lịch không có yêu cầu nào.
B. Các yêu cầu đã được xác định rất rõ ràng.
C. Hệ thống hoàn thành sớm hơn dự kiến.
D. Khách hàng yêu cầu thêm các tính năng như quản lý khách sạn, quản lý vé máy bay, hoặc xây dựng cộng đồng du lịch tích hợp.
Câu 17.Để quản lý việc nhiều lập trình viên cùng làm việc trên mã nguồn của hệ thống (ví dụ: cùng sửa đổi logic đặt tour và logic quản lý giá), công cụ nào là thiết yếu để tránh xung đột mã nguồn?
A. IDE (Integrated Development Environment).
B. Công cụ quản lý dự án (Project Management Tool).
C. Trình biên dịch.
D. Hệ thống kiểm soát phiên bản (Version Control System – VCS) như Git.
Câu 18.Mục tiêu của việc Kiểm thử Chấp nhận (Acceptance Testing) cho hệ thống này là gì?
A. Để tìm lỗi cú pháp trong mã nguồn.
B. Để kiểm tra hiệu suất của server.
C. Để đảm bảo mọi chức năng đã được viết code.
D. Để khách hàng (đại lý du lịch, nhân viên điều hành tour, hướng dẫn viên) xác nhận rằng hệ thống đáp ứng đúng nhu cầu nghiệp vụ của họ.
Câu 19.Trong pha phân tích, yêu cầu “Mọi giao dịch đặt tour, hủy tour và thay đổi lịch trình phải được ghi lại chi tiết với thời gian, khách hàng, tour và nhân viên thực hiện để phục vụ kiểm toán và báo cáo” là một yêu cầu phi chức năng thuộc khía cạnh nào?
A. Hiệu suất.
B. Khả năng sử dụng.
C. Bảo mật.
D. Khả năng kiểm toán (Auditability) và Độ tin cậy.
Câu 20.Biểu đồ nào trong UML sẽ hữu ích để mô tả chi tiết các bước trong quy trình “Xử lý Yêu cầu Đặt Tour”, bao gồm các hoạt động như kiểm tra chỗ trống, tính giá, gửi xác nhận và quản lý thanh toán?
A. Biểu đồ lớp.
B. Biểu đồ trình tự.
C. Biểu đồ trường hợp sử dụng.
D. Biểu đồ hoạt động (Activity Diagram).
Câu 21.Trong pha cài đặt, để đảm bảo tính năng tìm kiếm tour và đặt chỗ hoạt động trơn tru ngay cả khi có hàng triệu tour và nhiều tùy chọn, việc tối ưu hóa truy vấn cơ sở dữ liệu và thiết kế kiến trúc cần được chú trọng. Yêu cầu này liên quan đến thuộc tính phi chức năng nào?
A. Bảo mật.
B. Khả năng sử dụng.
C. Khả năng mở rộng.
D. Hiệu suất (Performance).
Câu 22.Lớp `DatCho` (Booking) có các thuộc tính như `maDatCho`, `thoiGianDat`, `tongTien`, `trangThaiDatCho` (đã xác nhận/đã hủy). Phương thức `tinhTongTien()` sẽ nằm trong lớp nào?
A. Lớp `KhachHang`.
B. Lớp `Tour`.
C. Lớp `PhuongTien`.
D. Lớp `DatCho` hoặc một lớp `Service` quản lý đặt chỗ.
Câu 23.Khi đại lý cần tích hợp hệ thống của mình với nhiều nhà cung cấp dịch vụ vận tải (ví dụ: các hãng xe khách, tàu hỏa, máy bay), loại kiểm thử nào là cần thiết để đảm bảo sự tương tác dữ liệu và quy trình được thông suốt giữa các hệ thống?
A. Kiểm thử đơn vị.
B. Kiểm thử hệ thống.
C. Kiểm thử bảo mật.
D. Kiểm thử tích hợp hệ thống (System Integration Testing) và kiểm thử API.
Câu 24.Mối quan hệ giữa một `Tour` và nhiều `LichTrinhNgay` (Daily Itinerary) cấu thành nên tour đó là mối quan hệ nào trong biểu đồ lớp?
A. Kế thừa.
B. Phụ thuộc.
C. Liên kết (Association).
D. Thành phần (Composition) – lịch trình ngày là một phần không thể thiếu của tour.
Câu 25.Điều gì là kết quả quan trọng nhất sau khi hoàn thành pha cài đặt và tích hợp cho hệ thống quản lý tour du lịch dạng Open Tour?
A. Một kế hoạch dự án mới.
B. Một danh sách dài các yêu cầu.
C. Một bản thiết kế chi tiết.
D. Một hệ thống phần mềm hoạt động được, sẵn sàng cho các giai đoạn kiểm thử hệ thống và chấp nhận.