SWD392DễKỳ 7Chuyên ngành Cập nhật 07/09/2026

Software Architecture and Design - Kiến Trúc & Thiết Kế Phần Mềm

SWD392 trang bị kiến thức chuyên sâu về kiến trúc phần mềm, UML, Design Patterns và cách ứng dụng AI (ChatGPT, Copilot, PlantUML) vào mô hình hóa hệ thống thực tế.

436Câu hỏi
5Bộ đề
9Chủ đề
5,03 đánh giá

Câu hỏi của môn

436/436 câuHết danh sách
AA class that cannot be instantiated and may contain abstract operations
BA class that has no attributes
CA class with only static methods
DA class defined without associations
Lời giải
Đáp án đúng: A. Trong UML, abstract class là lớp không thể tạo thể hiện trực tiếp và có thể chứa các thao tác trừu tượng - những thao tác chỉ khai báo chữ ký, để lớp con hiện thực hoá. Lớp trừu tượng tồn tại nhằm gom phần chung của các lớp con và định nghĩa giao diện đa hình cho chúng; trong sơ đồ, tên lớp được viết nghiêng để đánh dấu. Phương án B, C, D nêu những đặc điểm không liên quan: một lớp không có thuộc tính, một lớp chỉ có phương thức tĩnh hay một lớp không có liên kết đều vẫn có thể được khởi tạo bình thường nên không phải lớp trừu tượng.
Mở trang câu hỏi này →
AIncrease database performance
BProvide structured architectural modeling
CEliminate the need for state charts
DEnforce strict coding conventions
Lời giải
Đáp án đúng: B. COMET (Collaborative Object Modeling and Architectural Design Method) là phương pháp thiết kế cung cấp một quy trình mô hình hoá kiến trúc có cấu trúc: đi từ mô hình use case sang mô hình phân tích tĩnh và động, rồi tới thiết kế kiến trúc phần mềm bằng các mẫu kiến trúc và mẫu thiết kế. Mục tiêu chính là giúp nhóm phát triển tổ chức được quá trình thiết kế một cách có hệ thống. Phương án A nhầm sang tối ưu cơ sở dữ liệu; phương án C sai vì COMET dùng rất nhiều statechart; phương án D nói về quy ước viết mã, hoàn toàn nằm ngoài phạm vi của một phương pháp thiết kế kiến trúc.
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 →
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 →
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 →
ARequirement gathering
BSoftware architecture design
CUser interface design
DTesting and validation
Lời giải
Đáp án đúng: B. Pha thiết kế kiến trúc phần mềm là nơi trả lời câu hỏi các thành phần phần mềm ghép với nhau và tương tác ra sao để thoả mãn yêu cầu: xác định các thành phần chính, giao diện, cơ chế giao tiếp và các mẫu kiến trúc được dùng. Thu thập yêu cầu (A) mới chỉ làm rõ hệ thống phải làm gì; thiết kế giao diện người dùng (C) chỉ giải quyết một khía cạnh hẹp là tương tác với người dùng; kiểm thử và thẩm định (D) diễn ra sau, nhằm kiểm chứng rằng hệ thống đã xây dựng đáp ứng đúng yêu cầu chứ không phải nơi định hình cấu trúc.
Mở trang câu hỏi này →
AAbility to handle increasing load
BAbility to be portable across platforms
CSecurity to protect resources
DSpeed of algorithm
Lời giải
Đáp án đúng: A. Scalability - khả năng mở rộng - là thuộc tính chất lượng phản ánh khả năng hệ thống đáp ứng được tải tăng lên (nhiều người dùng, nhiều giao dịch, nhiều dữ liệu hơn) mà vẫn giữ được mức chất lượng dịch vụ, thường bằng cách bổ sung tài nguyên theo chiều ngang hoặc chiều dọc. Khả năng chạy trên nhiều nền tảng (B) là portability; bảo vệ tài nguyên (C) là security; còn tốc độ thuật toán (D) chỉ là một yếu tố góp phần vào performance. Cả ba đều là những thuộc tính chất lượng khác, không phải định nghĩa của scalability.
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 →
433What 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 →
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 →
ADetailing class implementations
BDefining system structure and high-level components
CWriting test cases
DRefactoring source code
Lời giải
Đáp án đúng: B. Thiết kế kiến trúc trong phát triển phần mềm tập trung vào việc xác định cấu trúc tổng thể của hệ thống và các thành phần ở mức cao: hệ thống gồm những khối nào, mỗi khối chịu trách nhiệm gì, chúng giao tiếp qua giao diện và cơ chế nào, đồng thời cân nhắc các thuộc tính chất lượng như hiệu năng, bảo mật, khả năng mở rộng. Chi tiết hoá hiện thực của từng lớp (A) thuộc thiết kế chi tiết; viết ca kiểm thử (C) thuộc pha kiểm thử; tái cấu trúc mã nguồn (D) là hoạt động cải tiến mã đã có, đều nằm ở mức thấp hơn so với thiết kế kiến trúc.
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 →