Trắc nghiệm Công nghệ Phần mềm Bài: PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG CHO BÀI TOÁN THANG MÁY 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 bài toán kinh điển – hệ thống thang máy.
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ể (Elevator, Floor, Door, Button, Request), 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) để 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 bài toán thang máy theo hướng đối tượng sẽ trang bị cho sinh viên khả năng tư duy trừu tượng và xây dựng mô hình hệ thống phức tạp một cách có hệ thống.
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: PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG CHO BÀI TOÁN THANG MÁY
Câu 1.Trong bài toán thang máy, đối tượng nào sau đây có khả năng đại diện cho một “lớp thực thể” (Entity Class) chính?
A. Màn hình hiển thị tầng.
B. Chức năng di chuyển thang máy.
C. Mã nguồn điều khiển động cơ.
D. Thang máy (Elevator).
Câu 2.Khi một hành khách nhấn nút gọi thang máy ở tầng 5 để đi lên, 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. Điều khiển cửa thang máy.
B. Thang máy di chuyển.
C. Báo động khẩn cấp.
D. Hành khách gọi thang máy.
Câu 3.Thuộc tính nào sau đây phù hợp nhất để mô tả “trạng thái hiện tại” của một đối tượng `CuaThangMay` (Elevator Door)?
A. Màu sắc cửa.
B. Tốc độ đóng mở.
C. Khối lượng cửa.
D. Trạng thái (đang mở, đang đóng, đã mở hoàn toàn, đã đóng hoàn toàn).
Câu 4.Phương thức (Method) nào sau đây phù hợp nhất cho lớp `ThangMay` (Elevator) để xử lý việc di chuyển?
A. `nhanNut()` (pressButton()).
B. `moCua()` (openDoor()).
C. `dongCua()` (closeDoor()).
D. `diChuyen()` (move()).
Câu 5.Trong mối quan hệ giữa lớp `ThangMay` và lớp `Tang` (Floor), thang máy cần biết “tầng hiện tại” mà nó đang ở. Đây là một ví dụ của mối quan hệ nào?
A. Kế thừa (Inheritance).
B. Đa hình (Polymorphism).
C. Thành phần (Composition).
D. Liên kết (Association).
Câu 6.Đối tượng nào sau đây có thể đại diện cho một “lớp điều khiển” (Control Class) trong bài toán thang máy, chịu trách nhiệm điều phối các yêu cầu và hành vi của thang máy?
A. Cửa thang máy (Elevator Door).
B. Nút nhấn bên trong (Inside Button).
C. Tầng (Floor).
D. Bộ điều khiển thang máy (ElevatorController/Scheduler).
Câu 7.Nếu có hai loại nút nhấn: `NutGoi` (Call Button) ở các tầng và `NutChonTang` (Floor Selection Button) bên trong thang máy, chúng có thể được mô hình hóa bằng cách nào để thể hiện tính chất chung và riêng?
A. Tạo hai lớp không liên quan.
B. Sử dụng một lớp duy nhất với nhiều thuộc tính.
C. Tạo hai đối tượng độc lập.
D. Tạo một lớp trừu tượng `Nut` (Button) và hai lớp con kế thừa `NutGoi` và `NutChonTang`.
Câu 8.Một “yêu cầu” (Request) của thang máy (ví dụ: hành khách muốn đi từ tầng 5 lên tầng 10) có thể được mô hình hóa như một lớp. Thuộc tính nào sau đây là quan trọng nhất cho lớp `YeuCau` (Request)?
A. Tên hành khách.
B. Thời gian đặt yêu cầu.
C. Màu sắc của nút.
D. Tầng đích và hướng di chuyển mong muốn.
Câu 9.Biểu đồ nào trong UML phù hợp nhất để mô tả luồng tương tác giữa các đối tượng (ví dụ: khi hành khách nhấn nút gọi, bộ điều khiển nhận yêu cầu, thang máy di chuyể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 10.Lớp `BangHienThiTang` (FloorDisplay) hiển thị số tầng hiện tại của thang máy. Lớp này có thể được coi là một “lớp biên giới” (Boundary Class) vì lý do gì?
A. Nó chứa logic nghiệp vụ phức tạp.
B. Nó lưu trữ dữ liệu bền vững.
C. Nó điều phối hoạt động của các đối tượng khác.
D. Nó chịu trách nhiệm giao tiếp giữa hệ thống và người dùng (hiển thị thông tin).
Câu 11.Mối quan hệ giữa lớp `ThangMay` và các đối tượng `CuaThangMay` (Elevator Doors) trong một thang máy thường là mối quan hệ nào?
A. Kế thừa (Inheritance).
B. Liên kết (Association).
C. Phụ thuộc (Dependency).
D. Thành phần (Composition) – cửa là một phần không thể tách rời của thang máy.
Câu 12.Nếu có một “Chức năng dừng khẩn cấp” (Emergency Stop) cho thang máy, đây là một “trường hợp sử dụng” có thể được mô hình hóa như thế nào?
A. Là một thuộc tính của lớp `ThangMay`.
B. Là một phương thức riêng lẻ không liên quan đến lớp nào.
C. Là một yêu cầu phi chức năng.
D. Là một Use Case chính với các kịch bản hành động cụ thể.
Câu 13.Thuộc tính nào sau đây không phù hợp để thêm vào lớp `Tang` (Floor)?
A. `soTang` (floorNumber).
B. `nutGoiLen` (upCallButton).
C. `nutGoiXuong` (downCallButton).
D. `sucChuaToiDaThangMay` (maxElevatorCapacity).
Câu 14.Khái niệm “đa hình” (Polymorphism) có thể được áp dụng trong bài toán thang máy như thế nào?
A. Để che giấu trạng thái cửa.
B. Để lưu trữ dữ liệu tầng.
C. Để chỉ có một nút nhấn duy nhất.
D. Khi các loại thang máy khác nhau (ví dụ: thang máy chở khách, thang máy chở hàng) có thể có phương thức `diChuyen()` (move()) được triển khai khác nhau.
Câu 15.Trong biểu đồ lớp của bài toán thang máy, mũi tên liên kết từ lớp `BoDieuKhienThangMay` đến lớp `ThangMay` với ký hiệu “gọi phương thức” (`call`) thể hiện điều gì?
A. Thang máy kế thừa từ bộ điều khiển.
B. Bộ điều khiển là một phần của thang máy.
C. Thang máy biết cách hoạt động của bộ điều khiển.
D. Bộ điều khiển tương tác với thang máy bằng cách gọi các phương thức của nó.
Câu 16.Nếu một đối tượng `HanHanhKhach` (Passenger) được mô hình hóa, thuộc tính nào sau đây có thể là một phần của nó?
A. Tầng hiện tại của thang máy.
B. Tốc độ di chuyển của thang máy.
C. Trạng thái cửa thang máy.
D. Tầng hiện tại của hành khách và tầng đích mong muốn.
Câu 17.Trong bài toán thang máy, việc mô hình hóa các “trạng thái” của thang máy (ví dụ: dừng, di chuyển lên, di chuyển xuống, cửa mở) có thể được thể hiện hiệu quả nhất bằng biểu đồ UML nào?
A. Biểu đồ lớp.
B. Biểu đồ trình tự.
C. Biểu đồ hoạt động.
D. Biểu đồ trạng thái (State Machine Diagram).
Câu 18.Mục tiêu của việc đóng gói (Encapsulation) trong thiết kế lớp `ThangMay` là gì?
A. Để lộ ra tất cả các chi tiết bên trong.
B. Để làm cho lớp phức tạp hơn.
C. Để cho phép truy cập trực tiếp vào dữ liệu.
D. Che giấu các chi tiết cài đặt bên trong như cơ chế di chuyển, trạng thái cửa, và chỉ hiển thị giao diện công khai để tương tác.
Câu 19.Trong một hệ thống thang máy có nhiều thang máy, lớp `HeThongThangMay` (ElevatorSystem) có vai trò gì trong phân tích hướng đối tượng?
A. Là một lớp giao diện người dùng.
B. Là một lớp thực thể đơn lẻ.
C. Là một lớp điều khiển cho một thang máy.
D. Là một lớp điều khiển tổng thể, quản lý và điều phối hoạt động của nhiều thang máy và các yêu cầu từ các tầng.
Câu 20.Nếu một nút nhấn được mô hình hóa là một lớp, phương thức nào sau đây sẽ là phù hợp nhất để đại diện cho hành động của nó?
A. `getTrangThaiCua()` (getDoorState()).
B. `tinhToanThoiGian()` (calculateTime()).
C. `kiemTraLoi()` (checkError()).
D. `nhanNut()` (pressButton()).
Câu 21.Trong phân tích hướng đối tượng cho bài toán thang máy, việc xác định các “yêu cầu phi chức năng” như “thang máy phải phản hồi yêu cầu trong vòng X giây” thuộc về khía cạnh nào?
A. Thiết kế giao diện.
B. Cài đặt mã nguồn.
C. Kiểm thử chức năng.
D. Yêu cầu hiệu suất.
Câu 22.Lớp `LichSuHoatDong` (ActivityLog) ghi lại mọi sự kiện của thang máy (ví dụ: tầng dừng, thời gian mở cửa). Lớp này có mối quan hệ phụ thuộc (Dependency) với lớp nào?
A. Lớp `CuaThangMay`.
B. Lớp `NutNhan`.
C. Lớp `Tang`.
D. Lớp `ThangMay` và `BoDieuKhienThangMay` (vì nó ghi lại thông tin từ các đối tượng này).
Câu 23.Giả sử chúng ta có một lớp trừu tượng `ThietBiThangMay` (ElevatorDevice) và các lớp cụ thể như `DongCo` (Motor), `CamBien` (Sensor), `Chuong` (Bell) kế thừa từ nó. Đây là một ví dụ của tính chất OOP nào?
A. Đóng gói.
B. Đa hình.
C. Liên kết.
D. Kế thừa.
Câu 24.Mục tiêu của việc sử dụng biểu đồ trường hợp sử dụng (Use Case Diagram) trong bài toán thang máy là gì?
A. Để mô tả cấu trúc chi tiết của các lớp.
B. Để hiển thị luồng dữ liệu giữa các thành phần.
C. Để minh họa các trạng thái của thang máy.
D. Để xác định các chức năng chính của hệ thống từ góc nhìn của các tác nhân (actors) như Hành khách, Kỹ thuật viên bảo trì.
Câu 25.Khi phân tích bài toán thang máy, việc đảm bảo rằng hệ thống có thể xử lý nhiều yêu cầu đồng thời và hiệu quả liên quan đến việc xem xét khía cạnh nào của phần mềm?
A. Khả năng sử dụng (Usability).
B. Khả năng bảo trì (Maintainability).
C. Khả năng tương thích (Compatibility).
D. Đồng thời (Concurrency) và hiệu suất (Performance).