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

324/436 câuCòn 112
AThe web server layer.
BThe application server layer.
CThe database server layer.
DAll of the above
Mở trang câu hỏi này →
306What is a software design concept?4 lựa chọnDễ
AA graphical or textual description of the software.
BDocumentation of the software.
CA fundamental idea that can be applied to designing a system.
DA systematic approach for producing a design.
Lời giải
Một khái niệm thiết kế phần mềm là một ý tưởng cơ bản có thể được áp dụng vào thiết kế một hệ thống. Nó là một phần quan trọng trong quy trình thiết kế phần mềm, giúp các nhà phát triển hiểu rõ về yêu cầu và chức năng của hệ thống. Một khái niệm thiết kế phần mềm có thể được biểu diễn dưới dạng mô hình, sơ đồ hoặc tài liệu mô tả. Nó giúp đảm bảo rằng hệ thống được thiết kế một cách hợp lý, hiệu quả và dễ dàng bảo trì. Ví dụ, một khái niệm thiết kế phần mềm có thể là mô hình phân cấp, mô hình hướng đối tượng hoặc mô hình hướng dịch vụ.
Mở trang câu hỏi này →
ATo avoid coding completely
BTo abstract and manage complexity in large systems
CTo eliminate the need for testing
DTo increase hardware performance
Lời giải
Sử dụng mô hình hóa trong thiết kế phần mềm là một kỹ thuật quan trọng để giảm thiểu sự phức tạp trong các hệ thống lớn. Mô hình hóa cho phép các nhà phát triển tạo ra các mô hình trừu tượng của hệ thống, giúp họ hiểu rõ hơn về cấu trúc và tương tác của các thành phần khác nhau. Điều này giúp giảm thiểu sự phức tạp và tăng cường khả năng quản lý hệ thống. Ngoài ra, mô hình hóa cũng cho phép các nhà phát triển thử nghiệm và đánh giá các ý tưởng trước khi thực hiện chúng, giúp tiết kiệm thời gian và nguồn lực. Vì vậy, việc sử dụng mô hình hóa trong thiết kế phần mềm là một cách hiệu quả để quản lý và giảm thiểu sự phức tạp trong các hệ thống lớn.
Mở trang câu hỏi này →
308In UML, what does a package represent?4 lựa chọnTrung bình
AA single class within the system
BA grouping of model elements such as systems or subsystems
CAn individual object instance
DA state in a state machine diagram
Lời giải
Trong UML, một gói (package) đại diện cho một nhóm các thành phần mô hình như hệ thống hoặc phân hệ. Nó được sử dụng để tổ chức và sắp xếp các thành phần mô hình trong một hệ thống phức tạp. Một gói có thể chứa các lớp, đối tượng, giao diện, hoạt động, trạng thái và các thành phần khác. Mục đích chính của gói là giúp phân loại và sắp xếp các thành phần mô hình một cách có hệ thống, từ đó dễ dàng quản lý và theo dõi hệ thống.
Mở trang câu hỏi này →
AThe programming language used by the node
BThe type of physical connection, such as «local area network» or «wide area network»
CThe number of instances of a node
DThe security level of the connection
Lời giải
Trong sơ đồ triển khai, một khái niệm gợi ý về một kết nối thể hiện loại kết nối vật lý, chẳng hạn như «mạng cục bộ» hoặc «mạng diện rộng». Điều này giúp người xem hiểu rõ hơn về cấu trúc và giao tiếp giữa các thành phần trong hệ thống. Ví dụ, nếu có một khái niệm gợi ý về một kết nối mạng cục bộ, thì có thể hiểu rằng các thành phần liên quan sẽ giao tiếp với nhau thông qua mạng cục bộ. Điều này giúp người thiết kế hệ thống có thể xác định rõ hơn về yêu cầu về kết nối và cấu trúc hệ thống.
Mở trang câu hỏi này →
310In a UML deployment diagram, how is a node typically represented?4 lựa chọnTrung bình67% trả lời đúng
AAs a cube
BAs a rectangle with two vertical lines
CAs a circle
DAs a folder icon
Lời giải
Trong sơ đồ triển khai UML, một nút thường được đại diện bằng hình dạng nào? Trong sơ đồ triển khai UML, một nút thường được đại diện bằng hình dạng hình hộp (cubic). Hình hộp này thường được sử dụng để thể hiện các nút triển khai, chẳng hạn như máy chủ, máy chủ ảo, máy chủ vật lý, v.v. Hình hộp này thường được sử dụng để thể hiện các nút triển khai, chẳng hạn như máy chủ, máy chủ ảo, máy chủ vật lý, v.v. Nó giúp người xem dễ dàng nhận biết và hiểu được chức năng của từng nút triển khai.
Mở trang câu hỏi này →
311What is the goal of software verification?4 lựa chọnKhó
ABuilding the system
BBuilding the right system
CBuilding the system right
DTesting the system
Lời giải
Mục tiêu chính của việc xác minh phần mềm (software verification) là đảm bảo rằng hệ thống phần mềm được xây dựng đúng cách và đáp ứng các yêu cầu chức năng và tính năng mong muốn. Điều này có nghĩa là việc xác minh phần mềm không chỉ tập trung vào việc xây dựng hệ thống phần mềm mà còn quan tâm đến việc đảm bảo rằng hệ thống đó hoạt động chính xác và an toàn. Việc xác minh phần mềm giúp phát hiện và sửa lỗi sớm, giảm thiểu rủi ro và tăng cường độ tin cậy của hệ thống phần mềm. Vì vậy, mục tiêu chính của việc xác minh phần mềm là "Building the system right", tức là xây dựng hệ thống phần mềm đúng cách và đáp ứng các yêu cầu chức năng và tính năng mong muốn.
Mở trang câu hỏi này →
APhotoshop
BChatGPT
CSQL Developer
DPostman
Lời giải
Để trả lời câu hỏi này, chúng ta cần hiểu về các công cụ AI và thiết kế mẫu. Thiết kế mẫu là một phần quan trọng trong thiết kế sản phẩm, giúp đảm bảo tính nhất quán và hiệu suất cao. ChatGPT là một công cụ AI được thiết kế để hỗ trợ trong việc tạo ra nội dung và trả lời câu hỏi. Nó có thể được sử dụng để đề xuất các thiết kế mẫu dựa trên các yêu cầu và mục tiêu cụ thể. Điều này làm cho ChatGPT trở thành một lựa chọn phù hợp cho việc đề xuất thiết kế mẫu.
Mở trang câu hỏi này →
313How is a use case depicted on a use case diagram?4 lựa chọnTrung bình
AAn oval
BA stick figure
CA box
DA dashed line
Lời giải
Trong sơ đồ trường hợp sử dụng, một trường hợp sử dụng được thể hiện bằng một hình oval. Hình oval này đại diện cho một hành động hoặc một chức năng cụ thể mà hệ thống phải thực hiện. Tên của trường hợp sử dụng thường được viết bên trong hình oval. Ví dụ, nếu một hệ thống cần cho phép người dùng đăng ký tài khoản, trường hợp sử dụng có thể được thể hiện bằng hình oval có tên là 'Đăng ký tài khoản'. Hình oval này sẽ được kết nối với các đối tượng khác trong sơ đồ bằng các đường cong để thể hiện mối quan hệ giữa chúng.
Mở trang câu hỏi này →
ARequirements Modeling
BAnalysis Modeling
CDesign Modeling
DMaintenance Modeling
Lời giải
Trong vòng đời của COMET, có bốn giai đoạn chính: Requirements Modeling (phân tích yêu cầu), Analysis Modeling (phân tích mô hình), Design Modeling (phân thiết kế mô hình). Tuy nhiên, Maintenance Modeling (phân tích bảo trì) không phải là một giai đoạn trong vòng đời của COMET. Thay vào đó, nó thường được xem là một phần của giai đoạn Design Modeling hoặc Analysis Modeling. Vì vậy, Maintenance Modeling không phải là một giai đoạn trong vòng đời của COMET.
Mở trang câu hỏi này →
ACREATE INDEX
BFOREIGN KEY
CUNIQUE
DCHECK
Lời giải
Để đảm bảo tính toàn vẹn tham chiếu giữa hai bảng, chúng ta sử dụng câu lệnh SQL "FOREIGN KEY". Câu lệnh này cho phép chúng ta liên kết một cột trong một bảng với một cột trong bảng khác, đảm bảo rằng dữ liệu trong cột đó tồn tại trong bảng liên quan. Điều này giúp ngăn chặn việc xóa hoặc cập nhật dữ liệu trong bảng liên quan mà không ảnh hưởng đến dữ liệu trong bảng chính. FOREIGN KEY cũng giúp duy trì tính nhất quán và bảo mật dữ liệu trong cơ sở dữ liệu.
Mở trang câu hỏi này →
316Which of the following is NOT a valid use case relationship?4 lựa chọnDễ75% trả lời đúng
AInclude
BExtend
CExclude
DGeneralization
Lời giải
Sự tương tác giữa các trường hợp sử dụng hợp lệ là một khái niệm quan trọng trong thiết kế phần mềm. Trong các lựa chọn trên, "Exclude" không phải là một mối quan hệ trường hợp sử dụng hợp lệ. Mối quan hệ "Include" mô tả trường hợp sử dụng A bao gồm trường hợp sử dụng B. Mối quan hệ "Extend" mô tả trường hợp sử dụng A mở rộng trường hợp sử dụng B. Mối quan hệ "Generalization" mô tả trường hợp sử dụng A là một trường hợp đặc biệt của trường hợp sử dụng B. Ngược lại, "Exclude" không phải là một mối quan hệ hợp lệ vì nó không thể mô tả một mối quan hệ giữa các trường hợp sử dụng một cách chính xác.
Mở trang câu hỏi này →
AReducing hardware requirements
BMinimizing data redundancy and ensuring consistency
CIncreasing programming speed
DEliminating normalization
Lời giải
Mục tiêu chính của thiết kế cơ sở dữ liệu quan hệ là giảm thiểu trùng lặp dữ liệu và đảm bảo tính nhất quán. Điều này đạt được thông qua các kỹ thuật như phân nhóm dữ liệu, thiết kế bảng và thiết lập mối quan hệ giữa các bảng. Khi dữ liệu được tổ chức một cách hợp lý, việc truy cập và cập nhật dữ liệu trở nên dễ dàng hơn, giảm thiểu khả năng xảy ra lỗi do trùng lặp dữ liệu. Ngoài ra, thiết kế cơ sở dữ liệu quan hệ còn giúp giảm thiểu thời gian và chi phí cần thiết để quản lý và bảo trì dữ liệu.
Mở trang câu hỏi này →
AFactory Method
BSingleton
CPrototype
DBuilder
Lời giải
Mẫu thiết kế Singleton đảm bảo rằng một lớp chỉ có một phiên bản duy nhất và cung cấp một điểm truy cập toàn cầu đến nó. Mẫu thiết kế này thường được sử dụng khi một lớp cần được sử dụng như một đối tượng toàn cục, và việc tạo ra nhiều phiên bản của nó không cần thiết. Trong thực tế, việc tạo ra nhiều phiên bản của lớp Singleton sẽ dẫn đến lỗi vì nó vi phạm nguyên tắc của mẫu thiết kế này. Mẫu thiết kế Singleton thường được sử dụng trong các ứng dụng cần quản lý tài nguyên toàn cục, chẳng hạn như cơ sở dữ liệu hoặc mạng.
Mở trang câu hỏi này →
AObtaining access to classes in the external environment
BInformation encapsulation and accessibility
COverall object coordination for the involved items
DPhysical connection to hardware I/O devices
Lời giải
Trong khuôn khổ của một trường hợp sử dụng, đối tượng điều khiển cung cấp sự điều phối tổng thể cho các đối tượng liên quan. Điều này có nghĩa là đối tượng điều khiển chịu trách nhiệm quản lý và điều phối các giao dịch giữa các đối tượng khác nhau trong hệ thống. Nó giúp đảm bảo rằng các giao dịch được thực hiện một cách có trật tự và hiệu quả. Đối tượng điều khiển cũng có thể cung cấp các dịch vụ khác như quản lý dữ liệu, quản lý trạng thái và quản lý giao tiếp giữa các đối tượng.
Mở trang câu hỏi này →
320What is a timer object?4 lựa chọnTrung bình
AAn external clock
BAn internal clock
CAn object that is awakened by an external timer
DAn object that interacts with a clock
Lời giải
Một đối tượng timer là một phần của một chương trình hoặc ứng dụng, có khả năng tự động thực hiện một hành động hoặc một chuỗi hành động sau một khoảng thời gian nhất định. Đối tượng này thường được thiết kế để tương tác với một nguồn thời gian bên ngoài, chẳng hạn như một đồng hồ hệ thống. Khi được kích hoạt, đối tượng timer sẽ tự động thực hiện các hành động đã được lập trình trước đó, chẳng hạn như gửi thông báo, cập nhật dữ liệu hoặc thực hiện một số tác vụ khác. Đối tượng timer thường được sử dụng trong các ứng dụng yêu cầu tính tự động hóa và quản lý thời gian, chẳng hạn như các ứng dụng quản lý thời gian, các ứng dụng nhắc nhở và các ứng dụng tự động hóa.
Mở trang câu hỏi này →
AShow interactions among objects over time
BDefine the internal logic of system components
CIllustrate the physical deployment of modules
DSimplify the creation of test cases
Lời giải
Kết quả tương tác (Interaction Diagrams) trong UML là một công cụ quan trọng để mô tả các tương tác giữa các đối tượng trong hệ thống. Nó cho phép chúng ta xem xét các tương tác này theo thời gian, giúp chúng ta hiểu rõ hơn về cách các đối tượng tương tác với nhau. Kết quả tương tác có thể được sử dụng để mô tả các giao dịch giữa người dùng và hệ thống, cũng như các tương tác giữa các hệ thống khác nhau. Nó giúp chúng ta xác định các yêu cầu chức năng và non-functional của hệ thống, từ đó có thể thiết kế và phát triển hệ thống một cách hiệu quả hơn.
Mở trang câu hỏi này →
AIt specifies alternative sequences of interactions based on conditions.
BIt represents the alternative lifelines that an object may take.
CIt is used to alternate between different diagrams.
DIt defines the alternative messages that can be sent between objects.
Lời giải
Đáp án đúng: A. Khung 'alt' (alternative) trong sơ đồ tuần tự chia phần thân thành nhiều ngăn, mỗi ngăn kèm một điều kiện canh (guard); lúc chạy chỉ ngăn có điều kiện đúng được thực hiện. Nhờ đó một sơ đồ duy nhất diễn tả được nhiều chuỗi tương tác thay thế nhau theo điều kiện. B sai vì 'alt' không sinh thêm đường đời — số lifeline không đổi. C sai vì 'alt' nằm trong một sơ đồ, không phải công cụ chuyển qua lại giữa các sơ đồ. D sai vì 'alt' bao lấy cả một chuỗi tương tác có điều kiện, không phải chỉ khai báo danh sách thông điệp có thể gửi.
Mở trang câu hỏi này →
AAvoids dynamic behavior
BFaster processing
CAllows state decomposition for complex systems
DRequires no transitions
Lời giải
Đáp án đúng: C. Ưu điểm của statechart phân cấp so với statechart phẳng là cho phép phân rã trạng thái: một trạng thái ghép chứa cả một máy trạng thái con bên trong. Nhờ vậy hệ thống phức tạp được mô tả theo nhiều mức, và những phép chuyển dùng chung cho cả nhóm trạng thái con chỉ cần vẽ một lần ở mức cha — giảm hẳn số phép chuyển phải vẽ. A sai vì statechart phân cấp không hề né tránh hành vi động, nó chính là công cụ mô tả hành vi động. B sai vì phân cấp là chuyện tổ chức mô hình, không làm chương trình chạy nhanh hơn. D sai vì statechart phân cấp vẫn cần phép chuyển, chỉ là được tổ chức gọn hơn.
Mở trang câu hỏi này →
324What does "layered architecture" mean?4 lựa chọnDễ
AOrganizing components into separated levels with specific roles.
BMerging all code into a single-tier application.
CUsing only databases for structure.
DPrioritizing UI design over logic.
Lời giải
Cấu trúc kiến trúc đa lớp (layered architecture) là một phương pháp tổ chức các thành phần của một hệ thống hoặc ứng dụng thành các mức (layer) riêng biệt, mỗi mức có một vai trò cụ thể. Mục đích của việc này là để phân chia và quản lý các thành phần phức tạp của hệ thống thành các phần nhỏ hơn, dễ dàng quản lý và bảo trì hơn. Mỗi mức trong kiến trúc đa lớp thường có một chức năng cụ thể, chẳng hạn như mức dữ liệu (data layer), mức logic (business logic layer), mức giao diện (presentation layer), v.v. Điều này giúp tăng cường khả năng mở rộng, bảo trì và sửa lỗi của hệ thống.
Mở trang câu hỏi này →