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 3 / 6
AOne state with a different transition out of it for each incoming message
BOne state for each of the alternative messages
CA composite state to handle the alternative messages
DA substate for each alternative message
Lời giải
Đáp án đúng: A. Đối tượng điều khiển phụ thuộc trạng thái đang ở MỘT trạng thái; việc nó có thể nhận thông điệp a hoặc b được mô hình hoá bằng cách vẽ từ trạng thái đó nhiều phép chuyển đi ra, mỗi phép chuyển ứng với một thông điệp đến và dẫn tới một trạng thái đích khác nhau. B sai vì nhầm thông điệp với trạng thái: thông điệp là sự kiện kích hoạt phép chuyển, không phải trạng thái. C sai vì trạng thái ghép dùng để phân rã một trạng thái phức tạp thành máy con, không phải để phân nhánh theo thông điệp đến. D sai vì tạo trạng thái con cho mỗi thông điệp là biến sự kiện thành trạng thái, sai cùng một kiểu với B nhưng ở mức phân cấp.
Mở trang câu hỏi này →
ATo represent the static structure of a system's classes and their relationships.
BTo illustrate the interactions and collaborations between objects in a system.
CTo model the organization and behavior of objects within a single classifier.
DTo depict the flow of control and the partitioning of a system into states and transitions.
Lời giải
Trong UML, sơ đồ cấu trúc phức hợp (composite structure diagram) được sử dụng để mô tả tổ chức và hành vi của các đối tượng bên trong một phân loại duy nhất. Nó giúp chúng ta hiểu rõ về mối quan hệ giữa các thành phần và cách chúng tương tác với nhau để đạt được mục tiêu chung. Sơ đồ này thường được sử dụng để mô hình hóa các hệ thống phức tạp, nơi mà các đối tượng có quan hệ chặt chẽ với nhau và cần được quản lý một cách hiệu quả. Bằng cách sử dụng sơ đồ cấu trúc phức hợp, chúng ta có thể xác định rõ ràng về tổ chức và hành vi của các đối tượng, từ đó giúp cải thiện chất lượng và hiệu suất của hệ thống.
Mở trang câu hỏi này →
What is a server?4 lựa chọn
AA hardware/software system that serves customers
BA subsystem that makes requests and waits for the responses
CA subsystem that responds to requests from clients
DA hardware/software system that provides one or more services for multiple clients
Lời giải
Một máy chủ (server) là một hệ thống phần cứng và phần mềm cung cấp một hoặc nhiều dịch vụ cho nhiều khách hàng (clients) khác nhau. Nó hoạt động như một điểm kết nối giữa các thiết bị và hệ thống khác nhau, cho phép chúng trao đổi thông tin và thực hiện các yêu cầu. Máy chủ có thể là một máy tính, một thiết bị mạng hoặc một hệ thống phần cứng chuyên dụng. Nó thường được sử dụng để cung cấp các dịch vụ như lưu trữ dữ liệu, xử lý thông tin, cung cấp nội dung web và nhiều hơn nữa. Máy chủ có thể được truy cập từ xa thông qua mạng internet hoặc mạng cục bộ, cho phép khách hàng truy cập và sử dụng các dịch vụ mà không cần phải có quyền truy cập trực tiếp vào máy chủ.
Mở trang câu hỏi này →
What is "black box" testing?4 lựa chọn
ASystem testing
BIntegration testing
CTesting with knowledge of the system internals
DTesting without knowledge of the software internals
Lời giải
Black box testing là một phương pháp kiểm thử phần mềm mà không cần biết chi tiết về cấu trúc hoặc nội dung của phần mềm. Trong quá trình kiểm thử, người kiểm thử chỉ biết về đầu vào và đầu ra của phần mềm mà không cần biết về các quy trình hoặc logic bên trong. Điều này cho phép người kiểm thử kiểm thử phần mềm mà không cần phải biết về mã nguồn hoặc kiến trúc phần mềm. Phương pháp này giúp đảm bảo rằng phần mềm hoạt động chính xác và đáp ứng được yêu cầu của người dùng.
Mở trang câu hỏi này →
ATo describe a lengthy interaction with an actor
BTo describe functionality that is common to more than one use case
CTo describe the functionality of a use case that is extended by another use case(s)
DTo describe a conditional part of a different use case that is only executed under certain circumstances
Lời giải
Đáp án đúng: D. Use case mở rộng (extension use case) mô tả một phần CÓ ĐIỀU KIỆN của một use case khác — phần chỉ chạy trong hoàn cảnh nhất định, tại một điểm mở rộng đã định trước của use case cơ sở. Nhờ vậy luồng chính giữ được sự gọn gàng, còn các nhánh ngoại lệ hoặc tuỳ chọn được tách riêng. C là bẫy sát nhất nhưng mô tả ngược vai: đó là use case CƠ SỞ (bị mở rộng bởi use case khác), không phải use case mở rộng. B sai vì phần chức năng dùng chung cho nhiều use case được tách bằng quan hệ include, không phải extend. A sai vì độ dài của tương tác không liên quan gì đến khái niệm mở rộng.
Mở trang câu hỏi này →
A1NF
B2NF
C3NF
DBCNF
Lời giải
Normal form 2NF (Hai cấp độ) loại bỏ sự phụ thuộc một phần trên một chìa khóa chính phức tạp. Trong 2NF, mỗi trường không chìa khóa phải phụ thuộc vào toàn bộ chìa khóa chính. Điều này có nghĩa là nếu một bảng có một chìa khóa chính phức tạp, chẳng hạn như {A, B} và một trường phụ thuộc vào A nhưng không phụ thuộc vào B, thì đó không phải là 2NF. Để đạt được 2NF, chúng ta phải tách trường đó thành một bảng riêng biệt với chìa khóa chính là A. Điều này giúp loại bỏ sự phụ thuộc một phần và đảm bảo rằng mỗi bảng chỉ có một chìa khóa chính.
Mở trang câu hỏi này →
What is maintainability?4 lựa chọn
AThe extent to which software is capable of being changed before deployment
BThe extent to which software is capable of being changed after deployment
CThe extent to which software is capable of being changed during development
DThe extent to which software is capable of being changed after development
Lời giải
Đáp án đúng: B. Khả năng bảo trì được định nghĩa là mức độ phần mềm có thể được thay đổi SAU KHI ĐÃ TRIỂN KHAI — sửa lỗi, cải thiện hiệu năng hoặc thích ứng với môi trường mới. Mốc "sau triển khai" là điểm mấu chốt: chi phí thay đổi lúc phần mềm đã chạy thật mới là thứ thuộc tính này đo. A sai vì thay đổi trước khi triển khai vẫn nằm trong vòng phát triển bình thường. C sai vì thay đổi trong lúc phát triển cũng thế. D là bẫy sát nhất — "sau khi phát triển" không đồng nghĩa "sau khi triển khai": phần mềm có thể đã phát triển xong nhưng chưa đưa vào vận hành, và định nghĩa chuẩn lấy mốc triển khai/bàn giao.
Mở trang câu hỏi này →
AIt must be implemented in Java
BIt shares all internal data with other components
CIt is self-contained and encapsulates information
Dt must be deployed on the cloud
Lời giải
Trong kiến trúc phần mềm dựa trên các thành phần, đặc điểm chính của một thành phần là nó được chứa đựng và bao gồm tất cả thông tin của mình. Điều này có nghĩa là mỗi thành phần có thể được xem như một đơn vị độc lập, có thể được sử dụng và quản lý một cách riêng biệt. Mỗi thành phần có thể được thiết kế, phát triển và bảo trì độc lập với các thành phần khác, giúp giảm thiểu sự phụ thuộc và tăng cường khả năng mở rộng của hệ thống. Đặc điểm này cho phép các nhà phát triển xây dựng các hệ thống phức tạp bằng cách kết hợp các thành phần đơn giản và dễ quản lý.
Mở trang câu hỏi này →
What is "white box" testing?4 lựa chọn
AUnit testing
BIntegration testing
CTesting with knowledge of the system internals
DTesting without knowledge of the software internals
Lời giải
Đáp án đúng: C. Kiểm thử hộp trắng là kiểm thử CÓ biết cấu trúc bên trong: người kiểm thử đọc mã nguồn, thiết kế ca kiểm thử theo các đường thực thi, nhánh điều kiện và vòng lặp, rồi đo độ phủ. D sai vì "không biết bên trong" chính là định nghĩa của kiểm thử hộp đen — đây là phương án đối lập được đặt cạnh để gài. A và B sai vì kiểm thử đơn vị và kiểm thử tích hợp là các MỨC kiểm thử (phân theo phạm vi), còn hộp trắng/hộp đen là KỸ THUẬT kiểm thử (phân theo mức độ hiểu biết về nội tại). Kiểm thử đơn vị thường dùng kỹ thuật hộp trắng, nhưng hai khái niệm không đồng nhất.
Mở trang câu hỏi này →
ATo define the functionality of the system
BTo specify the development process
CTo define success criteria, orthogonal to functionality
DTo dictate the user interface design
Lời giải
Đáp án đúng: C. Đặc tính kiến trúc (architecture characteristic) là các yêu cầu phi chức năng — hiệu năng, khả năng mở rộng, bảo mật, khả năng bảo trì… Chúng định nghĩa tiêu chí thành công của hệ thống và trực giao với chức năng: cùng một tập chức năng có thể được hiện thực với những mức đặc tính rất khác nhau, và chính chúng mới là thứ quyết định lựa chọn kiến trúc. A sai vì chức năng hệ thống do yêu cầu chức năng mô tả, đó chính là phần "trực giao" còn lại. B sai vì quy trình phát triển là chuyện quản lý dự án, không phải đặc tính kiến trúc. D sai vì thiết kế giao diện là quyết định ở tầng thấp hơn nhiều.
Mở trang câu hỏi này →
AClient-Server Model
BMonolithic Architecture
CProcedural Programming
DTesting Frameworks
Lời giải
Đáp án đúng: A. Mô hình Client-Server tách hệ thống thành các bên phục vụ và bên sử dụng có ranh giới rõ ràng, giao tiếp qua giao diện chuẩn. Nhờ tách rời đó, có thể nhân bản thêm máy chủ khi tải tăng (mở rộng) và thay đổi từng phía độc lập (mô-đun hoá). B sai vì kiến trúc nguyên khối gộp mọi thứ vào một khối duy nhất, mở rộng phải nhân bản cả khối và sửa đâu cũng phải triển khai lại toàn bộ. C sai vì lập trình thủ tục là một mô hình lập trình, không phải thành phần kiến trúc. D sai vì khung kiểm thử là công cụ hỗ trợ chất lượng, không quyết định khả năng mở rộng hay mô-đun hoá.
Mở trang câu hỏi này →
AClass diagram
BUse Case diagram
CDeployment diagram
DStatechart diagram
Lời giải
Đáp án đúng: B. Ở pha phân tích, yêu cầu chức năng được mô hình hoá bằng sơ đồ use case: nó chỉ ra tác nhân nào tương tác với hệ thống và hệ thống cung cấp những chức năng gì, ở mức nhìn từ bên ngoài, không lệ thuộc vào cách hiện thực. A sai vì sơ đồ lớp mô tả cấu trúc tĩnh, thuộc mô hình tĩnh chứ không phải mô tả yêu cầu chức năng. C sai vì sơ đồ triển khai nói về việc phần mềm nằm trên phần cứng nào, thuộc pha thiết kế. D sai vì sơ đồ máy trạng thái mô tả hành vi phụ thuộc trạng thái của một đối tượng cụ thể, chi tiết hơn nhiều so với mức yêu cầu chức năng.
Mở trang câu hỏi này →
What is a boundary object?4 lựa chọn
AAn external object
BAn object that stores data
CAn object that communicates with an external object
DAn object that controls other objects
Lời giải
Đáp án đúng: C. Đối tượng biên (boundary object) là đối tượng nằm ở ranh giới hệ thống, giao tiếp với một đối tượng bên ngoài — người dùng, thiết bị, hoặc hệ thống khác — và chuyển đổi giữa thế giới bên ngoài với thế giới bên trong hệ thống. A sai vì đối tượng biên nằm BÊN TRONG hệ thống; thứ nằm ngoài là đối tượng ngoài (external object) mà nó giao tiếp cùng. Đây chính là bẫy của câu hỏi. B sai vì lưu trữ dữ liệu là việc của đối tượng thực thể. D sai vì điều khiển các đối tượng khác là việc của đối tượng điều khiển.
Mở trang câu hỏi này →
AA state transition table
BA state chart
CThe current state of the machine
DA state transition table and the current state of the machine
Lời giải
Đáp án đúng: D. Lớp máy trạng thái (state machine class) đóng gói CẢ HAI thứ: bảng chuyển trạng thái — phần dữ liệu tĩnh cho biết ở trạng thái nào, nhận sự kiện nào thì chuyển đi đâu và sinh hành động gì — và trạng thái hiện hành, phần dữ liệu động cho biết máy đang ở đâu. Thiếu một trong hai thì lớp không tự xử lý được sự kiện tiếp theo. A và C đều chỉ đúng một nửa. B sai vì statechart là ký pháp đồ hoạ để con người đọc lúc thiết kế; thứ được đóng gói trong mã là bảng chuyển trạng thái đã mã hoá từ statechart đó.
Mở trang câu hỏi này →
AClass Diagram
BSequence Diagram
CUse Case Diagram
DComponent Diagram
Lời giải
Đáp án đúng: B. Sơ đồ tuần tự mô tả hành vi động: các đối tượng trao đổi thông điệp nào, theo thứ tự nào, theo trục thời gian — đúng thứ câu hỏi cần. A sai vì sơ đồ lớp mô tả cấu trúc TĨNH: lớp, thuộc tính, thao tác và quan hệ, không có yếu tố thời gian. C sai vì sơ đồ use case mô tả chức năng ở mức yêu cầu, không mô tả trình tự tương tác chi tiết. D sai vì sơ đồ thành phần mô tả cách tổ chức các đơn vị triển khai, cũng là góc nhìn tĩnh.
Mở trang câu hỏi này →
ASPL Engineering and Software Application Engineering
BSPL Engineering and real-time software Engineering
CReal time software Engineering and Software Application Engineering
DReal-time software Engineering and Component-Based Software Engineering
Lời giải
Đáp án đúng: A. Mô hình quy trình phần mềm cho kỹ nghệ dòng sản phẩm gồm hai quy trình chính: SPL Engineering (kỹ nghệ dòng sản phẩm — xây phần chung, phần biến thiên và kho tài sản tái sử dụng cho cả họ) và Software Application Engineering (kỹ nghệ ứng dụng — lấy từ kho đó ra để dựng một thành viên cụ thể theo yêu cầu khách hàng). Đây chính là cặp "phát triển CHO tái sử dụng" và "phát triển BẰNG tái sử dụng". B, C, D đều sai vì kéo "real-time software engineering" hoặc "component-based software engineering" vào: đó là những lĩnh vực kỹ nghệ khác, không phải một trong hai quy trình cấu thành mô hình SPL.
Mở trang câu hỏi này →
AA sequence of operations performed by an object
BA shared attribute among different classes
CA relationship between two or more classes that shows how instances of those classes interact
DThe inheritance relationship between a parent class and its child classes
Lời giải
Đáp án đúng: C. Trong mô hình tĩnh, liên kết (association) biểu diễn quan hệ giữa hai hay nhiều lớp, cho biết đối tượng của các lớp này có mối nối với nhau và qua đó tương tác được với nhau; liên kết còn mang bội số (multiplicity) và có thể mang tên vai trò. A sai vì chuỗi thao tác của một đối tượng thuộc mô hình động, không phải quan hệ giữa các lớp. B sai vì liên kết nối các LỚP với nhau chứ không phải chia sẻ thuộc tính giữa chúng. D sai vì quan hệ kế thừa cha–con là tổng quát hoá (generalization), một loại quan hệ khác hẳn liên kết.
Mở trang câu hỏi này →
ATo minimize the number of use cases
BTo increase communication between subsystems
CTo ensure each subsystem handles a distinct and relatively independent function
DTo remove dynamic modeling steps
Lời giải
Đáp án đúng: C. Mục tiêu chính khi phân rã hệ thống thành các hệ thống con là để mỗi hệ thống con đảm nhận một chức năng riêng biệt và tương đối độc lập — tức gắn kết bên trong cao và phụ thuộc lẫn nhau thấp. Đó là điều kiện để các hệ thống con phát triển, kiểm thử và thay đổi song song mà không giẫm chân nhau. B sai hẳn hướng: tăng giao tiếp giữa các hệ thống con là tăng độ dính, đúng thứ cần tránh. A sai vì số lượng use case do yêu cầu quyết định, không phải mục tiêu của việc phân rã. D sai vì mô hình hoá động là bước cần thiết, không phải thứ để loại bỏ.
Mở trang câu hỏi này →
ARepresent interactions between users and system
BDetail hardware setup
CDrill down into source code
DShow low-level database design
Lời giải
Đáp án đúng: A. Sơ đồ use case dùng để biểu diễn tương tác giữa người dùng (tác nhân) và hệ thống: mỗi use case là một chức năng đem lại giá trị cho tác nhân, và các đường nối cho biết ai dùng chức năng nào. B sai vì cấu hình phần cứng được thể hiện bằng sơ đồ triển khai. C sai vì sơ đồ use case cố tình đứng ở mức cao, không đi xuống mã nguồn. D sai vì thiết kế cơ sở dữ liệu mức thấp thuộc pha thiết kế chi tiết, hoàn toàn không phải việc của sơ đồ use case.
Mở trang câu hỏi này →
AWrite executable code immediately
BTransform user requirements into a system architecture and design
CDesign the database schema first
DFocus solely on security testing
Lời giải
Đáp án đúng: B. Mục tiêu của quy trình thiết kế phần mềm là biến yêu cầu người dùng thành kiến trúc và thiết kế hệ thống: quyết định hệ thống gồm những thành phần nào, mỗi thành phần chịu trách nhiệm gì và chúng ghép với nhau ra sao — tức bắc cầu từ "cần gì" sang "làm thế nào". A sai vì viết mã ngay lập tức là bỏ qua chính pha thiết kế mà câu hỏi đang nói tới. C sai vì lược đồ cơ sở dữ liệu chỉ là một phần của thiết kế, và thường được quyết định sau khi đã có mô hình phân tích. D sai vì kiểm thử bảo mật là một hoạt động kiểm chứng, không phải mục tiêu của thiết kế.
Mở trang câu hỏi này →
Đi tiếp từ đây