Tất cả câu hỏi

Ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết.

9.100/16.370 câuCòn 7.270
AA state transition table
BA state chart
CThe current state of the machine
DA state transition table and the current state of the machine
Lời giải
Đáp án đúng: "A state transition table and the current state of the machine". Lớp máy trạng thái (state machine class) đóng gói CẢ HAI thứ: bảng chuyển trạng thái — phần dữ liệu tĩnh cho biết ở trạng thái nào, nhận sự kiện nào thì chuyển đi đâu và sinh hành động gì — và trạng thái hiện hành, phần dữ liệu động cho biết máy đang ở đâu. Thiếu một trong hai thì lớp không tự xử lý được sự kiện tiếp theo. "A state transition table" và "The current state of the machine" đều chỉ đúng một nửa. "A state chart" sai vì statechart là ký pháp đồ hoạ để con người đọc lúc thiết kế; thứ được đóng gói trong mã là bảng chuyển trạng thái đã mã hoá từ statechart đó.
Mở trang câu hỏi này →
AClass Diagram
BSequence Diagram
CUse Case Diagram
DComponent Diagram
Lời giải
Đáp án đúng: "Sequence Diagram". Sơ đồ tuần tự mô tả hành vi động: các đối tượng trao đổi thông điệp nào, theo thứ tự nào, theo trục thời gian — đúng thứ câu hỏi cần. "Class Diagram" sai vì sơ đồ lớp mô tả cấu trúc TĨNH: lớp, thuộc tính, thao tác và quan hệ, không có yếu tố thời gian. "Use Case Diagram" sai vì sơ đồ use case mô tả chức năng ở mức yêu cầu, không mô tả trình tự tương tác chi tiết. "Component Diagram" sai vì sơ đồ thành phần mô tả cách tổ chức các đơn vị triển khai, cũng là góc nhìn tĩnh.
Mở trang câu hỏi này →
ASPL Engineering and Software Application Engineering
BSPL Engineering and real-time software Engineering
CReal time software Engineering and Software Application Engineering
DReal-time software Engineering and Component-Based Software Engineering
Lời giải
Đáp án đúng: "SPL Engineering and Software Application Engineering". Mô hình quy trình phần mềm cho kỹ nghệ dòng sản phẩm gồm hai quy trình chính: SPL Engineering (kỹ nghệ dòng sản phẩm — xây phần chung, phần biến thiên và kho tài sản tái sử dụng cho cả họ) và Software Application Engineering (kỹ nghệ ứng dụng — lấy từ kho đó ra để dựng một thành viên cụ thể theo yêu cầu khách hàng). Đây chính là cặp "phát triển CHO tái sử dụng" và "phát triển BẰNG tái sử dụng". B, C, D đều sai vì kéo "real-time software engineering" hoặc "component-based software engineering" vào: đó là những lĩnh vực kỹ nghệ khác, không phải một trong hai quy trình cấu thành mô hình SPL.
Mở trang câu hỏi này →
AA client sends a request and waits synchronously for a direct reply from a specific server.
BComponents receive messages by polling a central queue rather than being notified.
CComponents subscribe to a group and automatically receive multicast messages sent to that group.
DEach component must be individually addressed to receive updates from the sender.
Lời giải
Đáp án đúng: "Components subscribe to a group and automatically receive multicast messages sent to that group". Mẫu Subscription/Notification hoạt động theo kiểu đăng ký nhận tin: thành phần quan tâm đăng ký vào một nhóm (hoặc chủ đề), và mọi thông điệp gửi tới nhóm đó sẽ tự động được phát tới toàn bộ thành viên đã đăng ký — bên gửi không cần biết ai đang nghe. Lựa chọn nói "waits synchronously for a direct reply from a specific server" sai vì gửi rồi chờ hồi đáp trực tiếp từ một máy chủ cụ thể là mẫu Synchronous Message Communication with Reply. Lựa chọn nói "receive messages by polling a central queue rather than being notified" sai vì tự đi hỏi hàng đợi (polling) là cơ chế kéo, ngược hẳn với "được thông báo" (đẩy) trong tên mẫu. Lựa chọn nói "Each component must be individually addressed to receive updates from the sender" sai vì phải gọi tên từng thành phần một là gửi đơn hướng (unicast), làm mất chính lợi ích tách rời bên gửi và bên nhận mà mẫu này đem lại.
Mở trang câu hỏi này →
AA sequence of operations performed by an object
BA shared attribute among different classes
CA relationship between two or more classes that shows how instances of those classes interact
DThe inheritance relationship between a parent class and its child classes
Lời giải
Đáp án đúng: "A relationship between two or more classes that shows how instances of those classes interact". Trong mô hình tĩnh, liên kết (association) biểu diễn quan hệ giữa hai hay nhiều lớp, cho biết đối tượng của các lớp này có mối nối với nhau và qua đó tương tác được với nhau; liên kết còn mang bội số (multiplicity) và có thể mang tên vai trò. Lựa chọn nói "A sequence of operations performed by an object" sai vì chuỗi thao tác của một đối tượng thuộc mô hình động, không phải quan hệ giữa các lớp. Lựa chọn nói "A shared attribute among different classes" sai vì liên kết nối các LỚP với nhau chứ không phải chia sẻ thuộc tính giữa chúng. Lựa chọn nói "The inheritance relationship between a parent class and its child classes" sai vì quan hệ kế thừa cha–con là tổng quát hoá (generalization), một loại quan hệ khác hẳn liên kết.
Mở trang câu hỏi này →
ATo minimize the number of use cases
BTo increase communication between subsystems
CTo ensure each subsystem handles a distinct and relatively independent function
DTo remove dynamic modeling steps
Lời giải
Đáp án đúng: "To ensure each subsystem handles a distinct and relatively independent function". Mục tiêu chính khi phân rã hệ thống thành các hệ thống con là để mỗi hệ thống con đảm nhận một chức năng riêng biệt và tương đối độc lập — tức gắn kết bên trong cao và phụ thuộc lẫn nhau thấp. Đó là điều kiện để các hệ thống con phát triển, kiểm thử và thay đổi song song mà không giẫm chân nhau. Lựa chọn "To increase communication between subsystems" sai hẳn hướng: tăng giao tiếp giữa các hệ thống con là tăng độ dính, đúng thứ cần tránh. Lựa chọn "To minimize the number of use cases" sai vì số lượng use case do yêu cầu quyết định, không phải mục tiêu của việc phân rã. Lựa chọn "To remove dynamic modeling steps" sai vì mô hình hoá động là bước cần thiết, không phải thứ để loại bỏ.
Mở trang câu hỏi này →
AOnly the business layer can access the database.
BServices must communicate using REST.
CDevelopment teams should use asynchronous messaging between services to increase performance.
DThe system must be deployed on Linux servers.
Lời giải
Đáp án đúng: "Development teams should use asynchronous messaging between services to increase performance.". Nguyên tắc thiết kế (design principle) là hướng dẫn — nó định hướng đội phát triển nhưng vẫn để chỗ cho phán đoán trong từng tình huống. Câu "đội phát triển NÊN dùng nhắn tin bất đồng bộ giữa các dịch vụ để tăng hiệu năng" đúng dạng đó: một khuyến nghị có lý do, không phải mệnh lệnh tuyệt đối. A, B, D đều là QUYẾT ĐỊNH kiến trúc hoặc ràng buộc, không phải nguyên tắc: "chỉ tầng nghiệp vụ được truy cập cơ sở dữ liệu", "dịch vụ phải giao tiếp bằng REST", "hệ thống phải triển khai trên máy chủ Linux" đều là luật cứng, buộc phải tuân thủ, không có chỗ cho phán đoán. Dấu hiệu phân biệt nằm ở chữ "nên" so với "phải/chỉ".
Mở trang câu hỏi này →
ARepresent interactions between users and system
BDetail hardware setup
CDrill down into source code
DShow low-level database design
Lời giải
Đáp án đúng: "Represent interactions between users and system". Sơ đồ use case dùng để biểu diễn tương tác giữa người dùng (tác nhân) và hệ thống: mỗi use case là một chức năng đem lại giá trị cho tác nhân, và các đường nối cho biết ai dùng chức năng nào. "Detail hardware setup" sai vì cấu hình phần cứng được thể hiện bằng sơ đồ triển khai. "Drill down into source code" sai vì sơ đồ use case cố tình đứng ở mức cao, không đi xuống mã nguồn. "Show low-level database design" sai vì thiết kế cơ sở dữ liệu mức thấp thuộc pha thiết kế chi tiết, hoàn toàn không phải việc của sơ đồ use case.
Mở trang câu hỏi này →
AMonolithic architecture
BComponent-based architecture
CLayered architecture
DEvent-driven architecture
Lời giải
Đáp án đúng: "Component-based architecture". Kiến trúc hướng thành phần (component-based architecture) tổ chức phần mềm thành các thành phần độc lập, có giao diện rõ ràng, thay thế và tái sử dụng được, tương tác với nhau qua các giao diện đó. "Monolithic architecture" sai vì kiến trúc nguyên khối gộp tất cả vào một khối duy nhất — ngược hẳn với tách rời. "Layered architecture" sai vì kiến trúc phân tầng tổ chức theo TẦNG chồng lên nhau với ràng buộc tầng trên gọi tầng dưới, cách chia khác với chia theo thành phần. "Event-driven architecture" sai vì kiến trúc hướng sự kiện nói về cách các bên giao tiếp (qua sự kiện), không phải về cách chia phần mềm thành đơn vị.
Mở trang câu hỏi này →
ATo replace the operating system on each node in the network
BTo directly manage hardware resources across distributed systems
CTo provide a uniform platform that abstracts heterogeneous operating systems for distributed applications
DTo serve as a graphical interface for user interaction in distributed environments
Lời giải
Đáp án đúng: "To provide a uniform platform that abstracts heterogeneous operating systems for distributed applications". Middleware nằm giữa hệ điều hành và ứng dụng phân tán, cung cấp một nền tảng đồng nhất che đi sự khác biệt giữa các hệ điều hành, ngôn ngữ và giao thức mạng bên dưới. Nhờ đó ứng dụng viết một lần vẫn chạy được trên các nút không đồng nhất. Lựa chọn "To replace the operating system on each node in the network" sai vì middleware chạy TRÊN hệ điều hành, không thay thế nó. Lựa chọn "To directly manage hardware resources across distributed systems" sai vì việc quản lý tài nguyên phần cứng vẫn thuộc về hệ điều hành từng nút; middleware không đụng trực tiếp phần cứng. Lựa chọn "To serve as a graphical interface for user interaction in distributed environments" sai vì middleware không phải tầng giao diện người dùng — nó nằm hoàn toàn phía dưới, người dùng không thấy nó.
Mở trang câu hỏi này →
AA rounded rectangle
BA small black circle
CA small black circle inside a larger white circle (bull's-eye)
DA diamond shape
Lời giải
Đáp án đúng: "A small black circle". Trạng thái khởi đầu (initial state) trong sơ đồ máy trạng thái UML được vẽ bằng một chấm tròn đen đặc, với một mũi tên đi ra trỏ tới trạng thái đầu tiên thật sự của máy. "A small black circle inside a larger white circle (bull's-eye)" sai vì chấm đen nằm trong vòng tròn trắng lớn hơn (hình mắt bò) là ký hiệu trạng thái KẾT THÚC — rất dễ nhầm với trạng thái khởi đầu, đây chính là bẫy của câu này. "A rounded rectangle" sai vì hình chữ nhật bo góc là ký hiệu của một trạng thái thường. "A diamond shape" sai vì hình thoi là điểm rẽ nhánh theo điều kiện (choice/decision).
Mở trang câu hỏi này →
ABoundary object
BEntity object
CControl object
DUser interface object
Lời giải
Đáp án đúng: "Control object". Trong mô hình hoá tương tác phụ thuộc trạng thái, đối tượng thực thi máy trạng thái là đối tượng điều khiển (control object) — cụ thể là đối tượng điều khiển phụ thuộc trạng thái. Nó nhận thông điệp đến, tra bảng chuyển trạng thái, đổi trạng thái và phát ra các hành động tương ứng. "Boundary object" sai vì đối tượng biên chỉ nhận sự kiện từ bên ngoài rồi chuyển tiếp vào cho đối tượng điều khiển, bản thân nó không giữ máy trạng thái. "Entity object" sai vì đối tượng thực thể chỉ lưu dữ liệu. "User interface object" sai vì đối tượng giao diện người dùng cũng chỉ là một dạng đối tượng biên.
Mở trang câu hỏi này →
AWith conditional frames (alt)
BWith optional frames (opt)
CWith loops (loop)
DWith concurrent regions (par)
Lời giải
Đáp án đúng: "With conditional frames (alt)". Đường đi thay thế trong sơ đồ tuần tự được biểu diễn bằng khung điều kiện 'alt': khung được chia thành nhiều ngăn, mỗi ngăn có một điều kiện canh, và lúc chạy chỉ ngăn khớp điều kiện được thực hiện — đúng nghĩa "hoặc nhánh này, hoặc nhánh kia". "With optional frames (opt)" sai vì 'opt' chỉ diễn tả một đoạn CÓ THỂ xảy ra hoặc không, tức chỉ một nhánh có điều kiện, không phải nhiều đường đi thay thế nhau. "With loops (loop)" sai vì 'loop' diễn tả lặp. "With concurrent regions (par)" sai vì 'par' diễn tả các đoạn chạy song song, tức xảy ra ĐỒNG THỜI chứ không phải loại trừ nhau.
Mở trang câu hỏi này →
AThe ability of a system to perform its intended functions without failure.
BThe ease with which software can be modified to correct defects, improve performance, or adapt to changes.
CThe ability of a system to scale and handle increased load.
DThe degree to which software can be used in different operating environments.
Lời giải
Đáp án đúng: lựa chọn nói "The ease with which software can be modified". Khả năng bảo trì (maintainability) là mức độ dễ dàng khi sửa đổi phần mềm: sửa lỗi, cải thiện hiệu năng, hoặc thích ứng với thay đổi của môi trường và yêu cầu. Trọng tâm là CHI PHÍ THAY ĐỔI, không phải chất lượng lúc vận hành. Lựa chọn nói "perform its intended functions without failure" sai vì "thực hiện đúng chức năng, không hỏng" là định nghĩa của độ tin cậy (reliability). "The ability of a system to scale and handle increased load." sai vì "mở rộng để chịu tải cao hơn" là khả năng mở rộng (scalability). Lựa chọn nói "used in different operating environments" sai vì "dùng được trên nhiều môi trường vận hành khác nhau" là tính khả chuyển (portability).
Mở trang câu hỏi này →
ATo divide a system into smaller, manageable components for design and development
BTo create testing frameworks for software applications
CTo simplify the use of UML diagrams
DTo centralize data storage
Lời giải
Đáp án đúng: "divide a system into smaller, manageable components". Kiến trúc hệ thống con tồn tại để chia một hệ thống lớn thành các phần nhỏ, quản lý được, mỗi phần có ranh giới và giao diện rõ ràng để có thể thiết kế, phát triển, kiểm thử và triển khai tương đối độc lập. "To create testing frameworks for software applications" sai vì khung kiểm thử là công cụ hỗ trợ, không phải mục đích của việc phân rã kiến trúc. "To simplify the use of UML diagrams" sai vì sơ đồ UML là phương tiện diễn đạt kiến trúc, không phải mục tiêu của kiến trúc. "To centralize data storage" sai vì tập trung hoá lưu trữ dữ liệu là một quyết định thiết kế cụ thể, thậm chí thường đi ngược lại tinh thần phân rã.
Mở trang câu hỏi này →
AWrite executable code immediately
BTransform user requirements into a system architecture and design
CDesign the database schema first
DFocus solely on security testing
Lời giải
Đáp án đúng: lựa chọn nói "Transform user requirements into a system architecture". Mục tiêu của quy trình thiết kế phần mềm là biến yêu cầu người dùng thành kiến trúc và thiết kế hệ thống: quyết định hệ thống gồm những thành phần nào, mỗi thành phần chịu trách nhiệm gì và chúng ghép với nhau ra sao — tức bắc cầu từ "cần gì" sang "làm thế nào". "Write executable code immediately" sai vì viết mã ngay lập tức là bỏ qua chính pha thiết kế mà câu hỏi đang nói tới. "Design the database schema first" sai vì lược đồ cơ sở dữ liệu chỉ là một phần của thiết kế, và thường được quyết định sau khi đã có mô hình phân tích. "Focus solely on security testing" sai vì kiểm thử bảo mật là một hoạt động kiểm chứng, không phải mục tiêu của thiết kế.
Mở trang câu hỏi này →
AObservable
BNon-observable
CAll of the mentioned
DNone of the mentioned
Lời giải
Đáp án đúng: "All of the mentioned". Thuộc tính chất lượng được chia làm hai nhóm theo cách đo: nhóm quan sát được khi hệ thống chạy (observable — hiệu năng, tính sẵn sàng, bảo mật, khả dụng) và nhóm không quan sát được khi chạy (non-observable — khả năng bảo trì, khả chuyển, khả kiểm thử, tái sử dụng). Muốn tính đủ các thuộc tính chất lượng thì phải dùng cả hai nhóm độ đo. Lựa chọn nói "Observable" và lựa chọn nói "Non-observable" đều sai vì mỗi lựa chọn chỉ lấy một nửa: chỉ đo lúc chạy thì không đánh giá được khả năng bảo trì hay khả chuyển; chỉ đo tĩnh thì không biết hệ thống chạy nhanh chậm ra sao. Lựa chọn nói "None of the mentioned" sai vì rõ ràng có độ đo dùng được, không phải là "không cái nào".
Mở trang câu hỏi này →
9098What is a software product line (SPL)?4 lựa chọn
AThe pipeline in cloud
BA service in server
CThe software products marketed by a company
DA family of systems with some common components and some variable components
Lời giải
Đáp án đúng: "A family of systems with some common components". Dòng sản phẩm phần mềm (software product line) là một họ hệ thống chia sẻ phần chung (kernel — có mặt ở mọi thành viên) và khác nhau ở phần biến thiên (optional/variant). Chính cặp "chung + biến thiên" này là điều làm nên khái niệm SPL: xây một lần phần chung rồi sinh ra nhiều thành viên. "The software products marketed by a company" sai vì tập sản phẩm mà một công ty bán ra chỉ là danh mục thương mại, chúng có thể chẳng chia sẻ kiến trúc hay thành phần nào. "The pipeline in cloud" và "A service in server" sai hoàn toàn — pipeline trên cloud và dịch vụ trên máy chủ là khái niệm hạ tầng, không liên quan tới họ sản phẩm.
Mở trang câu hỏi này →
AAggregation
BGeneralization
CAssociation
DDependency
Lời giải
Đáp án đúng: "Generalization". Tổng quát hoá (Generalization) là quan hệ kế thừa trong UML, biểu diễn phân cấp "là một" (is-a): lớp con là một dạng cụ thể của lớp cha và thừa hưởng thuộc tính, thao tác của lớp cha. Ký pháp là mũi tên đầu tam giác rỗng trỏ về lớp cha. "Aggregation" sai vì kết tập biểu diễn quan hệ "có một / gồm có" (has-a), tức toàn thể/bộ phận. "Association" sai vì liên kết chỉ là quan hệ cấu trúc chung giữa các lớp, không hàm ý kế thừa. "Dependency" sai vì phụ thuộc chỉ nói lớp này dùng tới lớp kia, quan hệ yếu nhất trong nhóm.
Mở trang câu hỏi này →
AUsing global variables extensively
BImplementing locks and synchronization mechanisms
CAvoiding thread creation
DUtilizing single-threaded execution only
Lời giải
Đáp án đúng: "Implementing locks and synchronization mechanisms". Cách xử lý tương tranh phổ biến và chuẩn mực là dùng khoá (lock) cùng các cơ chế đồng bộ như semaphore, monitor, biến điều kiện — để bảo vệ vùng tranh chấp, bảo đảm chỉ một luồng thao tác lên dữ liệu dùng chung tại một thời điểm. Lựa chọn "Using global variables extensively" sai vì lạm dụng biến toàn cục làm tăng vùng tranh chấp, khiến tình hình tệ hơn. Lựa chọn "Avoiding thread creation" và lựa chọn "Utilizing single-threaded execution only" đều sai vì né tránh chứ không quản lý: không tạo luồng hoặc chỉ chạy đơn luồng thì đúng là không còn tương tranh, nhưng cũng mất luôn khả năng xử lý đồng thời mà hệ thống cần.
Mở trang câu hỏi này →