Thi lại · SWD392 · Summer 2025
Ôn tập thi lại SWD392 Summer 2025
60 câu gom từ 1 đề ôn của kỳ Summer 2025.
Đề gốc
Bấm để làm trọn một đề thay vì tra từng câu
60 câu hỏi
Trang 3 / 3AThe software inside a family of buildings
BThe structure of a client/server product family
CThe overall structure of the software productline
DThe software product line classes and their relationships
Lời giải
Mở trang câu hỏi này →SPL (Software Product Line) là một phương pháp thiết kế phần mềm giúp tạo ra một dòng sản phẩm phần mềm có tính linh hoạt và tái sử dụng cao. SPL mô tả cấu trúc tổng thể của một dòng sản phẩm phần mềm, bao gồm các thành phần, mối quan hệ và quy tắc thiết kế. Nó giúp các nhà phát triển tạo ra các sản phẩm phần mềm có tính tương thích và dễ dàng mở rộng.
AA class can contain implementations of methods, while an interface cannot
BAn interface can be instantiated, while a class cannot
CA class cannot be extended, while an interface can
DA class only contains method declarations, while an interface contains method implementations
Lời giải
Mở trang câu hỏi này →Khái niệm lớp (class) và giao diện (interface) trong lập trình là hai khái niệm cơ bản và quan trọng. Lớp là một đơn vị tổ chức code, bao gồm các biến và phương thức, có thể chứa các thực thi (implementations) của phương thức. Ngược lại, giao diện chỉ là một tập hợp các phương thức, không chứa các thực thi. Điều này có nghĩa là một lớp có thể chứa các thực thi của phương thức, trong khi một giao diện không thể. Điều này giúp phân biệt rõ ràng giữa lớp và giao diện, giúp lập trình viên sử dụng chúng một cách hiệu quả và chính xác.
AThe software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
BThe software architecture of a computer program or system that solves a problem.
CThe software architecture of a computer program or system that does some basic work for humans
DThe software architecture of a computer program or system that assists humans in processing information
Lời giải
Mở trang câu hỏi này →Cấu trúc phần mềm được định nghĩa bởi Bass, Clements và Kazman là mô hình phần mềm của một chương trình hoặc hệ thống tính toán, bao gồm cấu trúc hoặc cấu trúc của hệ thống, bao gồm các phần tử phần mềm, các tính chất có thể nhìn thấy bên ngoài của các phần tử đó và mối quan hệ giữa chúng. Điều này bao gồm các thành phần phần mềm, các thuộc tính có thể nhìn thấy bên ngoài và mối quan hệ giữa chúng. Cấu trúc phần mềm này là nền tảng để xây dựng và phát triển các hệ thống phần mềm phức tạp. Nó giúp các nhà phát triển hiểu rõ về các phần tử và mối quan hệ giữa chúng, từ đó có thể thiết kế và xây dựng các hệ thống phần mềm hiệu quả và đáng tin cậy.
ATo represent the static structure of a system's classes and their relationships.
BTo illustrate the interactions and collaborations between objects in a system.
CTo model the organization and behavior of objects within a single classifier.
DTo depict the flow of control and the partitioning of a system into states and transitions.
Lời giải
Mở trang câu hỏi này →Trong UML, sơ đồ cấu trúc phức hợp (composite structure diagram) được sử dụng để mô tả tổ chức và hành vi của các đối tượng bên trong một phân loại duy nhất. Nó giúp chúng ta hiểu rõ về mối quan hệ giữa các thành phần và cách chúng tương tác với nhau để đạt được mục tiêu chung. Sơ đồ này thường được sử dụng để mô hình hóa các hệ thống phức tạp, nơi mà các đối tượng có quan hệ chặt chẽ với nhau và cần được quản lý một cách hiệu quả. Bằng cách sử dụng sơ đồ cấu trúc phức hợp, chúng ta có thể xác định rõ ràng về tổ chức và hành vi của các đối tượng, từ đó giúp cải thiện chất lượng và hiệu suất của hệ thống.
ATo describe a lengthy interaction with an actor
BTo describe functionality that is common to more than one use case
CTo describe the functionality of a use case that is extended by another use case(s)
DTo describe a conditional part of a different use case that is only executed under certain circumstances
Lời giải
Mở trang câu hỏi này →Đáp án đúng: D. Use case mở rộng (extension use case) mô tả một phần CÓ ĐIỀU KIỆN của một use case khác — phần chỉ chạy trong hoàn cảnh nhất định, tại một điểm mở rộng đã định trước của use case cơ sở. Nhờ vậy luồng chính giữ được sự gọn gàng, còn các nhánh ngoại lệ hoặc tuỳ chọn được tách riêng.
C là bẫy sát nhất nhưng mô tả ngược vai: đó là use case CƠ SỞ (bị mở rộng bởi use case khác), không phải use case mở rộng. B sai vì phần chức năng dùng chung cho nhiều use case được tách bằng quan hệ include, không phải extend. A sai vì độ dài của tương tác không liên quan gì đến khái niệm mở rộng.
AThe software inside a building
BThe structure of a client/server system
CThe overall structure of a software system
DThe software classes and their relationships
Lời giải
Mở trang câu hỏi này →Kỹ thuật thiết kế phần mềm (software architecture) mô tả tổng thể cấu trúc của một hệ thống phần mềm. Nó bao gồm các thành phần chính như mô hình tổ chức, giao tiếp giữa các thành phần, và cách thức hoạt động của hệ thống. Mục tiêu của kỹ thuật thiết kế phần mềm là đảm bảo hệ thống phần mềm có thể mở rộng, dễ dàng bảo trì và sửa lỗi, đồng thời đáp ứng được các yêu cầu chức năng và hiệu suất. Nó giống như một bản thiết kế kiến trúc cho một tòa nhà, giúp đảm bảo rằng tòa nhà được xây dựng một cách hợp lý và hiệu quả.
AInvoke operation of different names on the same objects.
BInvoke operations of different names on different objects.
CInvoke an operation of the same name on the same object.
DInvoke an operation of the same name on different objects.
Lời giải
Mở trang câu hỏi này →Polymorphism và động kết hợp (dynamic binding) cho phép một đối tượng thực hiện các hành động khác nhau dựa trên loại của nó. Điều này có nghĩa là một đối tượng có thể thực hiện các phương thức khác nhau mặc dù nó được gọi bằng cùng một tên. Ví dụ, nếu bạn có một lớp Animal và một lớp Dog kế thừa từ Animal, bạn có thể tạo một đối tượng Dog và gọi phương thức bark() mà không cần phải biết rằng đối tượng đó là một Dog. Điều này cho phép bạn viết mã linh hoạt hơn và dễ dàng thêm mới các lớp con mà không cần phải thay đổi mã hiện có.
AA state-dependent control object sends a message to an entity object.
BA state-dependent control object sends a message to a coordinator object.
CA state-dependent control object sends a message to a printer object.
DAll of the above
Lời giải
Mở trang câu hỏi này →Trên một sơ đồ tương tác, có thể xảy ra các tình huống sau: Một đối tượng kiểm soát phụ thuộc vào trạng thái gửi một tin nhắn đến một đối tượng thực thể. Một đối tượng kiểm soát phụ thuộc vào trạng thái gửi một tin nhắn đến một đối tượng điều phối. Một đối tượng kiểm soát phụ thuộc vào trạng thái gửi một tin nhắn đến một đối tượng in. Tất cả các tình huống trên đều có thể xảy ra trên một sơ đồ tương tác. Điều này cho thấy sự linh hoạt và đa dạng của các tương tác trong một hệ thống, từ việc điều phối các hoạt động đến việc thực hiện các tác vụ cụ thể.
AAn event on the internal state machine
BAn action on the internal state machine
CA condition on the internal state machine
DA state on the internal state machine
Lời giải
Mở trang câu hỏi này →Một thông điệp đầu ra từ một đối tượng kiểm soát phụ thuộc vào trạng thái tương ứng với một hành động trên máy trạng thái nội bộ. Điều này có nghĩa là thông điệp đầu ra được tạo ra bởi một hành động cụ thể được thực hiện bởi máy trạng thái nội bộ. Ví dụ, trong một hệ thống kiểm soát nhiệt độ, một thông điệp đầu ra có thể được tạo ra khi máy trạng thái nội bộ chuyển sang trạng thái 'nhiệt độ cao' và hành động được thực hiện là bật quạt gió để làm mát. Trong trường hợp này, thông điệp đầu ra tương ứng với hành động 'bật quạt gió' trên máy trạng thái nội bộ.
AClient-Server Model
BMonolithic Architecture
CProcedural Programming
DTesting Frameworks
Lời giải
Mở trang câu hỏi này →Đáp án đúng: A. Mô hình Client-Server tách hệ thống thành các bên phục vụ và bên sử dụng có ranh giới rõ ràng, giao tiếp qua giao diện chuẩn. Nhờ tách rời đó, có thể nhân bản thêm máy chủ khi tải tăng (mở rộng) và thay đổi từng phía độc lập (mô-đun hoá).
B sai vì kiến trúc nguyên khối gộp mọi thứ vào một khối duy nhất, mở rộng phải nhân bản cả khối và sửa đâu cũng phải triển khai lại toàn bộ. C sai vì lập trình thủ tục là một mô hình lập trình, không phải thành phần kiến trúc. D sai vì khung kiểm thử là công cụ hỗ trợ chất lượng, không quyết định khả năng mở rộng hay mô-đun hoá.
What is the signature of an operation?4 lựa chọn
AThe operation's name
BThe operation's function or subroutine
CThe operation's name, parameters, and return value
DThe object's interface
Lời giải
Mở trang câu hỏi này →Tính chất của một phương thức (operation) được gọi là dấu hiệu (signature) của nó. Dấu hiệu của một phương thức bao gồm tên phương thức, tham số và giá trị trả về. Điều này giúp xác định rõ ràng cách thức hoạt động của phương thức và cách thức giao tiếp giữa các phần tử trong hệ thống. Ví dụ, khi gọi một phương thức, chúng ta cần biết tên phương thức, các tham số cần cung cấp và giá trị nào sẽ được trả về. Điều này giúp đảm bảo tính nhất quán và dễ dàng sử dụng trong việc gọi và triển khai phương thức.
AA transition out of only one of the substates
BA transition out of each of the substates
CA transition out of none of the substates
DA transition out of any one of the substates
Lời giải
Mở trang câu hỏi này →Khi một trạng thái phức tạp (composite state) chuyển sang trạng thái khác, điều này tương đương với việc chuyển trạng thái ra khỏi tất cả các trạng thái con (substates) của nó. Điều này có nghĩa là khi trạng thái phức tạp kết thúc, tất cả các trạng thái con cũng sẽ kết thúc cùng với nó. Ví dụ, nếu một trạng thái phức tạp đại diện cho một quá trình mua hàng, thì khi quá trình mua hàng kết thúc, trạng thái phức tạp sẽ chuyển sang trạng thái khác, tương đương với việc chuyển trạng thái ra khỏi trạng thái "đang mua hàng" của từng bước trong quá trình mua hàng.
AAn information hiding class
BA subclass
CA control class
DA data abstraction class
Lời giải
Mở trang câu hỏi này →Một lớp thực thể (entity class) là lớp có chứa dữ liệu và phương thức liên quan đến dữ liệu đó. Nó là một phần quan trọng trong lập trình hướng đối tượng, giúp cô lập dữ liệu và phương thức, tạo điều kiện thuận lợi cho việc tái sử dụng và mở rộng mã nguồn. Ví dụ, lớp 'Khách hàng' có thể có các thuộc tính như 'tên', 'địa chỉ', 'số điện thoại' và các phương thức như 'thêm khách hàng', 'xóa khách hàng', 'cập nhật thông tin khách hàng'.
ASoftware functional requirements
BSoftware nonfunctional requirements
CSoftware performance requirements
DSoftware availability requirements
Lời giải
Mở trang câu hỏi này →Tính chất chất lượng phần mềm (software quality attributes) là những đặc điểm không liên quan trực tiếp đến chức năng của phần mềm mà ảnh hưởng đến hiệu suất và khả năng sử dụng của nó. Chúng bao gồm các yếu tố như độ ổn định, độ tin cậy, khả năng mở rộng, bảo mật, tính dễ sử dụng và khả năng tương thích. Tính chất chất lượng phần mềm giúp đảm bảo rằng phần mềm hoạt động một cách hiệu quả và đáp ứng được nhu cầu của người dùng.
A
EncapsulationB
ClassC
SubclassD
SubroutineLời giải
Mở trang câu hỏi này →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.
What does UML stand for?4 lựa chọn
AUnified Modeling Language
BUniversal Modeling Language
CUniform Modeling Language
DUnique Modeling Language
Lời giải
Mở trang câu hỏi này →UML là viết tắt của Unified Modeling Language, là một ngôn ngữ mô hình hóa thống nhất được sử dụng để mô tả và thiết kế các hệ thống phần mềm. UML cung cấp một bộ công cụ để mô tả các đối tượng, mối quan hệ và hành vi của các đối tượng trong một hệ thống. Nó giúp các nhà phát triển phần mềm tạo ra các mô hình và thiết kế hệ thống một cách rõ ràng và thống nhất. UML bao gồm các yếu tố như lớp, đối tượng, mối quan hệ, hoạt động và quy trình, giúp các nhà phát triển phần mềm hiểu rõ về cấu trúc và hành vi của hệ thống. Sử dụng UML giúp tăng cường hiệu suất và giảm thiểu sai sót trong quá trình phát triển phần mềm.
AIt should interface to one subsystem
BIt should interface to several subsystems.
CIt should interface to every subsystem.
DIt should interface to none of the subsystems.
Lời giải
Mở trang câu hỏi này →Khi thiết kế một đối tượng bên ngoài để giao tiếp với hệ thống, chúng ta cần xem xét cách thức giao tiếp này sẽ diễn ra. Mỗi hệ thống đều có các thành phần riêng biệt, được gọi là các subsystem. Để giao tiếp hiệu quả, đối tượng bên ngoài nên giao tiếp với một subsystem duy nhất. Điều này giúp giảm thiểu sự phức tạp và tăng cường khả năng bảo trì. Giao tiếp với một subsystem duy nhất cũng giúp đối tượng bên ngoài có thể tập trung vào việc giao tiếp với một thành phần cụ thể của hệ thống, thay vì phải xử lý nhiều thành phần khác nhau. Điều này giúp giảm thiểu khả năng xảy ra lỗi và tăng cường khả năng tương tác giữa đối tượng bên ngoài và hệ thống.
What is an information hiding object?4 lựa chọn
AAn active object that encapsulates data
BA passive object that encapsulates data
CA class that encapsulates data
DA task that encapsulates data
Lời giải
Mở trang câu hỏi này →Một đối tượng ẩn thông tin là một khái niệm trong lập trình hướng đối tượng, trong đó một đối tượng được thiết kế để ẩn dữ liệu của nó khỏi các phần khác của chương trình. Đối tượng ẩn thông tin thường được sử dụng để ngăn chặn truy cập trực tiếp vào dữ liệu của nó, từ đó giúp bảo vệ dữ liệu khỏi bị thay đổi hoặc bị xâm phạm. Đối tượng ẩn thông tin thường được tạo ra bằng cách sử dụng các kỹ thuật như encapsulation, trong đó dữ liệu và các phương thức liên quan đến dữ liệu được nhóm lại trong một đối tượng duy nhất. Điều này giúp tăng cường bảo mật và giảm thiểu rủi ro xảy ra khi sử dụng dữ liệu.
AThe client agent can propose a service.
BThe service agent can offer a service in response to a client agent proposal.
CThe client agent can request a service.
DThe service agent can offer a service in response to a client agent request.
Lời giải
Mở trang câu hỏi này →Mô hình đàm phán (Negotiation pattern) cho phép hai bên trao đổi và thỏa thuận về một dịch vụ. Trong mô hình này, bên yêu cầu (client agent) có thể đề xuất một dịch vụ, và bên cung cấp (service agent) có thể đáp ứng yêu cầu đó bằng cách cung cấp dịch vụ. Tuy nhiên, bên cung cấp không thể tự động đề xuất dịch vụ cho bên yêu cầu mà không có yêu cầu trước đó. Vì vậy, câu trả lời đúng là "The service agent can offer a service in response to a client agent request."
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
Mở trang câu hỏi này →Đá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.
Đi tiếp từ đây
Kỳ khác cùng môn
Summer 2026Về lát
Thi lại · SWD392