Đề ôn · SWD392

SWD392 Kiến Trúc & Thiết Kế Phần Mềm – Bộ ôn tập thi lại số 3 (59 câu)

59 câu · Thi lại · Summer 2026

59câu trong đề
SWD392môn

Câu hỏi của đề

15/59 câuCòn 44
1What role do 'Events' play in State-Dependent Dynamic Interaction Modeling?4 lựa chọnDễ100% trả lời đúng
AThey are used to define the deployment configuration
BThey are only relevant in static modeling
CThey trigger transitions in statecharts and influence interactions in diagrams
DThey represent the physical connections between system components
Lời giải
Trong mô hình tương tác động lực dựa trên trạng thái, các sự kiện đóng vai trò quan trọng trong việc mô tả và quản lý trạng thái của hệ thống. Chúng được sử dụng để kích hoạt các chuyển đổi trạng thái trong sơ đồ trạng thái và ảnh hưởng đến các tương tác trong các sơ đồ. Ví dụ, khi một sự kiện xảy ra, nó có thể kích hoạt một chuyển đổi trạng thái từ trạng thái A sang trạng thái B, và sau đó ảnh hưởng đến các tương tác giữa các thành phần hệ thống trong trạng thái mới. Điều này cho phép mô hình hóa các hệ thống phức tạp và động, nơi trạng thái của hệ thống thay đổi theo thời gian và ảnh hưởng đến các tương tác giữa các thành phần.
Mở trang câu hỏi này →
2Which of the following is considered a software quality attribute?4 lựa chọnDễ100% trả lời đúng
AFile organization
BCode syntax
CMaintainability
DUser interface design
Lời giải
Tính chất chất lượng phần mềm là những đặc điểm quan trọng mà phần mềm cần có để đáp ứng nhu cầu của người dùng. Trong các lựa chọn trên, tính maintainability (tính dễ bảo trì) là một trong những đặc điểm quan trọng của phần mềm. Tính maintainability cho phép phần mềm được cập nhật, sửa lỗi và mở rộng dễ dàng mà không ảnh hưởng đến hiệu suất và tính ổn định của phần mềm. Điều này giúp giảm thiểu chi phí và thời gian cần thiết để duy trì phần mềm.
Mở trang câu hỏi này →
AObserver pattern
BFactory method pattern
CFacade pattern
DStrategy pattern
Lời giải
Đáp án đúng: C. Facade pattern cung cấp một giao diện thống nhất, đơn giản cho cả một tập hợp giao diện của hệ thống con, giúp phía client không phải làm việc trực tiếp với nhiều lớp bên trong. Nhờ đó hệ thống con được che giấu, giảm phụ thuộc và dễ thay đổi bên trong mà không ảnh hưởng client. Observer (A) dùng để thông báo thay đổi trạng thái tới nhiều đối tượng quan sát; Factory Method (B) tách việc khởi tạo đối tượng ra khỏi mã sử dụng; Strategy (D) cho phép hoán đổi thuật toán lúc chạy. Cả ba đều giải quyết bài toán khác, không phải mục đích gom nhóm giao diện của một hệ thống con.
Mở trang câu hỏi này →
ALayered Architecture
BClient-Server Architecture
CEvent-Driven Architecture
DPeer-to-Peer Architecture
Lời giải
Trong bài tập về hệ thống ATM, kiến trúc được sử dụng phổ biến nhất là Kiến trúc Client-Server. Kiến trúc này bao gồm hai phần chính: Client và Server. Client là ứng dụng chạy trên thiết bị của người dùng, trong khi Server là phần mềm chạy trên máy chủ. Khi người dùng thực hiện một giao dịch, ứng dụng Client sẽ gửi yêu cầu đến Server, và Server sẽ xử lý yêu cầu và trả về kết quả cho Client. Kiến trúc Client-Server cho phép phân chia công việc giữa Client và Server một cách rõ ràng, giúp tăng hiệu suất và giảm độ phức tạp của hệ thống.
Mở trang câu hỏi này →
5What is a component in component-based software architecture?4 lựa chọnDễ89% trả lời đúng
AA function
BA class
CA database
DA reusable piece of software
Lời giải
Trong kiến trúc phần mềm dựa trên thành phần, một thành phần (component) được định nghĩa là một phần mềm tái sử dụng có thể được kết hợp lại để tạo thành các hệ thống phần mềm phức tạp. Thành phần là một đơn vị độc lập, có thể được phát triển, thử nghiệm và bảo trì riêng biệt. Nó có thể được sử dụng nhiều lần trong nhiều hệ thống khác nhau, giúp giảm thiểu thời gian và chi phí phát triển phần mềm. Thành phần thường được mô tả bằng các lớp (class) hoặc các hàm (function) trong ngôn ngữ lập trình, nhưng nó không chỉ giới hạn ở đó. Thành phần có thể bao gồm cả dữ liệu và các dịch vụ, và nó có thể được kết hợp lại để tạo thành các hệ thống phần mềm phức tạp.
Mở trang câu hỏi này →
AClient-Server
BLayered
CService-Oriented Architecture (SOA)
DPipe-and-Filter
Lời giải
Câu hỏi này hỏi về phong cách kiến trúc nào nhấn mạnh các dịch vụ liên lạc lỏng lẻo thông qua giao diện. Trong đó, Service-Oriented Architecture (SOA) là phong cách kiến trúc phù hợp với mô tả này. SOA là một phong cách kiến trúc dựa trên dịch vụ, trong đó các dịch vụ được thiết kế độc lập và có thể giao tiếp với nhau thông qua giao diện. Điều này cho phép các dịch vụ được phát triển, triển khai và quản lý độc lập, tạo điều kiện cho sự linh hoạt và khả năng mở rộng cao. SOA thường được sử dụng trong các hệ thống phân tán và các ứng dụng lớn.
Mở trang câu hỏi này →
ADevelop one state-dependent control object for each use case.
BDevelop one state-dependent control object containing states from each use case.
CDevelop a hierarchical state machine
DDevelop a coordinator object
Lời giải
Đáp án đúng: B. Theo phương pháp COMET, nếu cùng một máy trạng thái xuất hiện trong nhiều use case thì trên sơ đồ tương tác ta chỉ dựng MỘT đối tượng điều khiển phụ thuộc trạng thái, và đối tượng đó chứa các trạng thái lấy từ tất cả các use case liên quan. Cách làm này giữ được tính toàn vẹn của máy trạng thái: mọi chuyển trạng thái vẫn nằm trong một nơi duy nhất. Phương án A tạo nhiều bản sao của cùng một máy trạng thái nên dễ mâu thuẫn; phương án C và D đưa ra những giải pháp thiết kế khác (phân cấp trạng thái, đối tượng điều phối) không phải cách xử lý tình huống này.
Mở trang câu hỏi này →
8What is an information hiding object?4 lựa chọnTrung bình64% trả lời đúng
AAn active object that encapsulates data
BA passive object that encapsulates data
CA class that encapsulates data
DA task that encapsulates data
Lời giải
Một đối tượng ẩn thông tin là một khái niệm trong lập trình hướng đối tượng, trong đó một đối tượng được thiết kế để ẩn dữ liệu của nó khỏi các phần khác của chương trình. Đối tượng ẩn thông tin thường được sử dụng để ngăn chặn truy cập trực tiếp vào dữ liệu của nó, từ đó giúp bảo vệ dữ liệu khỏi bị thay đổi hoặc bị xâm phạm. Đối tượng ẩn thông tin thường được tạo ra bằng cách sử dụng các kỹ thuật như encapsulation, trong đó dữ liệu và các phương thức liên quan đến dữ liệu được nhóm lại trong một đối tượng duy nhất. Điều này giúp tăng cường bảo mật và giảm thiểu rủi ro xảy ra khi sử dụng dữ liệu.
Mở trang câu hỏi này →
AIt reduces documentation requirements
BIt avoids stakeholder involvement during early phases
CIt allows progressive refinement of requirements and architecture with feedback loops
DIt eliminates the need for system testing
Lời giải
Đáp án đúng: C. Ưu thế cốt lõi của phát triển lặp và tăng dần so với mô hình thác nước là cho phép tinh chỉnh dần yêu cầu và kiến trúc qua các vòng phản hồi: mỗi vòng lặp cho ra một phần sản phẩm chạy được, người dùng đánh giá và kết quả đánh giá quay lại điều chỉnh yêu cầu cùng thiết kế cho vòng sau. Nhờ đó rủi ro được phát hiện sớm thay vì dồn về cuối dự án. Phương án A sai vì phát triển lặp không cắt giảm tài liệu; phương án B ngược hẳn tinh thần lấy phản hồi của các bên liên quan; phương án D sai vì kiểm thử hệ thống vẫn là bắt buộc trong mọi mô hình.
Mở trang câu hỏi này →
10Which normal form eliminates partial dependency on a composite primary key?4 lựa chọnTrung bình50% trả lời đúng
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 →
AAn outer provided port to an inner provided port
BAn outer provided port to an inner required port
CAn outer required port to an inner provided port
DAn outer provided port to an outer required port
Lời giải
Đáp án đúng: A. Trong sơ đồ cấu trúc hỗn hợp của UML, delegation connector nối một cổng bên ngoài của thành phần hỗn hợp với một cổng tương ứng của thành phần con bên trong, tức là ủy thác yêu cầu từ ngoài vào trong. Cụ thể, cổng provided bên ngoài được nối tới cổng provided bên trong (và tương tự cổng required bên trong nối ra cổng required bên ngoài) - hai đầu nối phải cùng loại. Phương án B và C ghép hai cổng khác loại nên không phải delegation; phương án D nối hai cổng đều nằm ở lớp ngoài, đó là quan hệ giữa các thành phần ngang hàng chứ không phải ủy thác vào trong.
Mở trang câu hỏi này →
AEntity object
BBoundary object
CControl object
DInterface object
Lời giải
Đáp án đúng: C. Control object (đối tượng điều khiển) là đối tượng đóng vai trò điều phối, quyết định trình tự hoạt động và sự phối hợp giữa nhiều đối tượng khác trong một use case. Nó nắm logic điều khiển, nhận sự kiện từ đối tượng biên và điều động các đối tượng thực thể thực hiện công việc. Entity object (A) lưu trữ dữ liệu tồn tại lâu dài của hệ thống; boundary object (B) là đối tượng biên, giao tiếp với tác nhân bên ngoài; interface object (D) chỉ là cách gọi khác của đối tượng biên. Không đối tượng nào trong ba loại đó đảm nhận vai trò điều phối hành vi.
Mở trang câu hỏi này →
AComposite
BDecorator
CAdapter
DProxy
Lời giải
Đáp án đúng: A. Composite pattern tổ chức các đối tượng thành cấu trúc cây phần - toàn thể và cho phép client đối xử với đối tượng đơn lẻ (lá) và với tập hợp đối tượng (nút) một cách đồng nhất thông qua cùng một giao diện. Đây chính là đặc trưng "treating individual objects and compositions uniformly". Decorator (B) bọc thêm trách nhiệm cho một đối tượng lúc chạy; Adapter (C) chuyển đổi giao diện của một lớp sang giao diện mà client mong đợi; Proxy (D) đứng thay cho một đối tượng khác để kiểm soát truy cập. Không mẫu nào trong ba mẫu đó nhằm mục đích xử lý đồng nhất phần tử đơn và tập hợp.
Mở trang câu hỏi này →
AProxy
BDecorator
CComposite
DBridge
Lời giải
Đáp án đúng: B. Decorator pattern cho phép gắn thêm trách nhiệm cho một đối tượng một cách động lúc chạy bằng cách bọc đối tượng gốc trong một lớp trang trí có cùng giao diện. Nhờ vậy có thể chồng nhiều lớp trang trí lên nhau mà không cần sửa lớp gốc, thay thế linh hoạt cho việc kế thừa cứng nhắc. Proxy (A) cũng bọc đối tượng nhưng mục đích là kiểm soát truy cập chứ không thêm chức năng; Composite (C) tổ chức cây phần - toàn thể; Bridge (D) tách phần trừu tượng khỏi phần hiện thực để hai bên biến đổi độc lập.
Mở trang câu hỏi này →
AExternal event
BInternal event
CTimer event
DUser event
Lời giải
Sự đồng bộ hóa sự kiện là một khái niệm quan trọng trong lập trình. Nó đề cập đến việc đồng bộ hóa các hoạt động hoặc sự kiện trong một chương trình. Trong các lựa chọn trên, có một số trường hợp được coi là đồng bộ hóa sự kiện. Ví dụ, sự kiện bên ngoài (External event) và sự kiện timer (Timer event) đều là các trường hợp đồng bộ hóa sự kiện. Tuy nhiên, sự kiện người dùng (User event) không phải là một trường hợp đồng bộ hóa sự kiện. Sự kiện người dùng thường được sử dụng để phản hồi các hành động của người dùng, nhưng nó không phải là một sự kiện được đồng bộ hóa. Thay vào đó, nó thường được xử lý ngay lập tức mà không cần đồng bộ hóa.
Mở trang câu hỏi này →