Trắc nghiệm Công nghệ Phần mềm Bài: TỔNG QUAN VỀ PHA THIẾT KẾ 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 nền tảng và cực kỳ quan trọng, là cầu nối giữa “cái gì” mà hệ thống cần làm (từ pha yêu cầu và phân tích) và “cách thức” mà hệ thống sẽ được xây dựng (trong pha cài đặt), định hình cấu trúc và hành vi của phần mềm.
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), các mô hình kiến trúc phần mềm phổ biến (phân lớp, client-server, microservices), và vai trò của tài liệu thiết kế. Việc hiểu rõ tổng quan về 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: TỔNG QUAN VỀ 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.Pha Thiết kế trả lời câu hỏi “cái gì” (what) hay “cách thức” (how) của hệ thống?
A. Cái gì (what).
B. Khi nào (when).
C. Ai (who).
D. Cách thức (how).
Câu 3.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 Phần mềm (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 4.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 5.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, thuật toán và giao diện bên trong.
Câu 6.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 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.Nguyên tắc “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.Phát biểu nào sau đây **không đúng** về tầm quan trọng 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 13.Thiết kế giao diện người dùng (User Interface – UI) và trải nghiệm người dùng (User Experience – UX) chủ yếu được thực hiện 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âu 14.Một trong những rủi ro lớn nhất nếu pha thiết kế bị bỏ qua hoặc làm kém chất lượng là gì?
A. Phần mềm sẽ chạy quá nhanh.
B. Giảm chi phí bảo trì.
C. Khách hàng sẽ không yêu cầu gì.
D. Hệ thống có cấu trúc kém, khó bảo trì, khó mở rộng và dễ phát sinh lỗi 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 Phần mềm” (Software 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. Thiếu 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.