Trắc nghiệm Công nghệ Phần mềm Bài: PHA THIẾT KẾ

Làm bài thi

Mục Lục

Trắc nghiệm Công nghệ Phần mềm Bài: PHA THIẾT KẾ là một trong những đề thi thuộc Chương 2: CÁC PHA PHÁT TRIỂN PHẦN MỀM 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 cốt lõi, là cầu nối quan trọng giữa các yêu cầu “cái gì” từ pha đặc tả và giai đoạn “cách thức” cài đặt phần mềm. Pha thiết kế định hình cấu trúc tổng thể, các thành phần chính và cách chúng tương tác để xây dựng một hệ thống bền vững, hiệu quả.

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ư: mục đích và tầm quan trọng của pha thiết kế, sự khác biệt giữa thiết kế kiến trúc và thiết kế chi tiết, các nguyên tắc thiết kế cơ bản (modularity, cohesion, coupling, information hiding), các mẫu thiết kế (design patterns) và các mô hình kiến trúc phần mềm phổ biến (phân lớp, client-server, microservices). Việc hiểu rõ pha thiết kế sẽ giúp sinh viên tạo ra các hệ thống phần mềm có cấu trúc rõ ràng, dễ bảo trì, mở rộng và tái sử dụng, là yếu tố then chốt cho sự thành công lâu dài của sản phẩm.

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: PHA THIẾT KẾ

Câu 1.Mục đích chính của Pha Thiết kế (Design Phase) trong phát triển phần mềm là gì?
A. Thu thập yêu cầu từ người dùng cuối.
B. Viết mã nguồn cho các chức năng.
C. Kiểm thử và sửa lỗi sản phẩm.
D. Định nghĩa cấu trúc, thành phần và mối quan hệ của hệ thống để đáp ứng yêu cầu.

Câu 2.Kết quả đầu ra chính của Pha Thiết kế là gì?
A. Tài liệu đặc tả yêu cầu (SRS).
B. Mã nguồn đã được biên dịch.
C. Báo cáo kiểm thử.
D. Tài liệu thiết kế phần mềm (Software Design Document – SDD) và các mô hình thiết kế.

Câu 3.Thiết kế kiến trúc (Architectural Design) tập trung vào điều gì?
A. Chi tiết cài đặt của từng dòng code.
B. Giao diện người dùng cụ thể.
C. Các thuật toán phức tạp.
D. Cấu trúc tổng thể của hệ thống, các thành phần chính và mối quan hệ giữa chúng.

Câu 4.Thiết kế chi tiết (Detailed Design) tập trung vào điều gì?
A. Phạm vi tổng quan của dự án.
B. Các yêu cầu phi chức năng ở mức cao.
C. Mục tiêu kinh doanh của phần mềm.
D. Đặc tả nội bộ của từng module hoặc thành phần, bao gồm cấu trúc dữ liệu và thuật toán.

Câu 5.Nguyên tắc thiết kế “Tính mô-đun” (Modularity) có ý nghĩa gì?
A. Tạo ra một hệ thống không có bất kỳ thành phần nào.
B. Gộp tất cả các chức năng vào một module duy nhất.
C. Làm cho các module phụ thuộc chặt chẽ vào nhau.
D. Chia hệ thống thành các thành phần (module) độc lập, có chức năng riêng biệt và giao tiếp rõ ràng.

Câu 6.Nguyên tắc “Tính liên kết cao” (High Cohesion) trong thiết kế module có nghĩa là gì?
A. Các module trong hệ thống phụ thuộc chặt chẽ vào nhau.
B. Các module nên được đặt trong cùng một thư mục.
C. Các module nên có nhiều giao diện với nhau.
D. Các phần tử bên trong một module có mối quan hệ logic chặt chẽ và phục vụ một mục đích chung duy nhất.

Câu 7.Nguyên tắc “Tính phụ thuộc thấp” (Low Coupling) trong thiết kế hệ thống có nghĩa là gì?
A. Các module nên có ít lỗi.
B. Các module nên được thiết kế độc lập.
C. Các module nên có khả năng tái sử dụng cao.
D. Các module trong hệ thống ít phụ thuộc vào nhau, giảm thiểu ảnh hưởng khi có thay đổi ở một module.

