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

224/436 câuCòn 212
205Which principle helps in reducing complexity during system design?4 lựa chọnTrung bình67% trả lời đúng
ATight coupling
BModularization
CCode duplication
DHardcoding values
Lời giải
Trong thiết kế hệ thống, nguyên tắc giúp giảm thiểu phức tạp là Modularization. Modularization là quá trình chia hệ thống thành các mô-đun độc lập, mỗi mô-đun có chức năng riêng biệt và có thể được phát triển, thử nghiệm và bảo trì độc lập. Điều này giúp giảm thiểu sự phức tạp của hệ thống bằng cách giảm thiểu sự phụ thuộc giữa các mô-đun và tăng cường khả năng mở rộng và bảo trì. Mô-đun hóa cũng giúp tăng cường tính linh hoạt và dễ dàng thay đổi hệ thống mà không ảnh hưởng đến các mô-đun khác. Ngoài ra, mô-đun hóa cũng giúp giảm thiểu sự phức tạp của hệ thống bằng cách giảm thiểu số lượng mã và tăng cường khả năng tái sử dụng mã.
Mở trang câu hỏi này →
206What is a SPL feature?4 lựa chọnDễ100% trả lời đúng
AA requirement or characteristic that is provided by one or more SPL members
BA marketing need
CA class provided by the SPL
DA SPL use case
Lời giải
SPL (Software Product Line) là một phương pháp phát triển phần mềm cho phép tạo ra nhiều sản phẩm khác nhau dựa trên một tập hợp các thành phần chung. Một tính năng SPL (SPL feature) là một yêu cầu hoặc đặc điểm được cung cấp bởi một hoặc nhiều thành viên của SPL. Nó đại diện cho một tính năng hoặc khả năng cụ thể của sản phẩm, có thể được sử dụng để tạo ra các sản phẩm khác nhau. Ví dụ, trong một SPL cho các hệ thống quản lý thời tiết, một tính năng SPL có thể là khả năng dự báo thời tiết chính xác. Tính năng này có thể được cung cấp bởi một hoặc nhiều thành viên của SPL, chẳng hạn như một mô hình dự báo thời tiết hoặc một hệ thống cảnh báo thời tiết. Tính năng SPL giúp tạo ra sự linh hoạt và đa dạng trong sản phẩm, đồng thời giảm thiểu thời gian và chi phí phát triển.
Mở trang câu hỏi này →
207What is the function of finite state machines in software modeling?4 lựa chọnDễ75% trả lời đúng
ACaptures system behavior as states and transitions
BDefines physical components in system design
CSimplifies the coding of software applications
DRepresents relationships between database entities
Lời giải
Máy trạng thái hữu hạn (Finite State Machine - FSM) là một mô hình được sử dụng trong mô hình hóa phần mềm để mô tả và phân tích hành vi của hệ thống. Nó giúp chúng ta mô tả hệ thống bằng cách sử dụng các trạng thái và chuyển tiếp giữa các trạng thái. Điều này cho phép chúng ta hiểu rõ hơn về cách hệ thống phản ứng với các sự kiện và dữ liệu đầu vào khác nhau. FSM thường được sử dụng trong thiết kế và phát triển phần mềm để mô hình hóa các quy trình và giao tiếp giữa các thành phần khác nhau. Nó giúp chúng ta xác định và giải quyết các vấn đề về tính toàn vẹn dữ liệu, đồng bộ hóa và bảo mật.
Mở trang câu hỏi này →
AControl is divided among various control components.
BIt responds to multiple requests from client subsystems.
CIt provides overall control by coordinating several control components.
DIt provides distributed control over various I/O objects.
Lời giải
Đáp án đúng: A. Trong mẫu Distributed Control, quyền điều khiển được chia cho nhiều thành phần điều khiển, mỗi thành phần điều khiển một phần của hệ thống và trao đổi trực tiếp với nhau — không có một thành phần trung tâm nào nắm toàn quyền. C sai vì "điều phối nhiều thành phần điều khiển" là đặc trưng của Hierarchical Control, nơi có một thành phần cấp trên phối hợp các thành phần cấp dưới. D sai vì "điều khiển toàn bộ các đối tượng vào/ra" là đặc trưng của Centralized Control. B sai vì đáp ứng yêu cầu từ nhiều hệ thống con khách là đặc trưng của mẫu client/service, không phải mẫu điều khiển.
Mở trang câu hỏi này →
AA single class or function.
BA way to group artifacts together, often with nesting.
CA database or server.
DA user interface element.
Lời giải
Trong ngữ cảnh của kiến trúc phần mềm, một thành phần (component) được định nghĩa là một đơn vị độc lập có thể được sử dụng để xây dựng và triển khai phần mềm. Nó thường được sử dụng để mô tả một phần cụ thể của hệ thống phần mềm, bao gồm cả các chức năng và giao diện. Một thành phần có thể được xem xét như một đơn vị xây dựng cơ bản của hệ thống phần mềm, có thể được sử dụng để tạo ra các hệ thống phần mềm phức tạp hơn. Trong kiến trúc phần mềm, thành phần thường được sử dụng để mô tả các đơn vị độc lập có thể được sử dụng để xây dựng và triển khai phần mềm, bao gồm cả các chức năng và giao diện.
Mở trang câu hỏi này →
ARepresenting the dynamic behavior of a system
BModeling the structure and relationships between system components
CManaging software project timelines and budgets
DTesting and debugging software code
Lời giải
Trong thiết kế phần mềm, mô hình hóa tĩnh (static modeling) là một kỹ thuật quan trọng giúp xác định cấu trúc và mối quan hệ giữa các thành phần của hệ thống. Mục tiêu chính của mô hình hóa tĩnh là tạo ra một bản đồ logic của hệ thống, thể hiện các lớp, đối tượng, mối quan hệ và quy tắc logic giữa chúng. Điều này giúp các nhà phát triển phần mềm hiểu rõ về cấu trúc và chức năng của hệ thống, từ đó có thể thiết kế và xây dựng phần mềm hiệu quả hơn. Mô hình hóa tĩnh thường được sử dụng trong các giai đoạn thiết kế và phát triển ban đầu của dự án phần mềm.
Mở trang câu hỏi này →
211What is the role of a service broker in SOA?4 lựa chọnDễ100% trả lời đúng
ATo host services
BTo find and connect services
CTo provide user interfaces
DTo manage transactions
Lời giải
Trong mô hình SOA (Service-Oriented Architecture), một Service Broker đóng vai trò quan trọng trong việc tìm kiếm và kết nối các dịch vụ. Họ giúp các dịch vụ được triển khai độc lập và có thể được truy cập từ các ứng dụng khác nhau. Một Service Broker thường cung cấp các dịch vụ như đăng ký, tìm kiếm và liên kết các dịch vụ. Họ cũng có thể cung cấp các dịch vụ bổ sung như quản lý giao dịch, bảo mật và giám sát. Mục tiêu chính của một Service Broker là giúp các dịch vụ được sử dụng một cách hiệu quả và dễ dàng, đồng thời giảm thiểu sự phức tạp trong việc tích hợp các dịch vụ khác nhau.
Mở trang câu hỏi này →
AUsing open access without authentication
BImplementing service-level security mechanisms such as OAuth
CRelying on client-side security only
DAvoiding encryption to reduce overhead
Lời giải
Một phương pháp phổ biến để bảo mật dịch vụ trong SOA là thực hiện các cơ chế bảo mật ở mức dịch vụ, chẳng hạn như OAuth. OAuth là một tiêu chuẩn mở cho phép dịch vụ xác thực người dùng và cấp quyền truy cập cho các dịch vụ khác mà không cần phải tiết lộ thông tin đăng nhập. Điều này giúp tăng cường bảo mật và giảm thiểu rủi ro bảo mật. Ngoài ra, OAuth cũng cho phép dịch vụ được bảo mật ở mức dịch vụ, giúp giảm thiểu rủi ro bảo mật khi dịch vụ được gọi từ các nguồn khác nhau. Vì vậy, việc thực hiện các cơ chế bảo mật ở mức dịch vụ như OAuth là một phương pháp phổ biến để bảo mật dịch vụ trong SOA.
Mở trang câu hỏi này →
AStatechart diagram
BClass diagram
CInteraction diagram
DDeployment diagram
Lời giải
Khi tích hợp các mẫu vào mô hình đối tượng, artifact thường được sử dụng để ghi lại hành vi hợp tác giữa các lớp là Interaction diagram. Interaction diagram mô tả các tương tác giữa các lớp, giúp xác định cách các lớp tương tác với nhau để đạt được mục tiêu chung. Điều này giúp cho việc thiết kế và phát triển hệ thống trở nên rõ ràng và hiệu quả hơn. Interaction diagram thường được sử dụng để mô tả các giao dịch giữa các lớp, các yêu cầu của hệ thống và các quy trình kinh doanh.
Mở trang câu hỏi này →
AThe fixed, unchangeable components of the system
BThe ability to reuse code across different projects
CThe aspects of the system that can be customized or configured for different products
DThe uniformity of design across all products
Lời giải
Trong ngữ cảnh của một sản phẩm dòng phần mềm, 'sự biến thiên' (variability) ám chỉ những đặc điểm của hệ thống có thể được tùy chỉnh hoặc cấu hình để phù hợp với các sản phẩm khác nhau. Điều này cho phép các nhà phát triển tạo ra các sản phẩm đa dạng và đáp ứng nhu cầu cụ thể của khách hàng. Sự biến thiên có thể được thực hiện thông qua các phương pháp như cấu hình, tùy chọn hoặc thậm chí là việc thêm hoặc xóa các thành phần của hệ thống. Mục tiêu của sự biến thiên là tạo ra các sản phẩm có tính linh hoạt và khả năng thích nghi cao, đồng thời giảm thiểu chi phí và thời gian phát triển.
Mở trang câu hỏi này →
215What is a software design method?4 lựa chọn
AA systematic approach for producing a design.
BGuidelines used to help in structuring a software system into its components.
CAn overall plan for developing a design.
DA graphical or textual description of the software.
Lời giải
Một phương pháp thiết kế phần mềm là một phương pháp hệ thống để tạo ra một thiết kế. Nó cung cấp một khuôn khổ để các nhà phát triển phần mềm có thể tạo ra các giải pháp phần mềm hiệu quả và đáp ứng được các yêu cầu của khách hàng. Phương pháp thiết kế phần mềm thường bao gồm các bước như phân tích yêu cầu, thiết kế kiến trúc, thiết kế chi tiết, triển khai và kiểm thử. Mục tiêu của phương pháp thiết kế phần mềm là tạo ra một sản phẩm phần mềm chất lượng cao, đáp ứng được các yêu cầu của khách hàng và có thể được duy trì và sửa đổi dễ dàng.
Mở trang câu hỏi này →
ACOMET is a linear software development method focusing mainly on coding and testing phases.
BCOMET is an iterative, use case-driven, and object-oriented method that addresses requirements, analysis, and design modeling phases.
CCOMET focuses only on functional testing and user interface design.
DCOMET is a UML-free approach that emphasizes documentation over modeling.
Lời giải
COMET (COMET là viết tắt của cụm từ tiếng Anh 'Context-Driven, Use Case-Driven, Object-Oriented Method') là một phương pháp phát triển phần mềm dựa trên yêu cầu, phân tích và thiết kế mô hình. Phương pháp này được thiết kế để hỗ trợ các nhà phát triển trong việc tạo ra các ứng dụng phức tạp và linh hoạt. COMET tập trung vào việc sử dụng các trường hợp sử dụng (use case) để định nghĩa các yêu cầu của hệ thống và sau đó sử dụng các kỹ thuật phân tích và thiết kế để tạo ra các mô hình cho hệ thống. COMET cũng nhấn mạnh tầm quan trọng của việc sử dụng các kỹ thuật lập trình hướng đối tượng (object-oriented programming) để tạo ra các ứng dụng linh hoạt và dễ bảo trì.
Mở trang câu hỏi này →
AA textual programming language
BA standard modeling notation across the development lifecycle
CA specific method for database optimization
DA GUI framework for Java
Lời giải
UML (Unified Modeling Language) là một ngôn ngữ mô hình hóa được sử dụng rộng rãi trong kỹ thuật phần mềm. Nó cung cấp một bộ công cụ để mô hình hóa và thiết kế các hệ thống phần mềm. UML giúp các nhà phát triển phần mềm thể hiện ý tưởng và thiết kế của họ một cách rõ ràng và thống nhất. Nó bao gồm một loạt các ký hiệu và biểu thức để mô tả các lớp, quan hệ và hành vi của các đối tượng phần mềm. UML được sử dụng xuyên suốt vòng đời phát triển phần mềm, từ thiết kế ban đầu đến triển khai và bảo trì. Nó giúp các nhà phát triển phần mềm tạo ra các hệ thống phần mềm có thể hiểu được, dễ dàng bảo trì và mở rộng.
Mở trang câu hỏi này →
ASequence Diagram
BDeployment Diagram
CCommunication Diagram
DUse Case Diagram
Lời giải
Sơ đồ UML phù hợp nhất để minh họa giao tiếp đồng thời giữa các thành phần hệ thống là Sơ đồ Giao tiếp. Sơ đồ Giao tiếp cho phép bạn mô tả các giao tiếp giữa các đối tượng và các hoạt động đồng thời diễn ra trong hệ thống. Nó giúp bạn hiểu rõ hơn về cách các thành phần hệ thống tương tác với nhau và giao tiếp trong các tình huống khác nhau. Sơ đồ Giao tiếp thường được sử dụng để mô hình hóa các hệ thống phân tán và các hệ thống cần giao tiếp đồng thời.
Mở trang câu hỏi này →
AA non-concurrent object
BAn attribute of a class
CA concurrent object, process, thread, or task
DA single-threaded method
Lời giải
Trong ký hiệu UML, một đối tượng hoạt động được sử dụng để đại diện cho một trong các lựa chọn sau. Đối tượng hoạt động được sử dụng để mô tả các đối tượng, quy trình, luồng hoặc nhiệm vụ đồng thời. Điều này có nghĩa là đối tượng hoạt động có thể thực hiện nhiều tác vụ đồng thời, giúp tăng hiệu suất và khả năng xử lý của hệ thống. Ví dụ, trong một hệ thống ngân hàng trực tuyến, đối tượng hoạt động có thể đại diện cho một giao dịch ngân hàng, cho phép nhiều giao dịch được thực hiện đồng thời mà không ảnh hưởng đến hiệu suất của hệ thống.
Mở trang câu hỏi này →
AComposition uses hollow diamond, aggregation uses solid diamond
BComposition is a stronger form of aggregation where parts cannot exist independently
CComposition represents inheritance while aggregation represents association
DComposition and aggregation are identical
Lời giải
Tính chất phân biệt giữa 'tập hợp' và 'tập hợp hóa' là gì? Tập hợp và tập hợp hóa là hai khái niệm quan trọng trong lập trình hướng đối tượng. Tập hợp hóa (Composition) là một dạng tập hợp hóa mạnh hơn, trong đó các phần tử không thể tồn tại độc lập. Điều này có nghĩa là khi một phần tử được thêm vào tập hợp, nó sẽ bị ràng buộc với tập hợp và không thể được sử dụng một cách độc lập. Ngược lại, tập hợp hóa (Aggregation) cho phép các phần tử tồn tại độc lập và có thể được sử dụng một cách riêng biệt. Ví dụ, một xe có thể được xem là một tập hợp hóa của các bộ phận như động cơ, hộp số và khung xe. Trong khi đó, một bộ phận như động cơ có thể được sử dụng độc lập trong một xe khác. Vì vậy, tập hợp hóa là một dạng tập hợp hóa mạnh hơn và cho phép các phần tử được ràng buộc chặt chẽ hơn.
Mở trang câu hỏi này →
221What approach does the spiral model emphasize?4 lựa chọnDễ83% trả lời đúng
APhased software development
BThrowaway prototyping
CRisk-driven development
DIncremental development
Lời giải
Spiral model tập trung vào phương pháp phát triển phần mềm dựa trên rủi ro. Phương pháp này nhấn mạnh việc đánh giá và quản lý rủi ro trong suốt quá trình phát triển phần mềm. Mỗi vòng trong mô hình này bao gồm bốn giai đoạn chính: xác định mục tiêu, đánh giá rủi ro, lập kế hoạch và thực hiện. Quá trình này lặp đi lặp lại cho đến khi đạt được mục tiêu cuối cùng. Spiral model cho phép phát triển phần mềm một cách linh hoạt và có thể thích nghi với những thay đổi trong yêu cầu hoặc rủi ro mới phát sinh.
Mở trang câu hỏi này →
AIt contains multiple active objects with independent control flows.
BIt contains passive objects and supports a single thread of control.
CIt can execute operations asynchronously.
DIt allows simultaneous method invocations on multiple objects.
Lời giải
Một chương trình tuần tự là một loại chương trình có đặc điểm là chứa các đối tượng thụ động và hỗ trợ một luồng kiểm soát duy nhất. Điều này có nghĩa là chương trình chỉ có thể thực hiện một hành động tại một thời điểm và không thể thực hiện các hành động khác đồng thời. Các đối tượng thụ động trong chương trình tuần tự không thể tự động thực hiện các hành động mà phải chờ đợi các lệnh từ chương trình chính. Điều này giúp chương trình tuần tự dễ dàng quản lý và theo dõi các hành động của các đối tượng. Tuy nhiên, nó cũng có thể dẫn đến hiệu suất thấp nếu chương trình cần thực hiện nhiều hành động cùng lúc.
Mở trang câu hỏi này →
223What is a software design strategy?4 lựa chọnKhó
AA graphical or textual description of the software.
BA fundamental idea that can be applied to designing a system.
CA systematic approach for producing a design
DAn overall plan and direction for developing a design
Lời giải
Một chiến lược thiết kế phần mềm là một kế hoạch tổng thể và hướng dẫn cho việc phát triển thiết kế. Nó là một cách tiếp cận hệ thống để tạo ra thiết kế, bao gồm các bước và quy trình cụ thể để đạt được mục tiêu thiết kế. Chiến lược thiết kế phần mềm giúp đảm bảo rằng thiết kế đáp ứng các yêu cầu và tiêu chuẩn của hệ thống, đồng thời tối ưu hóa hiệu suất và khả năng mở rộng. Nó cũng giúp các nhà phát triển phần mềm hiểu rõ về cấu trúc và chức năng của hệ thống, từ đó có thể tạo ra các giải pháp hiệu quả và linh hoạt.
Mở trang câu hỏi này →
ASingleton
BFactory
CFacade
DAdapter
Lời giải
Mô hình thiết kế Facade cung cấp một giao diện đơn giản hóa cho một hệ thống phức tạp. Nó giúp giảm thiểu sự phức tạp của hệ thống bằng cách tạo ra một lớp giao diện đơn giản, dễ sử dụng. Facade đóng vai trò như một trung gian giữa người dùng và hệ thống phức tạp, giúp người dùng không cần phải biết chi tiết về hệ thống phức tạp. Điều này giúp giảm thiểu sự phức tạp và tăng cường tính dễ sử dụng của hệ thống.
Mở trang câu hỏi này →