Thi lại · SWD392 · Summer 2026

Ôn tập thi lại SWD392 Summer 2026

119 câu gom từ 2 đề ôn của kỳ Summer 2026.

2 đề gốc

Bấm để làm trọn một đề thay vì tra từng câu

119 câu hỏi

Trang 5 / 6
AMonolithic architecture
BComponent-based architecture
CLayered architecture
DEvent-driven architecture
Lời giải
Đáp án đúng: B. Kiến trúc hướng thành phần (component-based architecture) tổ chức phần mềm thành các thành phần độc lập, có giao diện rõ ràng, thay thế và tái sử dụng được, tương tác với nhau qua các giao diện đó. A sai vì kiến trúc nguyên khối gộp tất cả vào một khối duy nhất — ngược hẳn với "tách rời". C sai vì kiến trúc phân tầng tổ chức theo TẦNG chồng lên nhau với ràng buộc tầng trên gọi tầng dưới, cách chia khác với chia theo thành phần. D sai vì kiến trúc hướng sự kiện nói về cách các bên giao tiếp (qua sự kiện), không phải về cách chia phần mềm thành đơn vị.
Mở trang câu hỏi này →
AThe ability of a system to perform its intended functions without failure.
BThe ease with which software can be modified to correct defects, improve performance, or adapt to changes.
CThe ability of a system to scale and handle increased load.
DThe degree to which software can be used in different operating environments.
Lời giải
Đáp án đúng: B. Khả năng bảo trì (maintainability) là mức độ dễ dàng khi sửa đổi phần mềm: sửa lỗi, cải thiện hiệu năng, hoặc thích ứng với thay đổi của môi trường và yêu cầu. Trọng tâm là CHI PHÍ THAY ĐỔI, không phải chất lượng lúc vận hành. A sai vì "thực hiện đúng chức năng, không hỏng" là định nghĩa của độ tin cậy (reliability). C sai vì "mở rộng để chịu tải cao hơn" là khả năng mở rộng (scalability). D sai vì "dùng được trên nhiều môi trường vận hành khác nhau" là tính khả chuyển (portability).
Mở trang câu hỏi này →
AThe pipeline in cloud
BA service in server
CThe software products marketed by a company
DA family of systems with some common components and some variable components
Lời giải
Đáp án đúng: D. Dòng sản phẩm phần mềm (software product line) là một họ hệ thống chia sẻ phần chung (kernel — có mặt ở mọi thành viên) và khác nhau ở phần biến thiên (optional/variant). Chính cặp "chung + biến thiên" này là điều làm nên khái niệm SPL: xây một lần phần chung rồi sinh ra nhiều thành viên. C sai vì tập sản phẩm mà một công ty bán ra chỉ là danh mục thương mại, chúng có thể chẳng chia sẻ kiến trúc hay thành phần nào. A và B sai hoàn toàn — pipeline trên cloud và dịch vụ trên máy chủ là khái niệm hạ tầng, không liên quan tới họ sản phẩm.
Mở trang câu hỏi này →
AA class exposes all its data structures to allow flexibility in communication.
BA class hides certain details, such as a data structure, internally and keeps them inaccessible to the rest of the system.
CA class combines its interface and implementation to simplify design.
DA class prioritizes synchronous communication between objects.
Lời giải
Thông tin giấu (Information Hiding) là một khái niệm quan trọng trong thiết kế phần mềm. Nó cho phép một lớp (class) giấu đi một số chi tiết nội bộ, chẳng hạn như cấu trúc dữ liệu, và chỉ cho phép truy cập thông qua giao diện (interface) được xác định. Điều này giúp giảm thiểu sự phụ thuộc giữa các lớp và tăng cường tính bảo mật. Thông tin giấu giúp ngăn chặn việc truy cập trực tiếp vào dữ liệu nội bộ của một lớp, từ đó giảm thiểu khả năng xảy ra lỗi và tăng cường tính ổn định của hệ thống. Nó cũng giúp giảm thiểu sự phức tạp trong thiết kế và phát triển phần mềm.
Mở trang câu hỏi này →
AScalability
BMaintainability
CPerformance
DSecurity
Lời giải
Tính chất chất lượng phần mềm mà tập trung vào sự dễ dàng trong việc sửa lỗi và thay đổi hệ thống sau khi triển khai là Maintainability. Maintainability cho phép các nhà phát triển dễ dàng sửa lỗi, cập nhật và cải thiện hệ thống mà không cần phải thay đổi toàn bộ hệ thống. Điều này giúp giảm thiểu thời gian và chi phí cần thiết để sửa lỗi và cải thiện hệ thống. Maintainability cũng giúp đảm bảo rằng hệ thống luôn được cập nhật và cải thiện để đáp ứng nhu cầu của người dùng.
Mở trang câu hỏi này →
AIf the client only communicates with the service once
BIf the client needs to have a dialog with the service
CIf the client knows the type of service required but not the specific service
DIf the client needs to provide the broker with a handle
Lời giải
Đáp án đúng: B. Broker Forwarding chuyển tiếp mọi lời gọi qua broker, còn Broker Handle thì broker chỉ trả về một handle (tham chiếu) tới dịch vụ để sau đó client giao tiếp trực tiếp với dịch vụ. Vì vậy Broker Handle đặc biệt hữu ích khi client cần trao đổi nhiều lượt, tức là có một phiên hội thoại với dịch vụ: chỉ phải qua broker một lần rồi làm việc trực tiếp, tránh nút thắt cổ chai. Nếu client chỉ gọi một lần (A) thì forwarding đơn giản hơn; phương án C mô tả tình huống dùng dịch vụ môi giới nói chung; phương án D đảo ngược vai trò - chính broker mới là bên cấp handle.
Mở trang câu hỏi này →
AThe number of objects in a relationship.
BThe number of classes.
CThe number of attributes.
DThe number of state transitions.
Lời giải
Đáp án đúng: A. Multiplicity trong UML thể hiện số lượng đối tượng có thể tham gia vào một quan hệ - tức là mỗi thể hiện ở đầu này của liên kết ứng với bao nhiêu thể hiện ở đầu kia, viết dưới dạng 1, 0..1, 1..* hay *. Nó ràng buộc cấu trúc dữ liệu của mô hình và là căn cứ để sinh khoá ngoại, bảng trung gian khi ánh xạ sang cơ sở dữ liệu quan hệ. Số lượng lớp (B), số thuộc tính (C) và số chuyển trạng thái (D) đều là những đại lượng đếm khác trong mô hình, không phải nội dung mà ký hiệu multiplicity biểu diễn.
Mở trang câu hỏi này →
ATo list UML symbols used
BTo describe trade-offs, impact on flexibility, reusability, and potential liabilities of using the pattern
CTo replace the need for code implementation
DTo ensure automatic generation of test cases
Lời giải
Việc ghi chép lại các hậu quả của một mẫu thiết kế trong bản template của GoF rất quan trọng vì nó giúp người đọc hiểu rõ về các ưu và nhược điểm của mẫu thiết kế đó. Điều này bao gồm cả tác động của mẫu thiết kế lên tính linh hoạt, khả năng tái sử dụng và các rủi ro tiềm ẩn. Việc ghi chép lại các hậu quả này giúp người đọc có thể đưa ra quyết định sáng suốt khi chọn mẫu thiết kế phù hợp cho dự án của mình. Ngoài ra, việc ghi chép lại các hậu quả cũng giúp người đọc hiểu rõ về cách áp dụng mẫu thiết kế một cách hiệu quả và tránh các sai lầm phổ biến.
Mở trang câu hỏi này →
What is a kernel class in a SPL?4 lựa chọn
AAn entity class in the SPL
BA SPL class that stores essential data
CA class that is required by all members of the SPL
DAn external class to the SPL
Lời giải
Đáp án đúng: C. Trong dòng sản phẩm phần mềm (SPL), kernel class là lớp bắt buộc phải có ở MỌI thành viên của dòng sản phẩm - đó là phần lõi chung, không thay đổi giữa các biến thể. Bên cạnh kernel còn có lớp tuỳ chọn (optional) chỉ xuất hiện ở một số thành viên và lớp biến thể (variant) có nhiều phiên bản khác nhau. Phương án A và B mô tả vai trò lưu trữ dữ liệu của lớp thực thể chứ không nói tới tính bắt buộc chung; phương án D đặt lớp ra ngoài dòng sản phẩm, trái hẳn với ý nghĩa "lõi" của kernel.
Mở trang câu hỏi này →
ATo describe an inclusive use case
BTo describe a lengthy interaction with an actor
CTo describe a use case that includes other use cases
Lời giải
Đáp án đúng: C. Inclusion use case là use case được các use case khác gọi tới bằng quan hệ include, dùng để tách phần hành vi chung lặp lại ở nhiều use case ra một nơi duy nhất. Trong câu hỏi này, cách diễn đạt đúng nhất là dùng nó để mô tả một use case có bao gồm các use case khác, tức là mối quan hệ bao hàm giữa các use case. Phương án A chỉ lặp lại chính từ trong câu hỏi mà không giải thích được điều gì; phương án B nói về độ dài tương tác với tác nhân, hoàn toàn không phải tiêu chí để tách một inclusion use case.
Mở trang câu hỏi này →
AData types
BUse case names
CMultiplicity
DTransition triggers
Lời giải
Đáp án đúng: C. Khi thiết lập liên kết giữa các đối tượng trên sơ đồ lớp, khái niệm nền tảng là multiplicity - bội số, cho biết mỗi thể hiện của lớp này có thể liên kết với bao nhiêu thể hiện của lớp kia (1, 0..1, 1..*, *). Bội số quyết định bản chất quan hệ một - một, một - nhiều hay nhiều - nhiều và về sau chi phối cả cách ánh xạ sang cơ sở dữ liệu quan hệ. Kiểu dữ liệu (A) thuộc về thuộc tính của lớp; tên use case (B) nằm ở mô hình use case; transition trigger (D) là yếu tố của máy trạng thái, đều không liên quan tới việc xác lập liên kết.
Mở trang câu hỏi này →
ATo partition the system into manageable, reusable modules
BTo eliminate object-oriented design dependencies
CTo simplify use case modeling
DTo reduce the need for UML diagrams
Lời giải
Đáp án đúng: A. Trọng tâm của thiết kế kiến trúc hệ thống con là phân hoạch hệ thống thành các mô-đun dễ quản lý và có thể tái sử dụng, mỗi mô-đun có trách nhiệm rõ ràng, kết dính cao bên trong và ghép lỏng với bên ngoài qua giao diện được định nghĩa tường minh. Nhờ đó nhiều nhóm có thể phát triển song song và thay đổi cục bộ không lan rộng. Phương án B sai vì thiết kế kiến trúc quản lý chứ không loại bỏ phụ thuộc hướng đối tượng; phương án C nhầm sang pha phân tích use case; phương án D sai vì kiến trúc càng cần UML để mô tả, không phải để giảm bớt.
Mở trang câu hỏi này →
AThe transition from analysis to design
BThe design of user interfaces
CThe implementation of individual classes
DThe structuring of the system into subsystems
Lời giải
Đáp án đúng: D. Thiết kế kiến trúc hệ thống con tập trung vào việc cấu trúc hoá toàn hệ thống thành các hệ thống con: xác định ranh giới, trách nhiệm, giao diện và quan hệ giữa chúng, đồng thời chọn mẫu kiến trúc phù hợp. Đây là mức nhìn tổng thể, đứng trên mức lớp. Phương án A mô tả chung cả bước chuyển từ phân tích sang thiết kế chứ không nói được trọng tâm; phương án B chỉ là một phần nhỏ thuộc thiết kế giao diện người dùng; phương án C thuộc mức thiết kế chi tiết và hiện thực từng lớp, diễn ra sau khi cấu trúc hệ thống con đã được xác lập.
Mở trang câu hỏi này →
AClient-server architecture
BLayered architecture
CPeer-to-peer architecture
DPipe and filter architecture
Lời giải
Đáp án đúng: B. Kiến trúc phân tầng tổ chức hệ thống thành một hệ thứ bậc các tầng, trong đó mỗi tầng cung cấp dịch vụ cho tầng ngay trên nó và chỉ sử dụng dịch vụ của tầng ngay dưới. Cách tổ chức này làm rõ trách nhiệm, giới hạn phạm vi thay đổi và cho phép thay thế một tầng mà ít ảnh hưởng phần còn lại. Client-server (A) chia theo vai trò yêu cầu - phục vụ chứ không theo thứ bậc dịch vụ; peer-to-peer (C) đặt các nút ngang hàng, vừa là client vừa là server; pipe-and-filter (D) nối các bộ lọc thành dây chuyền xử lý dữ liệu tuần tự.
Mở trang câu hỏi này →
AExtend
BInclude
CGeneralization
DAbstract
Lời giải
Đáp án đúng: C. Trả tiền mặt và trả bằng thẻ là hai cách thực hiện KHÁC NHAU của cùng một hành vi trả tiền, nên use case Cash payment là một trường hợp chuyên biệt hoá của use case Payment - quan hệ generalization, trong đó Payment đóng vai trò use case trừu tượng. Quan hệ include (B) dùng khi một use case luôn gọi trọn vẹn một use case khác như phần dùng chung; extend (A) dùng cho hành vi tuỳ chọn, chỉ chèn thêm khi thoả điều kiện; còn "abstract" (D) là một tính chất của phần tử mô hình chứ không phải một loại quan hệ giữa các use case.
Mở trang câu hỏi này →
AProgramming language used
BHardware the system will run on
CWhether to partition by domain or technical capabilities
DUI color scheme
Lời giải
Đáp án đúng: C. Một cân nhắc then chốt khi phân hoạch thành phần là chọn ranh giới phân chia: theo miền nghiệp vụ (mỗi thành phần phụ trách một mảng nghiệp vụ trọn vẹn) hay theo năng lực kỹ thuật (chia theo tầng như giao diện, nghiệp vụ, dữ liệu). Lựa chọn này quyết định mức độ kết dính, ghép nối và khả năng phát triển độc lập của từng nhóm. Ngôn ngữ lập trình (A), phần cứng chạy hệ thống (B) và bảng màu giao diện (D) là những quyết định ở mức hiện thực hoặc trình bày, không định hình cách chia hệ thống thành các thành phần.
Mở trang câu hỏi này →
AEnsuring that all subsystems are tightly coupled for better performance.
BFocusing on functional decomposition, where each subsystem addresses a distinct part of the system.
CMinimizing the number of subsystems to simplify the system design.
DIgnoring the geographical distribution of components during subsystem design.
Lời giải
Đáp án đúng: B. Khi phân tích miền bài toán và phân rã hệ thống thành các hệ thống con, trọng tâm là phân rã theo chức năng: mỗi hệ thống con đảm nhiệm một phần riêng biệt, có ranh giới rõ ràng và giao diện hẹp với bên ngoài. Đây là cách đạt được kết dính cao bên trong và ghép lỏng giữa các hệ thống con. Phương án A đi ngược nguyên tắc ghép lỏng; phương án C lấy việc giảm số lượng hệ thống con làm mục tiêu, dễ tạo ra khối lớn khó bảo trì; phương án D bỏ qua yếu tố phân tán địa lý, trong khi vị trí triển khai lại là một tiêu chí quan trọng khi phân rã hệ phân tán.
Mở trang câu hỏi này →
AComponents communicate via asynchronous events
BComponents communicate synchronously
CComponents are tightly coupled
DComponents must share the database
Lời giải
Đáp án đúng: A. Kiến trúc hướng sự kiện hoạt động theo cơ chế các thành phần giao tiếp với nhau qua các sự kiện BẤT ĐỒNG BỘ: bên phát sinh sự kiện chỉ công bố sự kiện rồi tiếp tục công việc của mình, không chờ phản hồi, còn các bên quan tâm sẽ nhận và xử lý độc lập. Nhờ vậy các thành phần được ghép lỏng và hệ thống dễ mở rộng. Phương án B mô tả kiểu giao tiếp đồng bộ của kiến trúc client-server; phương án C ngược với đặc trưng ghép lỏng của kiến trúc này; phương án D áp đặt một cơ sở dữ liệu dùng chung - đó là đặc điểm của kiến trúc kho dữ liệu trung tâm.
Mở trang câu hỏi này →
AA static view in terms of a module hierarchy
BA static view in terms of components and connectors
CA view of the physical configuration in terms of nodes and interconnections
DA dynamic interaction view in terms of objects and messages
Lời giải
Đáp án đúng: C. Deployment view (khung nhìn triển khai) mô tả cấu hình VẬT LÝ của hệ thống: các nút xử lý (node) và các đường kết nối giữa chúng, cùng việc phân bổ các thành phần phần mềm lên từng nút. Đây là khung nhìn trả lời câu hỏi phần mềm chạy ở đâu và giao tiếp qua hạ tầng nào. Phương án A mô tả khung nhìn phân rã theo mô-đun; phương án B là khung nhìn thành phần và đầu nối (component-and-connector); phương án D là khung nhìn tương tác động giữa các đối tượng và thông điệp. Cả ba đều là những khung nhìn khác trong bộ khung nhìn kiến trúc phần mềm.
Mở trang câu hỏi này →
AThe state and transitions inside a control object
BClasses and their relationships
CSoftware objects and the sequence of their interactions
DThe external objects communicating with the system
Lời giải
Đáp án đúng: C. Sơ đồ tương tác (interaction diagram) mô tả các đối tượng phần mềm và TRÌNH TỰ tương tác - tức là trình tự các thông điệp trao đổi giữa chúng để hiện thực hoá một use case. UML có hai dạng chính là sequence diagram và communication diagram, cả hai đều nhấn mạnh khía cạnh động này. Phương án A mô tả nội dung của statechart; phương án B là nội dung của class diagram - cấu trúc tĩnh và quan hệ giữa các lớp; phương án D nói về các tác nhân, đối tượng bên ngoài giao tiếp với hệ thống, tức là phạm vi của sơ đồ ngữ cảnh hoặc use case.
Mở trang câu hỏi này →
Đi tiếp từ đây