Trắc nghiệm Công nghệ Phần mềm Bài: THIẾT KẾ HƯỚNG HÀNH ĐỘNG là một trong những đề thi thuộc Chương 8: PHA THIẾT KẾ 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 quan trọng, giới thiệu một cách tiếp cận thiết kế phần mềm tập trung vào các chức năng và luồng xử lý, thay vì cấu trúc dữ liệu hoặc đối tượng, là một phương pháp truyền thống nhưng vẫn có giá trị trong một số bối cảnh.
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ư: định nghĩa và đặc điểm của thiết kế hướng hành động (Action-Oriented Design), sự khác biệt với thiết kế hướng đối tượng, các kỹ thuật và công cụ phổ biến được sử dụng (biểu đồ luồng dữ liệu DFD, biểu đồ luồng chương trình, sơ đồ trạng thái), cách phân rã chức năng thành các module, và những ưu điểm cũng như nhược điểm của phương pháp này. Việc hiểu rõ thiết kế hướng hành động sẽ trang bị cho sinh viên cái nhìn đa chiều về các phong cách thiết kế phần mềm và khả năng lựa chọn phương pháp phù hợp với từng dự á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: THIẾT KẾ HƯỚNG HÀNH ĐỘNG
Câu 1.Thiết kế hướng hành động (Action-Oriented Design) tập trung chủ yếu vào việc gì?
A. Cấu trúc dữ liệu và mối quan hệ giữa chúng.
B. Các đối tượng và tính đóng gói.
C. Giao diện người dùng và trải nghiệm.
D. Các chức năng, luồng xử lý và biến đổi dữ liệu trong hệ thống.
Câu 2.Mô hình phát triển phần mềm nào thường sử dụng cách tiếp cận thiết kế hướng hành động?
A. Mô hình Agile.
B. Mô hình hướng đối tượng.
C. Mô hình microservices.
D. Mô hình Thác nước (Waterfall Model).
Câu 3.Đâu là một trong những kỹ thuật chính được sử dụng trong thiết kế hướng hành động để biểu diễn luồng dữ liệu và các quá trình xử lý?
A. Biểu đồ lớp (Class Diagram).
B. Biểu đồ trình tự (Sequence Diagram).
C. Biểu đồ trường hợp sử dụng (Use Case Diagram).
D. Biểu đồ luồng dữ liệu (Data Flow Diagram – DFD).
Câu 4.Trong thiết kế hướng hành động, “phân rã chức năng” (Functional Decomposition) là gì?
A. Gộp tất cả các chức năng thành một.
B. Loại bỏ các chức năng không cần thiết.
C. Thay đổi tên các chức năng.
D. Chia nhỏ một chức năng lớn thành các chức năng con nhỏ hơn, dễ quản lý hơn.
Câu 5.Mục đích của việc tạo “Module” trong thiết kế hướng hành động là gì?
A. Để làm cho mã nguồn phức tạp hơn.
B. Để chỉ lưu trữ dữ liệu.
C. Để xử lý các sự kiện bên ngoài.
D. Để nhóm các hàm hoặc thủ tục liên quan lại với nhau, thực hiện một nhiệm vụ cụ thể.
Câu 6.Phát biểu nào sau đây **không đúng** về thiết kế hướng hành động?
A. Nó tập trung vào các động từ (hành động).
B. Nó là một cách tiếp cận truyền thống.
C. Nó thường dẫn đến các chương trình dạng thủ tục.
D. Nó ưu tiên các đối tượng và mối quan hệ giữa chúng.
Câu 7.So với thiết kế hướng đối tượng, thiết kế hướng hành động có nhược điểm gì khi đối mặt với sự thay đổi của yêu cầu?
A. Dễ thay đổi hơn.
B. Linh hoạt hơn.
C. Chi phí thay đổi thấp hơn.
D. Khó khăn hơn trong việc thích nghi với các thay đổi do sự phụ thuộc chặt chẽ giữa dữ liệu và hàm xử lý.
Câu 8.Đâu là một trong những công cụ chính được sử dụng để chuyển đổi từ DFD sang cấu trúc chương trình trong thiết kế hướng hành động?
A. Công cụ mô hình hóa UML.
B. Trình biên dịch mã nguồn.
C. Hệ thống quản lý cơ sở dữ liệu.
D. Sơ đồ cấu trúc (Structure Chart) hoặc Biểu đồ điều khiển (Control Flow Diagram).
Câu 9.Trong thiết kế hướng hành động, “thủ tục” (procedure) hoặc “hàm” (function) là các khối xây dựng cơ bản. Điều này có nghĩa là gì?
A. Dữ liệu và hàm luôn được kết hợp.
B. Chỉ có thể sử dụng một hàm duy nhất.
C. Hàm không có tham số.
D. Chương trình được tổ chức thành các tập hợp các hàm xử lý dữ liệu.
Câu 10.Lợi ích chính của thiết kế hướng hành động là gì?
A. Khả năng tái sử dụng cao của các module.
B. Dễ dàng mở rộng hệ thống.
C. Giảm chi phí bảo trì.
D. Thường dễ dàng hơn cho các lập trình viên quen với tư duy lập trình thủ tục và cho các bài toán có luồng xử lý rõ ràng.
Câu 11.Khi thiết kế hướng hành động, việc xem xét các “điều kiện” (conditions) và “vòng lặp” (loops) trong logic xử lý thường được thể hiện bằng biểu đồ nào?
A. Biểu đồ lớp.
B. Biểu đồ trường hợp sử dụng.
C. Biểu đồ trình tự.
D. Biểu đồ luồng chương trình (Flowchart) hoặc Biểu đồ hoạt động (Activity Diagram).
Câu 12.Một “module” trong thiết kế hướng hành động được thiết kế để có “tính liên kết” (cohesion) như thế nào?
A. Thấp, các yếu tố không liên quan.
B. Không liên quan đến cohesion.
C. Trung bình.
D. Cao, tức là các hàm bên trong module liên quan chặt chẽ đến nhau và phục vụ một mục đích duy nhất.
Câu 13.Sự “phụ thuộc” (coupling) giữa các module trong thiết kế hướng hành động thường được quan tâm như thế nào?
A. Không quan tâm.
B. Luôn luôn cao.
C. Chỉ phụ thuộc vào một module.
D. Cần được giữ ở mức thấp để giảm thiểu tác động khi có thay đổi.
Câu 14.Thiết kế hướng hành động thường dẫn đến việc phân chia hệ thống thành các:
A. Đối tượng độc lập.
B. Lớp dữ liệu.
C. Giao diện người dùng.
D. Chức năng và module xử lý dữ liệu.
Câu 15.Để thiết kế một hệ thống bằng phương pháp hướng hành động, tài liệu nào từ pha phân tích là đầu vào quan trọng nhất?
A. Tài liệu yêu cầu phi chức năng.
B. Biểu đồ lớp (Class Diagram).
C. Biểu đồ thực thể-mối quan hệ (ERD).
D. Biểu đồ luồng dữ liệu (Data Flow Diagram – DFD).
Câu 16.Phát biểu nào sau đây mô tả đúng nhất về sự khác biệt giữa thiết kế hướng hành động và thiết kế hướng đối tượng?
A. Hướng hành động tập trung vào dữ liệu, hướng đối tượng tập trung vào hành động.
B. Hướng hành động linh hoạt hơn hướng đối tượng.
C. Hướng hành động không cần tài liệu.
D. Hướng hành động tập trung vào “làm” (functions/processes), trong khi hướng đối tượng tập trung vào “là” (objects/entities).
Câu 17.Trong thiết kế hướng hành động, “thư viện hàm” (function library) là một ví dụ của việc tổ chức code theo nguyên tắc nào?
A. Đóng gói.
B. Kế thừa.
C. Đa hình.
D. Mô-đun hóa (Modularity).
Câu 18.Hạn chế lớn của thiết kế hướng hành động là gì khi xử lý các hệ thống lớn và phức tạp?
A. Dễ dàng bảo trì.
B. Dễ dàng tái sử dụng.
C. Dễ dàng kiểm thử.
D. Khó khăn trong việc quản lý sự phức tạp, tái sử dụng và mở rộng do sự tách biệt giữa dữ liệu và hành vi.
Câu 19.Khi một hệ thống được thiết kế theo hướng hành động, việc thay đổi cấu trúc dữ liệu sẽ ảnh hưởng như thế nào?
A. Không ảnh hưởng đến các hàm.
B. Chỉ ảnh hưởng đến một hàm duy nhất.
C. Sẽ làm cho hệ thống không hoạt động.
D. Có thể yêu cầu sửa đổi nhiều hàm xử lý dữ liệu đó do sự phụ thuộc lẫn nhau.
Câu 20.Mô hình kiến trúc nào thường được sử dụng cùng với thiết kế hướng hành động?
A. Kiến trúc hướng dịch vụ (SOA).
B. Kiến trúc microservices.
C. Kiến trúc dựa trên thành phần (Component-based).
D. Kiến trúc thủ tục (Procedural Architecture) hoặc kiến trúc phân lớp (Layered Architecture).
Câu 21.Để thiết kế một hệ thống tính toán khoa học với các thuật toán phức tạp nhưng ít thay đổi về dữ liệu, phương pháp thiết kế nào có thể phù hợp hơn?
A. Thiết kế hướng đối tượng.
B. Thiết kế hướng sự kiện.
C. Thiết kế dựa trên thành phần.
D. Thiết kế hướng hành động (do tập trung vào thuật toán và luồng xử lý).
Câu 22.Mục tiêu của việc sử dụng các “bảng quyết định” (decision tables) và “cây quyết định” (decision trees) trong thiết kế hướng hành động là gì?
A. Để mô tả giao diện người dùng.
B. Để ước lượng chi phí.
C. Để quản lý rủi ro.
D. Để đặc tả logic nghiệp vụ phức tạp một cách rõ ràng và không mơ hồ.
Câu 23.Khái niệm “Đường găng” (Critical Path) trong lập kế hoạch và thiết kế hướng hành động đề cập đến điều gì?
A. Con đường ngắn nhất để hoàn thành dự án.
B. Các hoạt động không quan trọng.
C. Các chức năng dễ viết code.
D. Chuỗi các hoạt động có thời gian thực hiện dài nhất và quyết định tổng thời gian hoàn thành dự án.
Câu 24.Ai là người đóng vai trò chính trong việc thực hiện thiết kế hướng hành động?
A. Khách hàng.
B. Người dùng cuối.
C. Người kiểm thử.
D. Kỹ sư phần mềm/Lập trình viên và nhà thiết kế hệ thống.
Câu 25.Khi một chức năng đã được thiết kế theo hướng hành động, việc thêm một chức năng mới tương tự có thể dẫn đến vấn đề gì?
A. Rất dễ dàng và không tốn kém.
B. Không ảnh hưởng đến chức năng khác.
C. Tăng khả năng tái sử dụng.
D. Gây ra sự trùng lặp code (code duplication) hoặc khó khăn trong việc quản lý nếu không có sự mô-đun hóa tốt.