Trắc nghiệm Công nghệ Phần mềm Bài: CASE STUDY CHO PHA THIẾT KẾ
25 câu · Đề ôn tập tổng hợp
Xem trước: đọc nhanh mọi câu dạng chữ, chưa tính giờ, chưa hiện đáp án. Luyện tập: chọn đáp án là biết đúng sai ngay, kèm lời giải. Thi thử: nộp bài mới chấm điểm và hiện lời giải.
Câu 1
Trong pha thiết kế cho hệ thống đặt món ăn trực tuyến, nếu mục tiêu là phát triển độc lập các phần `Quản lý Đơn hàng`, `Quản lý Nhà hàng` và `Quản lý Giao hàng` và khả năng mở rộng từng phần riêng biệt, kiến trúc nào sẽ được ưu tiên?
Đáp án và lời giải
Đáp án: D
Câu 2
Thiết kế một hệ thống đặt món ăn trực tuyến theo mô hình 3 tầng (3-tier architecture), nơi logic xử lý đơn hàng sẽ nằm ở tầng nào?
Đáp án và lời giải
Đáp án: D
Câu 3
Khi thiết kế cơ sở dữ liệu cho hệ thống đặt món, việc xác định các bảng (ví dụ: `Customers`, `Orders`, `Dishes`) và mối quan hệ giữa chúng thuộc hoạt động thiết kế nào?
Đáp án và lời giải
Đáp án: D
Câu 4
Lớp `DonHang` (Order) có một phương thức `thayDoiTrangThai()` (changeStatus()). Để đảm bảo tính đóng gói tốt trong thiết kế, các thuộc tính nội bộ của `DonHang` nên có mức độ truy cập nào?
Đáp án và lời giải
Đáp án: D
Câu 5
Trong thiết kế, để xử lý việc khách hàng có thể chọn nhiều phương thức thanh toán khác nhau (tiền mặt, thẻ, ví điện tử) mà không cần sửa đổi code mỗi khi thêm phương thức mới, mẫu thiết kế nào phù hợp nhất?
Đáp án và lời giải
Đáp án: D
Câu 6
Biểu đồ nào trong UML sẽ được sử dụng để mô tả chi tiết luồng thông điệp và tương tác giữa đối tượng `KhachHang`, `TrangDatMonUI`, `OrderService` và `PaymentGateway` khi khách hàng thực hiện thanh toán?
Đáp án và lời giải
Đáp án: D
Câu 7
Để đảm bảo hiệu suất tốt khi hàng ngàn khách hàng cùng lúc tìm kiếm món ăn và đặt hàng, điều gì cần được chú trọng trong thiết kế hệ thống?
Đáp án và lời giải
Đáp án: D
Câu 8
Khi thiết kế API cho dịch vụ `NhaHang` (Restaurant Service) để `KhachHang` (Customer Service) có thể truy cập thực đơn, điều gì là quan trọng nhất để đảm bảo tính phụ thuộc thấp?
Đáp án và lời giải
Đáp án: D
Câu 9
Một yêu cầu là “Hệ thống phải mã hóa thông tin thẻ tín dụng của khách hàng trước khi lưu trữ.” Điều này thuộc về khía cạnh thiết kế nào?
Đáp án và lời giải
Đáp án: D
Câu 10
Nếu một nhóm phát triển quyết định sử dụng một thư viện xử lý thanh toán của bên thứ ba, điều này liên quan đến quyết định thiết kế nào?
Đáp án và lời giải
Đáp án: D
Câu 11
Để đảm bảo một lớp `DonHang` (Order) có tính liên kết cao (High Cohesion), điều gì là cần thiết?
Đáp án và lời giải
Đáp án: D
Câu 12
Khi thiết kế hệ thống, cần xác định các giao diện (interfaces) mà các module sẽ cung cấp. Việc này giúp gì trong giai đoạn cài đặt và tích hợp?
Đáp án và lời giải
Đáp án: D
Câu 13
Nếu thiết kế ban đầu của lớp `Shipper` (người giao hàng) không tối ưu và cần được cải thiện mà không làm thay đổi hành vi bên ngoài, hoạt động nào nên được thực hiện?
Đáp án và lời giải
Đáp án: D
Câu 14
Trong Biểu đồ lớp (Class Diagram) sau pha thiết kế, chúng ta sẽ thấy chi tiết hơn về các thuộc tính và phương thức của các lớp như `MonAn`, `NhaHang`, `DonHang`, cũng như các mối quan hệ như:
Đáp án và lời giải
Đáp án: D
Câu 15
Để xử lý các sự kiện thay đổi trạng thái của đơn hàng (ví dụ: `DonHang` từ `ChoXacNhan` sang `DangXuLy` sang `DangGiao`), mẫu thiết kế nào phù hợp để thông báo tự động cho các bên liên quan (khách hàng, nhà hàng)?
Đáp án và lời giải
Đáp án: D
Câu 16
Nếu hệ thống đặt món ăn cần chạy trên cả ứng dụng di động (iOS/Android) và trình duyệt web, chiến lược thiết kế nào giúp tối ưu hóa việc phát triển giao diện người dùng?
Đáp án và lời giải
Đáp án: D
Câu 17
Trong pha thiết kế, một rủi ro tiềm tàng là “nợ thiết kế” (Design Debt). Điều này có nghĩa là gì đối với hệ thống đặt món?
Đáp án và lời giải
Đáp án: D
Câu 18
Để đảm bảo hệ thống có thể xử lý được một lượng lớn các yêu cầu cùng lúc (ví dụ: trong giờ cao điểm), điều gì cần được thiết kế cẩn thận?
Đáp án và lời giải
Đáp án: D
Câu 19
Một yêu cầu nói rằng “Hệ thống phải có nhật ký đầy đủ về mọi thao tác của người dùng.” Điều này ảnh hưởng đến thiết kế như thế nào?
Đáp án và lời giải
Đáp án: D
Câu 20
Biểu đồ nào trong UML sẽ hữu ích nhất để mô tả cách các thành phần phần mềm của hệ thống (ví dụ: `WebAppClient`, `BackendAPI`, `DatabaseServer`, `DeliveryService`) sẽ được triển khai trên các nút vật lý và mạng?
Đáp án và lời giải
Đáp án: D
Câu 21
Trong thiết kế kiến trúc, việc sử dụng một “Message Queue” (Hàng đợi tin nhắn) giữa các dịch vụ `Order` và `Delivery` giúp gì?
Đáp án và lời giải
Đáp án: D
Câu 22
Mục tiêu của việc kiểm thử thiết kế (Design Review) trong case study này là gì?
Đáp án và lời giải
Đáp án: D
Câu 23
Một “Mẫu thiết kế” (Design Pattern) phù hợp để quản lý việc tạo ra các đối tượng `MonAn` (Dish) khác nhau (ví dụ: `MonAnChay`, `MonAnMan`) mà không cần phải gọi hàm tạo trực tiếp là gì?
Đáp án và lời giải
Đáp án: D
Câu 24
Khi thiết kế hệ thống đặt món, việc phân biệt rõ ràng giữa `PhuongThucThanhToan` (PaymentMethod) và `GiaoDienThanhToan` (PaymentUI) thể hiện nguyên tắc thiết kế nào?
Đáp án và lời giải
Đáp án: D
Câu 25
Điều gì là kết quả quan trọng nhất sau khi hoàn thành pha thiết kế cho hệ thống đặt món ăn trực tuyến?