Trắc nghiệm Công nghệ Phần mềm Bài: CASE STUDY CHO PHA PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG là một trong những đề thi thuộc Chương 7: PHƯƠNG PHÁP PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG 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ề phân tích hướng đối tượng bằng cách áp dụng các nguyên tắc và kỹ thuật vào một tình huống cụ thể, ví dụ như xây dựng một hệ thống đặt món ăn trực tuyến.
Trong bài học này, người học cần nắm vững các nội dung cốt lõi như: cách nhận diện các lớp thực thể (Khách hàng, Đơn hàng, Món ăn, Nhà hàng, Shipper), xác định thuộc tính và hành vi của chúng, mô hình hóa mối quan hệ giữa các đối tượng (kết tập, thành phần, liên kết), sử dụng các biểu đồ UML (như Use Case, Class, Sequence, Activity) để biểu diễn các khía cạnh khác nhau của hệ thống, và áp dụng các nguyên lý OOP (đóng gói, đa hình) trong phân tích. Việc phân tích case study sẽ trang bị cho sinh viên khả năng tư duy trừu tượng, mô hình hóa hệ thống phức tạp và chuẩn bị cho giai đoạn thiết kế.
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: CASE STUDY CHO PHA PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG
Câu 1.Trong một hệ thống đặt món ăn trực tuyến, `KhachHang` (Customer), `NhaHang` (Restaurant), `MonAn` (Dish) và `DonHang` (Order) là các ví dụ điển hình của loại lớp nào trong phân tích hướng đối tượng?
A. Lớp biên giới (Boundary Classes).
B. Lớp điều khiển (Control Classes).
C. Lớp tiện ích (Utility Classes).
D. Lớp thực thể (Entity Classes).
Câu 2.Một khách hàng truy cập hệ thống đặt món, tìm kiếm món ăn, thêm vào giỏ hàng và tiến hành thanh toán. Chuỗi hành động này có thể được mô hình hóa như một “trường hợp sử dụng” (Use Case) nào?
A. Quản lý thực đơn.
B. Cập nhật trạng thái đơn hàng.
C. Giao hàng.
D. Đặt món ăn.
Câu 3.Khi phân tích lớp `MonAn` (Dish), thuộc tính nào sau đây không phù hợp để thêm vào lớp này?
A. `tenMonAn` (dishName).
B. `giaTien` (price).
C. `moTa` (description).
D. `diaChiNhaHang` (restaurantAddress).
Câu 4.Phương thức (Method) nào sau đây phù hợp nhất cho lớp `DonHang` (Order) để tính tổng số tiền của đơn hàng?
A. `thayDoiTrangThai()` (changeStatus()).
B. `huyDonHang()` (cancelOrder()).
C. `capNhatThongTinGiaoHang()` (updateDeliveryInfo()).
D. `tinhTongTien()` (calculateTotalPrice()).
Câu 5.Mối quan hệ giữa lớp `KhachHang` và lớp `DonHang` (một khách hàng có thể có nhiều đơn hàng) thường được mô hình hóa bằng mối quan hệ nào trong biểu đồ lớp?
A. Kế thừa (Inheritance).
B. Thành phần (Composition).
C. Phụ thuộc (Dependency).
D. Liên kết (Association).
Câu 6.Trong hệ thống, một lớp `BoDieuKhienDatMon` (OrderController) chịu trách nhiệm nhận yêu cầu đặt món, kiểm tra giỏ hàng, tạo đơn hàng và chuyển giao cho xử lý thanh toán. Lớp này có thể được xem là loại lớp nào?
A. Lớp thực thể.
B. Lớp biên giới.
C. Lớp tiện ích.
D. Lớp điều khiển (Control Class).
Câu 7.Nếu hệ thống có các loại món ăn khác nhau như `MonChay` (Vegetarian Dish) và `MonMan` (Non-Vegetarian Dish), cả hai đều là `MonAn`. Đây là một ví dụ của tính chất nào trong OOP, thể hiện mối quan hệ giữa các lớp?
A. Đóng gói (Encapsulation).
B. Đa hình (Polymorphism).
C. Thành phần (Composition).
D. Kế thừa (Inheritance).
Câu 8.Biểu đồ nào trong UML sẽ hữu ích nhất để mô tả luồng tương tác chi tiết giữa các đối tượng `KhachHang`, `GiaoDienDatMon`, `BoDieuKhienDatMon` và `DonHang` khi một khách hàng đặt món ăn?
A. Biểu đồ lớp (Class Diagram).
B. Biểu đồ hoạt động (Activity Diagram).
C. Biểu đồ trạng thái (State Machine Diagram).
D. Biểu đồ trình tự (Sequence Diagram).
Câu 9.Lớp `GiaoDienDatMon` (OrderUI) chịu trách nhiệm hiển thị danh sách món ăn, cho phép khách hàng chọn và thêm vào giỏ hàng. Lớp này thuộc loại lớp nào?
A. Lớp thực thể.
B. Lớp điều khiển.
C. Lớp tiện ích.
D. Lớp biên giới (Boundary Class).
Câu 10.Yêu cầu “Hệ thống phải xử lý ít nhất 100 đơn hàng mỗi phút” là một yêu cầu quan trọng. Đây là loại yêu cầu nào thường được xem xét trong phân tích?
A. Yêu cầu chức năng.
B. Yêu cầu bảo mật.
C. Yêu cầu khả năng sử dụng.
D. Yêu cầu phi chức năng (hiệu suất).
Câu 11.Mối quan hệ giữa lớp `NhaHang` (Restaurant) và lớp `ThucDon` (Menu) (một nhà hàng có một thực đơn riêng) thường được mô hình hóa bằng mối quan hệ nào để thể hiện sự sở hữu mạnh mẽ?
A. Liên kết (Association).
B. Kế thừa (Inheritance).
C. Phụ thuộc (Dependency).
D. Thành phần (Composition).
Câu 12.Khi phân tích bài toán, nhà phân tích phát hiện rằng có các chức năng chung như “đăng nhập”, “đăng ký” áp dụng cho cả `KhachHang`, `NhaHang` và `Shipper`. Điều này có thể gợi ý tạo một lớp cha trừu tượng nào?
A. `ThongBao`.
B. `ThanhToan`.
C. `MonAn`.
D. `NguoiDung` (User).
Câu 13.Biểu đồ nào trong UML phù hợp nhất để mô tả toàn bộ quy trình từ khi khách hàng tìm kiếm món ăn, đặt hàng, đến khi shipper giao hàng?
A. Biểu đồ lớp.
B. Biểu đồ trình tự.
C. Biểu đồ trạng thái.
D. Biểu đồ hoạt động (Activity Diagram).
Câu 14.Trong quá trình phân tích, yêu cầu “Khách hàng phải được xác thực trước khi xem thông tin đơn hàng của họ” liên quan đến thuộc tính chất lượng nào?
A. Hiệu suất.
B. Khả năng sử dụng.
C. Độ tin cậy.
D. Bảo mật (Security).
Câu 15.Nếu một nhà phân tích yêu cầu trong hệ thống đặt món đang gặp khó khăn với việc khách hàng không thể mô tả rõ ràng họ muốn giao diện trông như thế nào, kỹ thuật nào có thể được áp dụng để giải quyết vấn đề này trong phân tích hướng đối tượng?
A. Phỏng vấn thêm nhiều khách hàng.
B. Yêu cầu khách hàng viết mô tả chi tiết.
C. Bỏ qua yêu cầu giao diện.
D. Xây dựng bản mẫu giao diện người dùng (UI Prototype).
Câu 16.Khi phân tích lớp `TrangThaiDonHang` (OrderStatus) (ví dụ: `ChoXacNhan`, `DangXuLy`, `DangGiao`, `DaGiao`), yếu tố quan trọng nhất để mô hình hóa là gì?
A. Tên của trạng thái.
B. Thời gian chuyển trạng thái.
C. Người thay đổi trạng thái.
D. Các trạng thái khác nhau và các chuyển đổi giữa chúng.
Câu 17.Trong ngữ cảnh của bài toán, một `ĐánhGia` (Review) của khách hàng về `MonAn` là một lớp thực thể. Thuộc tính nào sau đây là phù hợp nhất để biểu diễn nội dung đánh giá?
A. `idMonAn` (dishId).
B. `idKhachHang` (customerId).
C. `thoiGianDanhGia` (reviewTime).
D. `noiDungDanhGia` (reviewContent) và `diemSo` (rating).
Câu 18.Mục đích của việc sử dụng “luồng công việc” (swimlanes) trong Biểu đồ hoạt động cho bài toán đặt món là gì?
A. Để làm cho biểu đồ đẹp hơn.
B. Để ẩn thông tin chi tiết.
C. Để chỉ ra các lỗi.
D. Để phân chia trách nhiệm giữa các tác nhân hoặc đối tượng (ví dụ: Khách hàng, Nhà hàng, Shipper).
Câu 19.Trong phân tích hướng đối tượng, việc áp dụng “đóng gói” (Encapsulation) cho lớp `DonHang` có nghĩa là gì?
A. Cho phép truy cập trực tiếp vào tất cả các thuộc tính của đơn hàng.
B. Loại bỏ tất cả các phương thức của đơn hàng.
C. Chia thuộc tính và phương thức ra các lớp khác nhau.
D. Giấu đi các chi tiết về cách đơn hàng được quản lý nội bộ và chỉ cung cấp các phương thức công khai để tương tác (ví dụ: `capNhatTrangThai()`).
Câu 20.Nếu hệ thống cần quản lý nhiều `DiaChi` (Address) cho một `KhachHang` (ví dụ: nhà riêng, công ty), mối quan hệ giữa `KhachHang` và `DiaChi` có thể là loại nào?
A. Kế thừa.
B. Thành phần.
C. Phụ thuộc.
D. Kết tập (Aggregation) – một khách hàng có nhiều địa chỉ, và địa chỉ có thể tồn tại độc lập.
Câu 21.Trong phân tích hướng đối tượng, việc xác định “ràng buộc” (constraints) trên các thuộc tính của lớp (ví dụ: giá món ăn phải > 0) có vai trò gì?
A. Để làm cho mô hình phức tạp hơn.
B. Để loại bỏ các thuộc tính không cần thiết.
C. Để tự động tạo mã nguồn.
D. Để xác định các quy tắc nghiệp vụ và đảm bảo tính hợp lệ của dữ liệu.
Câu 22.Lớp `Shipper` cần biết `ViTriHienTai` của mình để nhận đơn hàng. Thuộc tính `ViTriHienTai` này sẽ được cập nhật liên tục. Điều này liên quan đến yêu cầu phi chức năng nào?
A. Bảo mật.
B. Khả năng sử dụng.
C. Độ tin cậy.
D. Thời gian thực (Real-time) hoặc Hiệu suất (Performance).
Câu 23.Khi một nhà phân tích nhận thấy rằng lớp `ThanhToan` (Payment) có thể được mở rộng cho nhiều hình thức thanh toán khác nhau (tiền mặt, thẻ, ví điện tử), điều này gợi ý cho việc áp dụng tính chất OOP nào?
A. Đóng gói.
B. Kế thừa.
C. Liên kết.
D. Đa hình (Polymorphism) hoặc kế thừa (nếu có các lớp con cụ thể).
Câu 24.Mục tiêu của việc sử dụng Biểu đồ lớp (Class Diagram) trong case study này là gì?
A. Để mô tả luồng điều khiển của ứng dụng.
B. Để hiển thị trình tự các sự kiện.
C. Để xác định các chức năng của hệ thống.
D. Để biểu diễn cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính, phương thức và mối quan hệ giữa chúng.
Câu 25.Trong pha phân tích hướng đối tượng cho hệ thống này, một trong những rủi ro chính là gì?
A. Không thể tìm thấy món ăn nào.
B. Khách hàng không thể thanh toán.
C. Shipper không thể giao hàng.
D. Yêu cầu về các quy tắc nghiệp vụ (ví dụ: cách tính phí giao hàng, chính sách giảm giá) phức tạp và thường xuyên thay đổi, gây khó khăn trong việc mô hình hóa chính xác.