Câu 8.Khái niệm “Che giấu thông tin” (Information Hiding) trong thiết kế có mục đích gì?
A. Giấu các lỗi trong mã nguồn.
B. Không chia sẻ tài liệu với người dùng.
C. Giới hạn quyền truy cập vào phần mềm.
D. Ẩn đi các chi tiết cài đặt bên trong của một module và chỉ cung cấp giao diện công khai để tương tác.

Câu 9.Mô hình nào trong UML được sử dụng rộng rãi trong pha thiết kế để mô tả 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?
A. Biểu đồ trường hợp sử dụng (Use Case Diagram).
B. Biểu đồ hoạt động (Activity Diagram).
C. Biểu đồ trạng thái (State Machine Diagram).
D. Biểu đồ lớp (Class Diagram).

Câu 10.Mô hình kiến trúc phần mềm nào tổ chức hệ thống thành các tầng riêng biệt, mỗi tầng có trách nhiệm cụ thể và giao tiếp với tầng trên/dưới của nó?
A. Mô hình Client-Server.
B. Mô hình Peer-to-Peer.
C. Mô hình Microservices.
D. Mô hình phân lớp (Layered Architecture).

Câu 11.Việc sử dụng các “Design Pattern” (Mẫu thiết kế) trong pha thiết kế mang lại lợi ích gì?
A. Tăng độ phức tạp của mã nguồn.
B. Giới hạn sự sáng tạo của lập trình viên.
C. Chỉ áp dụng cho các dự án nhỏ.
D. Cung cấp các giải pháp đã được kiểm chứng, tái sử dụng được cho các vấn đề thiết kế phổ biến.

Câu 12.Nếu một hệ thống được thiết kế theo mô hình Microservices, điều này thường mang lại lợi ích gì về khả năng mở rộng (scalability)?
A. Hệ thống trở nên rất khó mở rộng.
B. Chỉ có thể mở rộng toàn bộ hệ thống cùng lúc.
C. Yêu cầu phần cứng rất lớn.
D. Cho phép mở rộng độc lập từng dịch vụ riêng lẻ mà không ảnh hưởng đến toàn bộ hệ thống.

Câu 13.Đâu là một thách thức lớn trong pha thiết kế?
A. Khó khăn trong việc tìm lỗi.
B. Không đủ lập trình viên.
C. Khách hàng thay đổi yêu cầu quá thường xuyên.
D. Ra quyết định giữa các phương án thiết kế khác nhau với các ưu nhược điểm riêng.

Câu 14.Phát biểu nào sau đây **không đúng** về vai trò của pha thiết kế?
A. Nó là nền tảng cho việc viết mã nguồn.
B. Nó giúp đảm bảo hệ thống có cấu trúc tốt.
C. Nó góp phần vào khả năng bảo trì của phần mềm.
D. Nó hoàn toàn không ảnh hưởng đến chi phí bảo trì sau này.

Câu 15.Để đảm bảo phần mềm có “khả năng tái sử dụng” (reusability) cao, điều gì cần được chú trọng trong thiết kế?
A. Viết code càng dài càng tốt.
B. Chỉ sử dụng ngôn ngữ lập trình phổ biến.
C. Không bao giờ chia sẻ module.
D. Thiết kế các module độc lập, đóng gói tốt và có giao diện rõ ràng.

Câu 16.Mô hình Client-Server (Khách-Chủ) là một kiến trúc phổ biến. Đâu là đặc điểm chính của nó?
A. Tất cả các thiết bị đều bình đẳng.
B. Không có máy chủ tập trung.
C. Chỉ dùng cho các ứng dụng offline.
D. Một hoặc nhiều máy khách yêu cầu dịch vụ từ một hoặc nhiều máy chủ cung cấp dịch vụ đó.

Câu 17.Trong UML, biểu đồ nào mô tả cách các đối tượng tương tác với nhau theo trình tự thời gian để thực hiện một chức năng cụ thể?
A. Biểu đồ lớp.
B. Biểu đồ thành phần.
C. Biểu đồ trạng thái.
D. Biểu đồ trình tự (Sequence Diagram).

