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

304/436 câuCòn 132
ACoding style guidelines
BSystem scalability and maintainability
COperating system configuration
DDatabase backups
Lời giải
Khi phân tích kiến trúc phần mềm để cải tiến, một yếu tố quan trọng cần xem xét là khả năng mở rộng và bảo trì hệ thống. Điều này liên quan đến việc đảm bảo hệ thống có thể dễ dàng mở rộng, cập nhật và sửa lỗi mà không ảnh hưởng đến hiệu suất hoặc tính ổn định. Khả năng mở rộng và bảo trì hệ thống giúp giảm thiểu thời gian và chi phí cần thiết để duy trì và cải tiến hệ thống. Nó cũng giúp đảm bảo hệ thống luôn sẵn sàng đáp ứng nhu cầu của người dùng và thích ứng với sự thay đổi của môi trường.
Mở trang câu hỏi này →
AA tool used for project management
BA replaceable part of a system that fulfills a clear function within the architectural design
CA documentation method for software projects
DA user interface element
Lời giải
Trong kiến trúc phần mềm, một 'Component' được định nghĩa là một phần thay thế của hệ thống, thực hiện một chức năng rõ ràng và cụ thể trong thiết kế kiến trúc. Nó giống như một khối xây dựng cơ bản, có thể được sử dụng để tạo nên các hệ thống phức tạp hơn. Mỗi component đều có một chức năng cụ thể và có thể được thay thế bằng một component khác mà không ảnh hưởng đến hệ thống. Điều này giúp cho việc bảo trì, sửa chữa và mở rộng hệ thống trở nên dễ dàng hơn.
Mở trang câu hỏi này →
ASmall, independent services
BMonolithic applications
CCentralized database
DEvent-driven architectures
Lời giải
Mô hình kiến trúc microservices là một phương pháp thiết kế hệ thống phần mềm, trong đó hệ thống được chia thành nhiều dịch vụ nhỏ, độc lập và có thể được triển khai, quản lý và mở rộng độc lập. Mỗi dịch vụ có thể được viết bằng ngôn ngữ lập trình khác nhau và sử dụng các công nghệ khác nhau. Điều này cho phép các dịch vụ được thiết kế và triển khai một cách linh hoạt, dễ dàng thích nghi với các yêu cầu thay đổi của hệ thống. Mô hình kiến trúc microservices giúp tăng cường khả năng mở rộng, độ tin cậy và khả năng thích nghi của hệ thống.
Mở trang câu hỏi này →
288When is a coordinator subsystem required?4 lựa chọnKhó
AIf the subsystem needs to coordinate several internal objects
BIf the subsystem needs to coordinate multiple I/O devices
CIf the subsystem receives messages from multiple client subsystems
DIf the subsystem needs to coordinate the execution of other subsystems
Lời giải
Một hệ thống điều phối (coordinator subsystem) là cần thiết khi một phần mềm cần điều phối hoạt động của các đối tượng nội bộ khác nhau. Điều này có thể xảy ra khi một phần mềm cần thực hiện nhiều tác vụ khác nhau đồng thời, hoặc khi một phần mềm cần quản lý và điều phối hoạt động của các phần mềm khác. Hệ thống điều phối giúp đảm bảo rằng các hoạt động được thực hiện một cách có trật tự và hiệu quả, giảm thiểu khả năng xảy ra xung đột hoặc lỗi.
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 →
A«subsystem»
B«module»
C«component»
D«service»
Lời giải
Trong kiến trúc dịch vụ (Service-Oriented Architecture - SOA), một hệ thống được chia thành các mô-đun độc lập và có thể giao tiếp với nhau qua các dịch vụ. Để thể hiện một phần tử này trong sơ đồ UML, chúng ta cần sử dụng một loại ký hiệu đặc biệt gọi là stereotype. Trong trường hợp này, chúng ta đang tìm kiếm một loại ký hiệu phù hợp để thể hiện một subsystem trong SOA. Một subsystem là một phần của hệ thống có thể được xem xét và phát triển độc lập.
Mở trang câu hỏi này →
ARedesign all screens at once
BPreserve user workflows and adapt layouts incrementally
CFocus on backend refactoring only
DIgnore legacy usability standards
Lời giải
Đáp án đúng: B. Khi hệ thống tiến hoá, người dùng đã quen với luồng thao tác hiện có. Cách làm được khuyến nghị là giữ nguyên luồng công việc rồi điều chỉnh bố cục từng bước, để người dùng không phải học lại và rủi ro được chia nhỏ theo từng đợt. A sai vì thiết kế lại toàn bộ màn hình cùng lúc là thay đổi lớn nhất, rủi ro cao nhất, và phá vỡ thói quen người dùng. C sai vì tái cấu trúc backend không giải quyết được vấn đề giao diện. D sai vì bỏ qua chuẩn khả dụng cũ là cách chắc chắn làm người dùng lâu năm mất phương hướng.
Mở trang câu hỏi này →
AA business logic class
BA graphical user interaction (GUI) class
CData Abstraction Class
DState-machine class
Lời giải
Logic kinh doanh (business logic) định nghĩa quy trình đưa ra quyết định và logic ứng dụng cụ thể cho doanh nghiệp khi xử lý yêu cầu của khách hàng. Mục tiêu là bao gồm các quy tắc kinh doanh có thể thay đổi độc lập vào các lớp logic kinh doanh riêng biệt.
Mở trang câu hỏi này →
293What is a server?4 lựa chọnTrung bình
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 →
ATo generate system code automatically
BTo integrate object-oriented analysis, design, and architecture
CTo build hardware models
DTo eliminate the need for modeling
Lời giải
COMET (Component-Oriented Method for Enterprise Transformation) là một phương pháp thiết kế phần mềm tập trung vào việc tích hợp phân tích, thiết kế và kiến trúc hướng đối tượng. Mục tiêu chính của phương pháp này là giúp các nhà phát triển tạo ra các mô hình phần mềm phức tạp và linh hoạt bằng cách sử dụng các thành phần phần mềm độc lập. Điều này cho phép các nhà phát triển dễ dàng thay đổi và mở rộng các mô hình phần mềm mà không ảnh hưởng đến các thành phần khác. COMET cũng giúp các nhà phát triển tạo ra các hệ thống phần mềm có thể thích nghi với các yêu cầu thay đổi của khách hàng và thị trường.
Mở trang câu hỏi này →
AEmergency Monitoring System
BATM System
COnline Shopping System
DInventory Management System
Lời giải
Hệ thống thường được sử dụng làm ví dụ minh họa để minh họa quá trình xử lý giao dịch ngân hàng là hệ thống ATM. Hệ thống ATM cho phép người dùng rút tiền, chuyển tiền và kiểm tra tài khoản từ các máy ATM được đặt ở nhiều nơi. Quá trình xử lý giao dịch trong hệ thống ATM bao gồm các bước như xác thực người dùng, xác thực thẻ, xác thực số tiền, cập nhật số dư tài khoản và in hóa đơn. Hệ thống ATM là một ví dụ điển hình về hệ thống xử lý giao dịch ngân hàng vì nó phải đảm bảo tính bảo mật, tính toàn vẹn và tính kịp thời của giao dịch.
Mở trang câu hỏi này →
AClass visibility
BThe number of objects participating in a relationship
CMethod accessibility
DObject inheritance
Lời giải
Trong UML, tính đa số (multiplicity) mô tả số lượng đối tượng tham gia vào mối quan hệ (association) giữa các lớp. Nó giúp xác định số lượng đối tượng của một lớp có thể tham gia vào mối quan hệ với đối tượng của lớp khác. Ví dụ, trong một mối quan hệ giữa lớp 'Người dùng' và lớp 'Đăng nhập', tính đa số có thể được mô tả như sau: một người dùng có thể thực hiện nhiều đăng nhập, nhưng một đăng nhập chỉ được thực hiện bởi một người dùng. Tính đa số giúp đảm bảo tính nhất quán và chính xác của mô hình lớp.
Mở trang câu hỏi này →
AAbstraction
BLoose coupling
CService contract
DComposability
Lời giải
Sự nguyên tắc thiết kế nào đảm bảo rằng các hoạt động bên trong của một dịch vụ được ẩn và chỉ các hoạt động, đầu vào và đầu ra của nó được lộ ra? Nguyên tắc thiết kế này giúp giảm thiểu sự phức tạp và tăng cường tính linh hoạt của dịch vụ. Nó cho phép các nhà phát triển tập trung vào việc xây dựng các giao diện và chức năng của dịch vụ mà không cần phải lo lắng về các chi tiết bên trong. Điều này cũng giúp cải thiện khả năng bảo trì và mở rộng của dịch vụ. Trong thiết kế dịch vụ, nguyên tắc này được gọi là Abstraction.
Mở trang câu hỏi này →
APrimary key
BForeign key
CIndex
DView
Lời giải
Trong cơ sở dữ liệu quan hệ, mối quan hệ chính là chìa khóa đảm bảo tính toàn vẹn tham chiếu. Chìa khóa này được gọi là khóa ngoại (Foreign key). Khóa ngoại liên kết một bảng với khóa chính của bảng khác, giúp đảm bảo rằng dữ liệu được liên kết một cách chính xác và không bị trùng lặp. Ví dụ, trong một bảng khách hàng, khóa ngoại có thể liên kết với khóa chính của bảng đơn hàng, giúp xác định khách hàng nào đã thực hiện đơn hàng. Điều này giúp duy trì tính toàn vẹn dữ liệu và ngăn chặn các lỗi nhập liệu không mong muốn.
Mở trang câu hỏi này →
AStrategy pattern
BSingleton pattern
CAdapter pattern
DFacade pattern
Lời giải
Mẫu thiết kế phù hợp nhất cho phép hệ thống thay đổi hành vi của nó một cách động tại thời điểm chạy là Mẫu thiết kế Strategy. Mẫu thiết kế này cho phép bạn định nghĩa một tập hợp các thuật toán và chọn thuật toán phù hợp cho một yêu cầu cụ thể. Điều này cho phép hệ thống của bạn thay đổi hành vi của nó một cách linh hoạt và dễ dàng, mà không cần phải thay đổi mã nguồn. Mẫu thiết kế Strategy giúp giảm thiểu sự phức tạp của hệ thống và tăng cường khả năng mở rộng của nó. Nó cũng giúp bạn dễ dàng thêm mới các thuật toán mới mà không ảnh hưởng đến mã nguồn hiện có.
Mở trang câu hỏi này →
ARequesting data from observers
BNotifying observers about state changes
CAggregating different interfaces
DCreating instances of observers
Lời giải
Khi áp dụng mô hình Observer trong một hệ thống, trách nhiệm chính của đối tượng Subject là thông báo cho các đối tượng Observer về các thay đổi trong trạng thái. Đối tượng Subject sẽ chịu trách nhiệm cập nhật trạng thái và thông báo cho các đối tượng Observer biết về các thay đổi này. Điều này cho phép các đối tượng Observer cập nhật trạng thái của họ một cách tự động và đồng bộ với trạng thái của đối tượng Subject. Ví dụ, trong một hệ thống theo dõi thời tiết, đối tượng Subject có thể là một cảm biến thời tiết và các đối tượng Observer có thể là các ứng dụng trên điện thoại di động. Khi cảm biến thời tiết cập nhật trạng thái thời tiết, nó sẽ thông báo cho các ứng dụng trên điện thoại di động biết về các thay đổi này, cho phép họ cập nhật trạng thái thời tiết của họ một cách tự động.
Mở trang câu hỏi này →
301What is a real-time system?4 lựa chọn
AA system that processes data in real-time
BA batch processing system
CA system with no timing constraints
DA system that processes data offline
Lời giải
Một hệ thống thời gian thực (real-time system) là một hệ thống máy tính được thiết kế để xử lý và phản hồi dữ liệu trong thời gian thực, tức là trong thời gian thực tế. Điều này có nghĩa là hệ thống phải xử lý và cung cấp kết quả trong thời gian ngắn nhất có thể, thường là trong vài mili giây hoặc thậm chí là vài micro giây. Hệ thống thời gian thực thường được sử dụng trong các ứng dụng đòi hỏi độ chính xác và tốc độ cao, chẳng hạn như hệ thống điều khiển tự động, hệ thống giám sát, hệ thống y tế và các hệ thống khác.
Mở trang câu hỏi này →
302What is a software product line (SPL)?4 lựa chọnDễ
AA family of systems with some common components and some variable components
BAn assembly line
CA family of identical systems
DThe software products marketed by a company
Lời giải
Một sản phẩm dòng phần mềm (SPL) được định nghĩa là một tập hợp các hệ thống có một số thành phần chung và một số thành phần biến đổi. Nói cách khác, SPL là một tập hợp các sản phẩm phần mềm có một số đặc điểm và chức năng chung, nhưng cũng có thể có một số đặc điểm và chức năng khác nhau tùy thuộc vào yêu cầu cụ thể của từng hệ thống. Ví dụ, một công ty có thể phát triển một SPL cho các hệ thống quản lý tài chính, trong đó có một số thành phần chung như hệ thống quản lý tài khoản, hệ thống quản lý báo cáo, nhưng cũng có thể có một số thành phần biến đổi như hệ thống quản lý thuế, hệ thống quản lý bảo hiểm tùy thuộc vào yêu cầu cụ thể của từng hệ thống.
Mở trang câu hỏi này →
303What is an optional use case in SPL?4 lựa chọnDễ100% trả lời đúng
AA use case with some optional steps
BA use case that does not need to be developed
CA use case that is required by some product line members but not others
DA use case that can be chosen in place of a different use case in an SPL member
Lời giải
Một trường hợp sử dụng tùy chọn trong SPL là trường hợp sử dụng có một số bước tùy chọn. Trong SPL, một trường hợp sử dụng tùy chọn là trường hợp sử dụng có một số bước có thể bỏ qua mà không ảnh hưởng đến chức năng chung của sản phẩm. Điều này cho phép các thành viên của dòng sản phẩm chọn bỏ qua các bước không cần thiết, từ đó giảm thiểu sự phức tạp và tăng cường linh hoạt trong việc phát triển sản phẩm. Ví dụ, một trường hợp sử dụng tùy chọn có thể là việc thêm chức năng nâng cao cho một sản phẩm cơ bản, nơi mà chức năng nâng cao chỉ cần thiết cho một số thành viên của dòng sản phẩm.
Mở trang câu hỏi này →
AThe achievement of quality attributes will always have a positive effect
BThe achievement of quality attributes will always have a negative effect
CThe achievement of quality attributes will have a positive as well as negative effect
DNone of the mentioned
Lời giải
Mục tiêu của việc đạt được các tính chất chất lượng là đảm bảo rằng sản phẩm hoặc dịch vụ đáp ứng được nhu cầu và mong đợi của người dùng. Việc đạt được các tính chất chất lượng có thể mang lại nhiều lợi ích, chẳng hạn như tăng cường độ tin cậy, giảm thiểu lỗi, cải thiện hiệu suất và tăng cường trải nghiệm người dùng. Tuy nhiên, việc đạt được các tính chất chất lượng cũng có thể dẫn đến một số hạn chế, chẳng hạn như tăng chi phí sản xuất, chậm trễ trong quá trình phát triển và tăng độ phức tạp. Vì vậy, việc đạt được các tính chất chất lượng có thể có cả tác động tích cực và tiêu cực.
Mở trang câu hỏi này →