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

84/436 câuCòn 352
65What is the role of a database wrapper in a client/server architecture?4 lựa chọnKhó33% trả lời đúng
ATo provide a graphical user interface
BTo manage client requests
CTo interface with the database
DTo perform data encryption
Lời giải
Một wrapper cơ sở dữ liệu (database wrapper) đóng vai trò quan trọng trong kiến trúc khách/hозяин (client/server). Nó là một lớp giao diện giữa ứng dụng khách (client) và cơ sở dữ liệu (database). Vai trò chính của một wrapper cơ sở dữ liệu là cung cấp một giao diện thống nhất để ứng dụng khách tương tác với cơ sở dữ liệu. Điều này giúp giảm thiểu sự phức tạp và tăng cường khả năng mở rộng của hệ thống. Wrapper cơ sở dữ liệu cũng có thể cung cấp các tính năng như kiểm tra lỗi, quản lý kết nối và tối ưu hóa truy vấn dữ liệu.
Mở trang câu hỏi này →
APreconditions
BFlow of events
CPostconditions
DSource code
Lời giải
Một mô tả trường hợp sử dụng thường bao gồm các yếu tố sau: điều kiện tiền đề (preconditions), trình tự các sự kiện (flow of events) và điều kiện hậu quả (postconditions). Tuy nhiên, mã nguồn (source code) không phải là một phần của mô tả trường hợp sử dụng. Mã nguồn là một khái niệm liên quan đến việc triển khai và thực hiện các yêu cầu chức năng, trong khi mô tả trường hợp sử dụng tập trung vào việc mô tả các yêu cầu chức năng và hành vi của hệ thống. Vì vậy, khi đánh giá các lựa chọn, chúng ta có thể thấy rằng mã nguồn không phải là một phần của mô tả trường hợp sử dụng.
Mở trang câu hỏi này →
67Which of the following is true for a Centralized Control architectural pattern?4 lựa chọnTrung bình63% trả lời đúng
AControl is divided among various control components.
BIt provides the overall control and sequencing of the system.
CIt provides overall control by coordinating several control components.
DIt provides overall control over various I/O objects.
Lời giải
Mô hình kiến trúc Centralized Control là một trong những mô hình kiến trúc phổ biến trong lập trình. Trong mô hình này, tất cả các hoạt động kiểm soát và điều khiển của hệ thống được tập trung vào một điểm duy nhất. Điều này có nghĩa là hệ thống có một bộ phận kiểm soát trung tâm chịu trách nhiệm điều khiển và sắp xếp các hoạt động của hệ thống. Bộ phận kiểm soát trung tâm này sẽ quyết định khi nào và làm gì, và nó sẽ đảm bảo rằng tất cả các hoạt động của hệ thống được thực hiện theo đúng kế hoạch. Mô hình này thường được sử dụng trong các hệ thống có yêu cầu kiểm soát và điều khiển cao, chẳng hạn như hệ thống tự động hóa, hệ thống điều khiển nhiệt độ, v.v.
Mở trang câu hỏi này →
68What can an activity diagram be used for in use case modeling?4 lựa chọnTrung bình50% trả lời đúng
ATo depict the sequence of activities executed by all the use cases in the system
BTo depict the sequence of external activities that the use case interacts with
CTo depict the sequence of active objects in a use case
DTo depict the activities in the main and alternative sequences of a use case
Lời giải
Hoạt động biểu đồ (Activity Diagram) là một công cụ quan trọng trong mô hình hóa các trường hợp sử dụng (Use Case). Nó được sử dụng để mô tả các hoạt động chính và các hoạt động thay thế trong một trường hợp sử dụng. Hoạt động biểu đồ giúp xác định các bước thực hiện trong một trường hợp sử dụng, bao gồm cả các hoạt động chính và các hoạt động thay thế. Điều này giúp các nhà phát triển hiểu rõ hơn về các yêu cầu của hệ thống và thiết kế các giải pháp phù hợp.
Mở trang câu hỏi này →
69Which of the following is NOT allowed through inheritance?4 lựa chọnDễ100% trả lời đúng
ASubclass inherits attributes from superclass.
BSubclass inherits operations from superclass.
CSubclass redefines attributes inherited from superclass.
DSubclass redefines operations inherited from superclass.
Lời giải
Khi nói về thừa kế trong lập trình, chúng ta biết rằng một lớp con (subclass) có thể thừa hưởng các thuộc tính và phương thức từ lớp cha (superclass). Tuy nhiên, có một số điều không được phép trong thừa kế. Trong các lựa chọn trên, câu trả lời đúng là "Subclass redefines attributes inherited from superclass.". Điều này có nghĩa là lớp con không được phép định nghĩa lại các thuộc tính đã được thừa hưởng từ lớp cha. Thay vào đó, lớp con có thể thêm mới các thuộc tính hoặc phương thức mới, hoặc sử dụng các thuộc tính và phương thức đã được thừa hưởng từ lớp cha mà không làm thay đổi chúng. Điều này giúp duy trì tính nhất quán và tính bảo mật trong mã nguồn.
Mở trang câu hỏi này →
70Which of the following is NOT an object-oriented concept?4 lựa chọnDễ100% trả lời đúng
ASubTitle
BInformation hiding
CClass
DInheritance
Lời giải
Các khái niệm đối tượng hướng lập trình bao gồm: Tính kế thừa, Tính đóng gói thông tin và Lớp. Trong khi đó, SubTitle không phải là một khái niệm đối tượng hướng lập trình. Nó thường được sử dụng để chỉ một tiêu đề phụ, không liên quan đến các khái niệm cơ bản của lập trình đối tượng. Vì vậy, SubTitle là lựa chọn không đúng trong danh sách các khái niệm đối tượng hướng lập trình.
Mở trang câu hỏi này →
AA business rule
BCalls to operations of an entity class
CDeny cash withdrawal if balance of account is less than $10
DA dialog box
Lời giải
Một lớp logic kinh doanh thường chứa các quy tắc kinh doanh và các phương thức liên quan đến nghiệp vụ kinh doanh. Trong các lựa chọn trên, "Một hộp thoại" không phải là một quy tắc kinh doanh hoặc một phương thức nghiệp vụ kinh doanh. Thay vào đó, nó là một thành phần giao diện người dùng (UI) và thường được chứa trong các lớp tương tác người dùng. Do đó, "Một hộp thoại" là lựa chọn không có khả năng được bao gồm trong một lớp logic kinh doanh.
Mở trang câu hỏi này →
72Which of the following is NOT a benefit of using software models?4 lựa chọnDễ89% trả lời đúng
ABetter communication between stakeholders
BEasier maintenance of code
CIncreased hardware performance
DEarly detection of design flaws
Lời giải
Khi sử dụng mô hình phần mềm, có nhiều lợi ích mà chúng ta có thể tận dụng. Một trong số đó là việc cải thiện giao tiếp giữa các bên liên quan. Mô hình phần mềm giúp các bên hiểu rõ hơn về yêu cầu và mục tiêu của dự án, từ đó có thể trao đổi thông tin một cách hiệu quả hơn. Ngoài ra, mô hình phần mềm còn giúp dễ dàng bảo trì mã nguồn, giảm thiểu thời gian và chi phí cho việc sửa lỗi. Tuy nhiên, một số người có thể nghĩ rằng mô hình phần mềm có thể giúp tăng cường hiệu suất của phần cứng, nhưng thực tế thì không phải vậy. Mô hình phần mềm không liên quan trực tiếp đến hiệu suất của phần cứng. Vì vậy, lựa chọn không đúng là "Tăng cường hiệu suất của phần cứng".
Mở trang câu hỏi này →
AService Registration Pattern
BBroker Forwarding Pattern
CService Discovery Pattern
DTwo-Phase Commit Protocol Pattern
Lời giải
Mô hình trong SOA chủ yếu liên quan đến việc tìm kiếm dịch vụ là Mô hình Khám phá Dịch vụ. Mô hình này cho phép các dịch vụ được đăng ký và tìm kiếm một cách tự động, giúp tăng cường khả năng tương tác giữa các dịch vụ khác nhau. Khi một dịch vụ được tạo ra, nó sẽ đăng ký thông tin của mình vào một cơ sở dữ liệu tập trung, sau đó các dịch vụ khác có thể tìm kiếm và liên lạc với dịch vụ đó thông qua cơ sở dữ liệu này. Điều này giúp giảm thiểu sự phức tạp trong việc tìm kiếm và liên lạc giữa các dịch vụ.
Mở trang câu hỏi này →
74What is the main role of a broker in SOA?4 lựa chọnTrung bình50% trả lời đúng
AManage the resources of services.
BPerform services on behalf of the client.
CAct as an intermediary between clients and services.
DStore detailed information about all clients and services.
Lời giải
Trong mô hình SOA (Service-Oriented Architecture), một đại lý (broker) đóng vai trò quan trọng là trung gian giữa các khách hàng (client) và các dịch vụ (service). Đại lý giúp khách hàng tìm kiếm và liên kết với các dịch vụ cần thiết, đồng thời đảm bảo rằng các giao dịch giữa khách hàng và dịch vụ được thực hiện một cách an toàn và hiệu quả. Đại lý cũng có thể cung cấp các chức năng như kiểm tra tính khả dụng của dịch vụ, quản lý phiên bản của dịch vụ và đảm bảo rằng các giao dịch được thực hiện theo các quy tắc và chính sách đã được định nghĩa.
Mở trang câu hỏi này →
75What does a use case diagram represent?4 lựa chọnDễ100% trả lời đúng
AThe structural relationships between classes
BThe interactions between the system and its users
CThe deployment of software components
DThe sequence of operations
Lời giải
Sơ đồ trường hợp sử dụng (Use Case Diagram) là một loại sơ đồ được sử dụng trong thiết kế phần mềm để mô tả các tương tác giữa người dùng và hệ thống. Nó giúp xác định các yêu cầu chức năng của hệ thống và các trường hợp sử dụng mà người dùng có thể thực hiện. Sơ đồ trường hợp sử dụng thường bao gồm các thành phần như người dùng, hệ thống và các trường hợp sử dụng. Mỗi trường hợp sử dụng được mô tả bằng một hình oval và bao gồm các hành động mà người dùng có thể thực hiện với hệ thống. Sơ đồ này giúp các nhà phát triển phần mềm hiểu rõ về các yêu cầu chức năng của hệ thống và thiết kế hệ thống một cách phù hợp.
Mở trang câu hỏi này →
AIn a separate section of the use case description
BAs a use case precondition
CAs a use case postcondition
DIn a separate document
Lời giải
Một yêu cầu không chức năng có thể được mô tả trong mô hình trường hợp sử dụng bằng cách thêm một phần riêng biệt vào mô tả trường hợp sử dụng. Điều này cho phép các nhà phát triển và các bên liên quan khác hiểu rõ hơn về các yêu cầu không chức năng và cách chúng ảnh hưởng đến các trường hợp sử dụng. Ví dụ, một trường hợp sử dụng có thể bao gồm một phần riêng biệt để mô tả các yêu cầu bảo mật, chẳng hạn như việc xác thực người dùng hoặc bảo vệ dữ liệu nhạy cảm. Điều này giúp đảm bảo rằng các yêu cầu không chức năng được xem xét và thực hiện một cách đầy đủ trong suốt quá trình phát triển phần mềm.
Mở trang câu hỏi này →
77What is information hiding in software design?4 lựa chọnDễ100% trả lời đúng
AHiding information so that it cannot be found
BHiding a design decision that is considered likely to change
CHiding information to make it secure
DEncapsulating data in a class
Lời giải
Thông tin giấu (information hiding) trong thiết kế phần mềm là một kỹ thuật giúp giảm thiểu sự phụ thuộc giữa các thành phần của hệ thống. Nó liên quan đến việc giấu đi các quyết định thiết kế có khả năng thay đổi trong tương lai. Điều này giúp hệ thống trở nên linh hoạt và dễ dàng mở rộng hơn. Thông tin giấu không chỉ giúp giảm thiểu sự phụ thuộc mà còn giúp giảm thiểu sự phức tạp của hệ thống. Nó cũng giúp các nhà phát triển có thể thay đổi hoặc cập nhật các quyết định thiết kế mà không ảnh hưởng đến các thành phần khác của hệ thống.
Mở trang câu hỏi này →
AEncapsulation
BClass
CSubclass
DSubroutine
Lời giải
Trong lập trình hướng đối tượng, Encapsulation, Class và Subclass là những khái niệm quan trọng. Encapsulation giúp cô lập dữ liệu và phương thức, Class là một mẫu thiết kế mô tả một loại đối tượng, Subclass là một lớp con kế thừa tính chất của lớp cha. Tuy nhiên, Subroutine không phải là một khái niệm liên quan đến lập trình hướng đối tượng. Subroutine thường được sử dụng trong lập trình thủ tục, nơi mà một đoạn mã được gọi nhiều lần trong chương trình. Vì vậy, trong bối cảnh lập trình hướng đối tượng, Subroutine không phải là một khái niệm liên quan.
Mở trang câu hỏi này →
79Which of the following is not addressed by a secure system?4 lựa chọnTrung bình67% trả lời đúng
ASystem penetration
BDenial of service
CSystem scalability
DSystem authorization
Lời giải
Một hệ thống an toàn thường bao gồm các yếu tố như bảo mật truy cập (authorization), ngăn chặn xâm nhập (penetration), ngăn chặn dịch vụ (denial of service). Tuy nhiên, hệ thống khả năng mở rộng (system scalability) không phải là một yếu tố được giải quyết bởi một hệ thống an toàn. Khả năng mở rộng là một khía cạnh quan trọng của thiết kế hệ thống, nhưng nó không liên quan trực tiếp đến bảo mật. Vì vậy, trong danh sách các lựa chọn, "System scalability" là không được giải quyết bởi một hệ thống an toàn.
Mở trang câu hỏi này →
80What is an event-driven input task?4 lựa chọnDễ
AA task that executes every few seconds
BA task that controls other tasks
CA task that receives inputs from an external device when it generates interrupts
DA task that checks whether there is new input from an external device
Lời giải
Một nhiệm vụ được gọi là nhiệm vụ nhập dựa trên sự kiện (event-driven input task) khi nó nhận được đầu vào từ thiết bị ngoại vi khi thiết bị đó tạo ra tín hiệu ngắt (interrupt). Điều này có nghĩa là nhiệm vụ này sẽ được kích hoạt khi thiết bị ngoại vi gửi tín hiệu ngắt đến hệ thống, và nhiệm vụ sẽ thực hiện các hành động cần thiết để xử lý đầu vào từ thiết bị đó. Ví dụ, một nhiệm vụ nhập dựa trên sự kiện có thể được sử dụng để đọc dữ liệu từ một thiết bị cảm biến, hoặc để xử lý tín hiệu từ một thiết bị nhập liệu. Nhiệm vụ nhập dựa trên sự kiện cho phép hệ thống phản ứng nhanh chóng và hiệu quả với các sự kiện từ thiết bị ngoại vi.
Mở trang câu hỏi này →
81What is a key characteristic of a state-machine class as described in the context?4 lựa chọnTrung bình43% trả lời đúng
AIt exposes the contents of the state transition table for easy access.
BIt encapsulates the statechart information and hides the state transition table.
CIt allows multiple statecharts to share the same state-machine class without modifications.
DIt does not provide operations for processing incoming events
Lời giải
Một trong những đặc điểm chính của lớp máy trạng thái được mô tả trong ngữ cảnh này là sự đóng gói thông tin trạng thái chart và ẩn bảng chuyển trạng thái. Điều này có nghĩa là lớp máy trạng thái sẽ chứa tất cả thông tin về trạng thái và chuyển trạng thái, nhưng không cung cấp quyền truy cập trực tiếp vào bảng chuyển trạng thái. Thay vào đó, lớp máy trạng thái sẽ cung cấp các phương thức để xử lý các sự kiện nhập vào và thực hiện các chuyển trạng thái phù hợp. Điều này giúp bảo vệ bảng chuyển trạng thái khỏi việc truy cập không mong muốn và đảm bảo rằng trạng thái của hệ thống được quản lý một cách hợp lý.
Mở trang câu hỏi này →
AInformation hiding is a different term for the same concept as encapsulation.
BInformation hiding is a subset of encapsulation, focusing on hiding internal details.
CEncapsulation is a subset of information hiding, emphasizing data security.
DInformation hiding and encapsulation are unrelated concepts in software design.
Lời giải
Thông tin ẩn là một khái niệm liên quan đến khái niệm đóng gói trong kỹ thuật phần mềm. Nói cách khác, thông tin ẩn là một phần của khái niệm đóng gói, tập trung vào việc ẩn các chi tiết nội bộ. Khi một lớp thực hiện thông tin ẩn, nó sẽ chỉ cung cấp một giao diện cho người dùng, đồng thời ẩn đi các chi tiết nội bộ của lớp đó. Điều này giúp giảm thiểu sự phụ thuộc vào lớp và tăng cường tính linh hoạt của hệ thống. Thông tin ẩn cũng giúp bảo vệ lớp khỏi việc truy cập trực tiếp vào các thành phần nội bộ, từ đó giảm thiểu khả năng xảy ra lỗi và tăng cường tính bảo mật của hệ thống.
Mở trang câu hỏi này →
83What is a state transition into a composite state equivalent to?4 lựa chọnTrung bình60% trả lời đúng
AA transition into only one of the substates
BA transition into each of the substates
CA transition into none of the substates
DA transition into any one of the substates
Lời giải
Khi một trạng thái máy trạng thái (state machine) chuyển sang một trạng thái hợp thành (composite state), điều này tương đương với việc chuyển sang một trong các trạng thái con (substates) của trạng thái hợp thành đó. Trạng thái hợp thành có thể bao gồm một hoặc nhiều trạng thái con, và việc chuyển sang trạng thái hợp thành có thể được xem như là một cách để mô tả một chuỗi các trạng thái con.
Mở trang câu hỏi này →
84What is a primary concern when designing service-oriented architectures (SOA)?4 lựa chọnDễ100% trả lời đúng
ALoose coupling between components for flexibility
BTight coupling for better performance
CCentralized database structure
DReducing the use of APIs
Lời giải
Khi thiết kế kiến trúc dịch vụ hướng chức năng (SOA), một mối quan tâm chính là sự kết nối lỏng lẻo giữa các thành phần để tăng tính linh hoạt. Điều này có nghĩa là các thành phần có thể được thiết kế và triển khai độc lập mà không ảnh hưởng đến các thành phần khác. Sự kết nối lỏng lẻo giúp tăng cường khả năng mở rộng, giảm thiểu rủi ro và cải thiện khả năng bảo trì. Ngoài ra, nó cũng giúp tăng cường khả năng thích nghi với các thay đổi trong yêu cầu của hệ thống. Vì vậy, sự kết nối lỏng lẻo giữa các thành phần là một yếu tố quan trọng khi thiết kế kiến trúc dịch vụ hướng chức năng.
Mở trang câu hỏi này →