Câu 18.Việc thiết kế một hệ thống phần mềm mà có thể dễ dàng thích nghi với các thay đổi trong yêu cầu kinh doanh hoặc môi trường công nghệ được gọi là gì?
A. Thiết kế cứng nhắc.
B. Thiết kế lỗi thời.
C. Thiết kế ngẫu nhiên.
D. Thiết kế linh hoạt (Flexible Design).

Câu 19.Quyết định về việc sử dụng một hệ thống quản lý cơ sở dữ liệu (DBMS) cụ thể thường được đưa ra trong giai đoạn nào?
A. Pha Yêu cầu.
B. Pha Cài đặt.
C. Pha Kiểm thử.
D. Pha Thiết kế (đặc biệt là thiết kế cơ sở dữ liệu).

Câu 20.Nếu một phần mềm được thiết kế kém (ví dụ: coupling cao, cohesion thấp), điều gì có khả năng xảy ra trong giai đoạn bảo trì?
A. Chi phí bảo trì sẽ giảm đáng kể.
B. Phần mềm sẽ không cần bảo trì.
C. Việc thêm tính năng mới trở nên dễ dàng.
D. Chi phí và độ phức tạp của việc sửa lỗi hoặc mở rộng sẽ tăng lên đáng kể.

Câu 21.Khái niệm “Kiến trúc hệ thống” (System Architecture) đề cập đến điều gì trong pha thiết kế?
A. Sơ đồ các phòng ban trong công ty.
B. Cách bố trí máy tính vật lý.
C. Thiết kế giao diện người dùng.
D. Cấu trúc tổng thể của hệ thống phần mềm, bao gồm các thành phần, giao diện, và mối quan hệ giữa chúng.

Câu 22.Lợi ích của việc thiết kế một giao diện lập trình ứng dụng (API) rõ ràng và ổn định là gì?
A. Làm cho API khó sử dụng.
B. Giới hạn khả năng tích hợp.
C. Yêu cầu nhiều mã hơn để triển khai.
D. Cho phép các module hoặc hệ thống khác dễ dàng tương tác và tích hợp với nhau mà không cần biết chi tiết cài đặt bên trong.

Câu 23.Mối quan hệ nào giữa các pha Phát triển Phần mềm được nhấn mạnh khi nói “một lỗi trong thiết kế sẽ tốn kém hơn nhiều để sửa so với một lỗi trong yêu cầu”?
A. Các pha là độc lập.
B. Chỉ có pha kiểm thử là quan trọng.
C. Không có mối quan hệ giữa các pha.
D. Tính leo thang chi phí khi lỗi được phát hiện muộn hơn trong vòng đời dự án.

Câu 24.Một kiến trúc “Plug-in” (phần bổ trợ) có ý nghĩa gì trong thiết kế?
A. Tất cả các chức năng phải được tích hợp chặt chẽ.
B. Không cho phép bất kỳ module nào khác.
C. Chỉ sử dụng cho các ứng dụng di động.
D. Cho phép thêm các chức năng mới vào hệ thống mà không cần sửa đổi mã nguồn cốt lõi.

Câu 25.Khi một nhà thiết kế phần mềm cân nhắc giữa “Hiệu suất” (Performance) và “Khả năng bảo trì” (Maintainability), đây là ví dụ của việc giải quyết vấn đề gì trong thiết kế?
A. Thiếu kiến thức kỹ thuật.
B. Không đủ công cụ.
C. Không có yêu cầu rõ ràng.
D. Sự đánh đổi (trade-offs) giữa các thuộc tính chất lượng khác nhau của hệ thống.

×

Bạn ơi!!! Để xem được kết quả
bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

LƯU Ý: Không sử dụng VPN hoặc 1.1.1.1 khi vượt link

Bước 1: Mở tab mới, truy cập Google.com

Bước 2: Tìm kiếm từ khóa: Từ khóa

Bước 3: Trong kết quả tìm kiếm Google, hãy tìm website giống dưới hình:

(Nếu trang 1 không có hãy tìm ở trang 2, 3, 4... nhé )

Bước 4: Cuộn xuống cuối bài viết rồi bấm vào nút GIỐNG HÌNH DƯỚI và chờ 1 lát để lấy mã: