














Preview text:
lOMoARcPSD| 45315597
ĐỀ THI GIỮA KỲ MÔN PTTKHT - KỲ 20242 NGÀY 06/06 - TC 312 LỚP 157517 IT 3120 THỜI GIAN 60 PHÚT
Q1: Người ta viết ra lớp LoginView đại diện cho giao diện đồ hoạ của người dùng. Họ cũng viết ra lớp
AccountModel đại diện cho tài khoản của người dùng. Họ cũng viết ra lớp LoginControl trong đó cài đặt các
chức năng nghiệp vụ của hệ thống. Họ cũng viết ra lớp FileControl trong đó cài đặt chức năng lưu thông tin
đăng nhập (username, password, token) vào ổ cứng của máy và mã hoá thông tin đó. Nếu chia các lớp trên
vào 3 tầng: tầng cao nhất gần như không cần tương tác với phần cứng thiết bị, tầng thấp hơn có tương tác
với phần cứng thiết bị và tầng cuối cùng bắt buộc phải tương tác với phần cứng thiết bị thì các đáp án dưới
đây có đáp án nào đúng?
A. Lớp FileControl sẽ phải phụ thuộc vào LoginView
B. Lớp LoginView sẽ phải phụ thuộc vào FileControl
C. Lớp FileControl sẽ phải phụ thuộc AccountModel
D. Tất cả các đáp án còn lại đều sai
Q2: Phân tích hệ thống trong phát triển phần mềm hướng đối tượng tập trung vào điều gì?
A. Lập trình B. Hiểu bài toán và yêu cầu nghiệp vụ
C. Kiểm thử hệ thống D. Tạo tài liệu hướng dẫn
Q3: UML 2.x phân các loại biểu đồ thành bao nhiêu nhóm lớn?
A. 1 nhóm B. 2 nhóm: Cấu trúc và Hành vi
C. 3 nhóm: Cấu trúc, Hành vi và Triển khai D. 4 nhóm: Phân tích, Thiết kế, Lập trình, Kiểm thử
Q4: Trong mô hình hướng đối tượng, "lớp" (class) là gì?
A. Một tập hợp các đối tượng có hành vi khác nhau
B. Một đơn vị lưu trữ dữ liệu
C. Một khuôn mẫu cho các đối tượng chia sẻ cùng cấu trúc và hành vi
D. Một phần mềm cụ thể
Q5: Trong UML, mối quan hệ "kế thừa" giữa các lớp được biểu diễn như thế nào?
A. Một đường thẳng liền B. Một đường mũi tên rỗng (open arrowhead)
C. Một đường nét đứt D. Một đường mũi tên tô đậm
Q6: Sự khác biệt lớn nhất giữa "generalization" và "realization" trong UML là gì?
A. Generalization cho phép kế thừa; Realization áp dụng cho interface
B. Cả hai đều giống nhau
C. Realization chỉ dùng trong database modeling
D. Generalization dùng cho object, Realization dùng cho component
Q7: Mục tiêu chính của mô hình hóa nghiệp vụ (Business Modeling) là gì?
A. Phát triển phần mềm nhanh hơn
B. Hiểu và phân tích quy trình nghiệp vụ hiện tại
C. Tạo giao diện người dùng hấp dẫn
D. Lập trình cơ sở dữ liệu
Q8: Business Object Model (BOM) mô tả điều gì trong mô hình nghiệp vụ?
A. Các đối tượng nghiệp vụ và mối quan hệ giữa chúng
B. Các quy trình nghiệp vụ C. Các yêu cầu kỹ thuật
D. Các thiết bị phần cứng
Q9: Đặc điểm nào sau đây phân biệt Business Actor với System Actor?
A. Business Actor luôn là người thật
B. System Actor tương tác với hệ thống máy tính; Business Actor tương tác với nghiệp vụ C.
Business Actor chỉ tồn tại trong hệ thống phần mềm
D. Không có sự khác biệt
Q10: Mục tiêu chính của giai đoạn phân tích trong phát triển hệ thống là gì?
A. Thiết kế cơ sở dữ liệu B. Lập trình hệ thống
C. Hiểu yêu cầu và mô hình hóa hệ thống
D. Viết tài liệu hướng dẫn sử dụng lOMoARcPSD| 45315597
Q11: Actor trong Use Case Diagram có thể là đối tượng nào?
A. Người dùng hệ thống B. Hệ thống bên ngoài C. Cả A và B
D. Chỉ phần mềm hệ thống
Q12: Khi phân tích hệ thống, việc phân loại lớp phân tích thành Boundary, Control và Entity nhằm mục đích gì?
A. Giảm số lượng lớp B. Tăng tốc độ lập trình C. Tăng tính tổ chức và rõ ràng của hệ thống
D. Phân chia tài nguyên phần cứng
Q13: Mục tiêu chính của thiết kế kiến trúc hệ thống là gì?
A. Thiết kế giao diện người dùng
B. Tối ưu hóa cơ sở dữ liệu C. Định hình cấu trúc tổng thể và các
thành phần chính của hệ thống
D. Lập trình chi tiết các module
Q14: Một hệ thống quản lý nhân sự trong công ty. Có một usecase như sau: nhân viên mới (Employee) đăng
ký vào hệ thống. Khi đăng ký thành công thì nhân viên đó sẽ được gán một mức lương, và việc gán này do
nghiệp vụ xét lương (SalaryAssignment) tiến hành. Ngoài ra khi ấy chức năng đăng ký sẽ phải được gọi thêm
chức năng gán người hướng dẫn. Người hướng dẫn đó phải thuộc nhóm nhân viên quản lý (Manager) ngoài
ra nếu cứ 10 nhân viên mới sẽ có một người thanh tra (Inspector) để kiểm soát độc lập việc hướng dẫn của
Manager. Việc xác định người hướng dẫn và người thanh tra thuộc về nghiệp vụ (GuideSupporter). Hãy xác
định phát biểu nào đúng dưới đây
A. Employee là lớp thuộc nhóm điều khiển
B. SalaryAssignment là lớp thuộc nhóm dữ liệu
C. Trách nhiệm của lớp Manager là xác thực đăng nhập
D. Lớp Inspector là lớp thuộc nhóm dữ liệu
Q15: Khi thiết kế hệ thống, tại sao cần xác định kiến trúc tổng thể trước?
A. Để dễ viết hướng dẫn sử dụng
B. Để lập trình viên tự do sáng tạo C. Để định hướng phát triển
thống nhất và kiểm soát chất lượng D. Để quảng cáo sản phẩm
Q16: Trong thiết kế kiến trúc hệ thống, yếu tố "availability" mô tả điều gì?
A. Khả năng thay đổi khi có yêu cầu mới
B. Khả năng hệ thống duy trì hoạt động liên tục
C. Khả năng tăng tốc độ truyền tải dữ liệu
D. Khả năng bảo vệ khỏi tấn công mạng
Q17: Mục tiêu chính của phân tích Use Case là gì?
A. Thiết kế cơ sở dữ liệu
B. Mô hình hóa các chức năng hệ thống từ góc nhìn người dùng
C. Lập trình giao diện người dùng
D. Viết tài liệu hướng dẫn sử dụng
Q18: Một Use Case "Base" có mối quan hệ với một Use Case "Extension" thông qua cơ chế nào? A. Include B. Extend
C. Generalization D. Realization
Q19: Trong phân tích Use Case, "Alternative Flow" dùng để mô tả điều gì?
A. Các trường hợp giao tiếp với hệ thống khác
B. Các trường hợp sử dụng giao diện khác
C. Các kịch bản thực hiện khác với luồng chính
D. Các chức năng không cần thiết
Q20: Trong phân tích Use Case, mô tả các điều kiện tiền đề (Preconditions) nhằm mục đích gì?
A. Tăng độ dài tài liệu
B. Định nghĩa trạng thái hệ thống trước khi thực hiện Use Case
C. Giải thích chi tiết thuật toán xử lý D. Tạo cơ sở dữ liệu
Q21: Thiết kế hệ thống phần mềm bao gồm yếu tố nào dưới đây?
A. Tài liệu hướng dẫn sử dụng
B. Thành phần phần mềm và mối quan hệ giữa chúng
C. Các thiết bị phần cứng
D. Ngôn ngữ lập trình cụ thể
Q22: Một nguyên lý thiết kế phần mềm tốt là gì?
A. Liên kết chặt chẽ giữa các thành phần
B. Kết nối lỏng giữa các thành phần C. Tăng số
lượng lớp đối tượng D. Phụ thuộc nhiều vào ngôn ngữ lập trình lOMoARcPSD| 45315597
Q23: Thiết kế hướng đối tượng sử dụng nguyên tắc "Information Hiding" nhằm mục đích gì?
A. Bảo vệ dữ liệu nội bộ lớp
B. Tiết kiệm bộ nhớ hệ thống C. Tăng tốc độ xử lý
D. Tăng kích thước mã nguồn
Q24: Lợi ích của nguyên lý "Program to Interface, not to Implementation" là gì?
A. Tăng độ gắn kết giữa các thành phần
B. Giảm khả năng mở rộng hệ thống
C. Tăng tính linh hoạt và khả năng thay thế
D. Giảm hiệu suất hệ thống
Q25: Mục tiêu chính của thiết kế Use Case là gì?
A. Mô tả luồng sự kiện và hành vi hệ thống từ góc nhìn người dùng
B. Thiết kế cơ sở dữ liệu
C. Viết mã nguồn hệ thống
D. Xác định giao diện người dùng
Q26: Trong thiết kế Use Case, Main Flow mô tả?
A. Luồng lỗi B. Luồng hoạt động bình thường từ đầu đến kết thúc thành công C. Luồng xử lý dữ liệu phụ
D. Luồng tương tác mạng Q27: Preconditions trong Use Case dùng để?
A. Xác định cách bố trí giao diện
B. Thiết lập quyền truy cập dữ liệu
C. Định nghĩa trạng thái yêu cầu trước khi Use Case bắt đầu
D. Xác định các chức năng mở rộng
Q28: Use Case phải đạt tiêu chí nào dưới đây để dễ bảo trì?
A. Gắn liền chặt chẽ với giao diện đồ họa
B. Liệt kê tất cả các thông báo lỗi
C. Tập trung vào yêu cầu phần cứng
D. Gắn với quy trình nghiệp vụ thay vì giao diện cụ thể Q29:
Subsystem trong thiết kế hệ thống là gì?
A. Một nhóm các thành phần thực hiện chung một chức năng lớn
B. Một phần của giao diện người dùng
C. Một cơ sở dữ liệu riêng biệt
D. Một đoạn mã nguồn độc lập
Q30: Một subsystem thường chứa những gì?
A. Một tập hợp các Actor
B. Một bộ cơ sở dữ liệu độc lập C. Các thành phần liên quan để thực hiện
chức năng nghiệp vụ lớn
D. Chỉ một chức năng nhỏ
Q31: Một tiêu chí quan trọng khi phân chia subsystem là gì?
A. Phân chia theo số lượng dòng mã
B. Phân chia theo sở thích cá nhân
C. Phân chia theo số lượng lập trình viên D. Phân chia theo mức độ thay đổi nghiệp vụ Q32: Nếu
một subsystem có nhiều giao diện phức tạp, điều đó dẫn tới vấn đề gì? A. Dễ dàng mở rộng
B. Tăng độ bảo mật hệ thống
C. Giảm chi phí phát triển
D. Tăng rủi ro lỗi tích hợp Q33: Lớp
(Class) trong thiết kế hướng đối tượng là gì?
A. Một bảng cơ sở dữ liệu B. Một đoạn mã nguồn
C. Một khuôn mẫu định nghĩa thuộc tính và hành vi của đối tượng
D. Một giao diện người dùng
Q34: Mối quan hệ "Association" giữa các lớp mô tả điều gì?
A. Một lớp kế thừa lớp khác B. Một lớp lưu trữ dữ liệu cho lớp khác C. Một lớp chứa một lớp khác
D. Một lớp sử dụng dịch vụ của lớp khác Q35:
"Polymorphism" trong thiết kế hướng đối tượng có ý nghĩa gì?
A. Tăng tốc độ chương trình
B. Cho phép các đối tượng khác kiểu có thể được xử lý như cùng một kiểu thông qua giao diện chung
C. Giảm số lượng lớp cần thiết
D. Tối ưu hóa lưu trữ dữ liệu Q36: Lợi ích của việc thiết kế lớp với "High Cohesion" là gì?
A. Dễ bảo trì, dễ mở rộng, dễ hiểu
B. Tăng sự phụ thuộc giữa các module
C. Tăng độ phức tạp hệ thống
D. Giảm tính mở rộng của hệ thống
Q37: Cơ sở dữ liệu (Database) là gì?
A. Một chương trình phần mềm
B. Một tập hợp dữ liệu có tổ chức được lưu trữ và truy cập dễ dàng
C. Một ngôn ngữ lập trình D. Một mạng máy tính
Q38: Quan hệ một-nhiều (One-to-Many) được mô hình hóa bằng cách nào? A. Tạo bảng trung gian
B. Dùng nhiều khóa chính C. Dùng khóa ngoại (Foreign Key) từ bảng con về bảng cha D. Gộp hai bảng lại
Q39: Khi thiết kế cơ sở dữ liệu lớn, yếu tố nào sau đây đặc biệt quan trọng?
A. Khả năng mở rộng và hiệu suất truy vấn lOMoARcPSD| 45315597
B. Số lượng lập trình viên
C. Màu sắc giao diện nhập liệu
D. Thiết kế giao diện người dùng
Q40: Theo em đâu là phát biểu đúng về mô tả biểu đồ lớp này:
Một công trình (Build) có các thông số về diện tích (sqr kiểu double), số định danh (id kiểu String) và địa chỉ
(adr kiểu String) và số người sống trong công trình (peo kiểu int). Một công trình xây dựng có thể là:
(i) một căn phòng khép kín (Room) với thông số về số cửa sổ (wid kiểu int). (ii) một căn hộ cụ thể (Home) với
thông số về số tầng (fls kiểu int). (iii) Một chung cư (Cond) là tập hợp nhiều Room bên trong. Chung cư có
thông số về số tầng (fls) và số lượng Room trong một tầng. (iv) Khoảng không gian trống (Park) có thêm thông
số về tỉ lệ bao phủ cây xanh bên trong diện tích đó (gre kiểu double). A. Đối tượng của lớp Room sẽ chỉ có duy nhất thuộc tính wid.
B. Đối tượng của lớp Home sẽ có thuộc tính fls và gre.
C. Đối tượng của lớp Park sẽ chỉ có thuộc tính gre và sqr.
D. Đối tượng Home sẽ có thể có các thuộc tính của Build lOMoARcPSD| 45315597
ĐỀ THI GIỮA KỲ MÔN PTTKHT - KỲ 20242 NGÀY 06/06 - TC 312 LỚP 157517 IT 3120 THỜI GIAN 60 PHÚT
Q1: Mục tiêu chính của phân tích và thiết kế hệ thống là gì?
A. Thu thập dữ liệu khách hàng
B. Tạo phần mềm chạy thử C. Hiểu yêu cầu và xây dựng mô hình hệ thống
D. Viết mã nguồn chương trình
Q2: Phân tích hệ thống trong phát triển phần mềm hướng đối tượng tập trung vào điều gì? A. Lập trình
B. Hiểu bài toán và yêu cầu nghiệp vụ C. Kiểm thử hệ thống
D. Tạo tài liệu hướng dẫn
Q3: Vì sao UML không được coi là phương pháp luận phát triển phần mềm?
A. Vì UML chỉ mô tả hệ thống, không quy định quy trình phát triển
B. Vì UML không hỗ trợ mô hình hành vi
C. Vì UML chỉ dành cho lập trình viên
D. Vì UML không có biểu đồ cấu trúc
Q4: "Thuộc tính" (attribute) trong một lớp biểu diễn điều gì?
A. Hành động mà lớp thực hiện
B. Dữ liệu hoặc đặc điểm của lớp
C. Đối tượng con của lớp
D. Một chức năng phụ của lớp
Q5: Mối quan hệ "liên kết" (association) giữa các lớp thể hiện điều gì?
A. Một lớp kế thừa lớp khác.
B. Các lớp có thuộc tính chung C. Các lớp tương tác
và liên quan trong thực thi
D. Các lớp hoàn toàn độc lập
Q6: Trong mô hình hướng đối tượng, "kết tập" (aggregation) khác "liên kết" (association) như thế nào?
A. Kết tập mô tả sở hữu yếu, association mô tả sở hữu mạnh
B. Kết tập mô tả sở hữu mạnh hơn association
C. Không khác gì nhau D. Kết tập yêu cầu cùng tồn tại vật lý
Q7: Thành phần nào dưới đây thuộc mô hình nghiệp vụ? A. Lớp (Class) B. Use Case nghiệp vụ C. Deployment Diagram
D. Mã nguồn chương trình
Q8: Ai là người chủ yếu chịu trách nhiệm cung cấp thông tin để xây dựng mô hình nghiệp vụ? A. Lập trình viên
B. Quản trị hệ thống C. Người dùng cuối và chuyên gia nghiệp vụ D. Kiểm thử viên
Q9: Business Modeling được sử dụng nhiều nhất trong giai đoạn nào của vòng đời phát triển hệ thống? A. Thiết kế chi tiết B. Phân tích yêu cầu C. Triển khai hệ thống D. Bảo trì hệ thống
Q10: Đối tượng nào thường chịu trách nhiệm thu thập và phân tích yêu cầu? A. Lập trình viên
B. Phân tích viên hệ thống C. Quản trị mạng D. Người kiểm thử
Q11: "Primary Actor" trong Use Case Analysis là gì?
A. Người trực tiếp nhận giá trị từ hệ thống B. Người đứng ngoài hệ thống C. Hệ thống máy chủ
D. Cơ sở dữ liệu backend
Q12: Trong mô hình lớp phân tích, lớp Control chịu trách nhiệm gì?
A. Xử lý luồng điều khiển và nghiệp vụ
B. Chỉ lưu trữ dữ liệu
C. Giao tiếp người dùng
D. Tương tác cơ sở dữ liệu trực tiếp
Q13: Người ta muốn xây dựng chức năng đăng nhập trên app mobile. Như vậy họ cần viết ra giao diện đồ hoạ
trong đó cho phép người dùng nhập username, password, nhấn nút Login hoặc nhấn nút Forgot password.
Người phát triển cần khai báo lớp đại diện cho bảng Account trong CSDL của phía server. Người phát triển lOMoARcPSD| 45315597
cũng cần khai báo lớp cài đặt các chức năng như: validate username và password, gửi https request đến server
(ngoài các thông tin username, password còn có các thông tin khác như DeviceID, screensize, timestamp…),
nhận dữ liệu từ server trả về, chuyển sang màn hình trang chủ nếu đăng nhập thành công, báo lỗi nếu server
không cho đăng nhập… Vậy các đáp án dưới đây thì đáp án nào đúng?
A. Lớp đại diện cho một tài khoản Account là lớp thuộc nhóm boundary
B. Lớp đại diện cho một tài khoản Account là lớp thuộc nhóm control
C. Lớp đại diện cho một tài khoản Account là lớp thuộc nhóm entity
D. Lớp đại diện cho một tài khoản Account là lớp thuộc cả nhóm control và boundary
E. Tất cả đáp án còn lại đều sai
Q14: Yếu tố nào sau đây thuộc về yêu cầu phi chức năng cần xét khi thiết kế kiến trúc? A. Xử lý nghiệp vụ
B. Tính mở rộng (scalability)
C. Chức năng tìm kiếm dữ liệu D. Chức năng gửi email
Q15: Trong thiết kế hệ thống, thuật ngữ "interface" đề cập đến gì?
A. Phần giao diện người dùng
B. Cách các thành phần hệ thống tương tác với nhau C. Một đoạn mã HTML
D. Tên gọi phần mềm giao tiếp
Q16: Một hệ thống có kiến trúc loose coupling (kết nối lỏng) có lợi điểm gì?
A. Thành phần phụ thuộc mạnh vào nhau
B. Thay đổi một thành phần không ảnh hưởng lớn đến thành phần khác
C. Tốc độ xử lý cao hơn mọi lúc
D. Phụ thuộc hoàn toàn vào hệ điều hành
Q17: Một Use Case thường mô tả điều gì?
A. Giao diện đồ họa B. Một tập hợp các đối tượng C. Một chức năng hoặc kịch bản mà hệ thống cung
cấp cho người dùng D. Một sơ đồ mạng
Q18: "Include" trong Use Case Diagram mô tả điều gì?
A. Một Use Case chính bao gồm một Use Case phụ
B. Một Use Case được thực hiện song song
C. Một Use Case độc lập D. Một Use Case thay thế
Q19: Một Use Case tốt cần đáp ứng tiêu chí nào sau đây?
A. Mô tả chi tiết mọi tình huống kỹ thuật
B. Mô tả từ góc nhìn người dùng, rõ ràng và có thể kiểm chứng
C. Chỉ liệt kê các API kỹ thuật
D. Tập trung vào giao diện người dùng
Q20: "Postconditions" trong Use Case có vai trò gì?
A. Xác định trạng thái hệ thống sau khi hoàn thành Use Case
B. Ghi nhận lỗi hệ thống C. Triển khai
chương trình thực tế D. Lưu trữ các đối tượng tạm thời
Q21: Một lớp trong thiết kế hệ thống chứa những gì?
A. Chỉ dữ liệu B. Chỉ hành vi C. Dữ liệu và hành vi D. Các bảng cơ sở dữ liệu
Q22: "High Cohesion" trong thiết kế lớp có nghĩa là gì?
A. Lớp thực hiện nhiều nhiệm vụ không liên quan
B. Lớp tập trung vào một chức năng chính
C. Lớp có rất nhiều thuộc tính
D. Lớp phụ thuộc vào nhiều lớp khác
Q23: Trong UML, mối quan hệ "Aggregation" giữa hai lớp mô tả điều gì?
A. Một lớp kế thừa lớp khác
B. Một lớp bị ràng buộc tuyệt đối với lớp khác
C. Một lớp là thành phần hợp thành của lớp khác, nhưng tồn tại độc lập
D. Một lớp điều khiển tất cả hành động của lớp kia
Q24: Tại sao nên thiết kế lớp có "High Cohesion" và "Low Coupling"?
A. Để tăng số lượng đối tượng trong hệ thống
B. Để hệ thống dễ bảo trì, dễ mở rộng
C. Để đơn giản hóa giao diện người dùng
D. Để tối ưu hóa lưu trữ dữ liệu
Q25D: Một Use Case tốt nên có đặc điểm gì?
A. Ngắn gọn, rõ ràng, tập trung vào hành vi người dùng B. Càng dài càng tốt
C. Miêu tả chi tiết giao diện
D. Tập trung vào các chi tiết kỹ thuật lOMoARcPSD| 45315597
Q26: Trong thiết kế Use Case, Extension Points là gì?
A. Các điểm kết thúc Use Case
B. Các vị trí nơi các luồng mở rộng có thể gắn vào luồng chính
C. Các điểm giao tiếp hệ thống D. Các lỗi hệ thống
Q27: Postconditions mô tả điều gì? A. Các bước trung gian
B. Các đối tượng giao diện
C. Các lỗi hệ thống tiềm ẩn
D. Trạng thái hệ thống sau khi hoàn tất Use Case
Q28: Actor có thể tương tác với bao nhiêu Use Case? A. Chỉ 1
B. Bất kỳ số lượng nào C. Tối đa 3 D. Tối đa 5
Q29: Mục tiêu chính của việc phân chia hệ thống thành các subsystem là gì?
A. Giảm thời gian kiểm thử
B. Tăng độ phức tạp hệ thống C. Dễ dàng quản lý, phát triển và bảo trì
D. Giảm chi phí phần cứng
Q30: Khi thiết kế subsystem, yếu tố nào nên được ưu tiên?
A. Kết nối chặt chẽ giữa các subsystem
B. Tách biệt tối đa các subsystem với nhau C. Tăng số lượng subsystem không giới hạn
D. Gộp toàn bộ chức năng vào một subsystem
Q31: Tại sao việc phân chia subsystem theo tính biến đổi (volatility) lại quan trọng?
A. Để dễ phát hiện lỗi
B. Để giảm khả năng mở rộng hệ thống
C. Để tăng chi phí kiểm thử
D. Để cô lập thay đổi và giảm ảnh hưởng dây chuyền
Q32: Tại sao cần hạn chế số lượng giao tiếp trực tiếp giữa các subsystem?
A. Để dễ dàng thay đổi subsystem mà không ảnh hưởng subsystem khác
B. Để tăng độ gắn kết hệ thống
C. Để giảm chi phí phần cứng D. Để tăng tốc độ lập trình
Q33: Một thuộc tính (Attribute) trong lớp biểu thị điều gì? A. Hành động của lớp
B. Dữ liệu hoặc trạng thái của đối tượng
C. Một cơ sở dữ liệu phụ
D. Một giao diện đồ họa
Q34: Trong thiết kế lớp, mối quan hệ "Aggregation" có đặc điểm gì?
A. Một lớp có thể tồn tại độc lập với lớp chứa nó
B. Sự kết hợp chặt chẽ sống/chết cùng nhau C. Hai
lớp hoàn toàn tách biệt
D. Một lớp điều khiển mọi hành vi của lớp khác
Q35: Tại sao cần áp dụng nguyên tắc "Single Responsibility" khi thiết kế lớp?
A. Để lớp dễ bảo trì và thay đổi khi yêu cầu thay đổi
B. Để lớp thực hiện nhiều chức năng cùng lúc
C. Để tăng sự phụ thuộc giữa các lớp
D. Để giảm tốc độ lập trình
Q36: Khi nào nên sử dụng Interface thay vì Abstract Class?
A. Khi cần cài đặt nhiều phương thức chung
B. Khi cần định nghĩa hành vi mà nhiều lớp khác nhau có thể thực hiện
C. Khi cần kế thừa dữ liệu
D. Khi cần giảm số lượng lớp
Q37: Mục tiêu chính của thiết kế cơ sở dữ liệu là gì?
A. Giảm thời gian lập trình
B. Bảo đảm dữ liệu được lưu trữ chính xác và truy xuất hiệu quảC. Tối ưu hóa giao diện
người dùng D. Thiết kế hệ thống mạng
Q38: với biểu đồ lớp dưới đây, đâu là phát biểu sai?
A. Một Course có thể không có Course điều kiện tiên quyết B. Một Student có thể không có Schedule nào
C. Một Professor có thể không có CourseOffering nào cả
D. Một CourseOffering có thể không có Professor đăng ký cả
E. Một Schedule có thể có từ 1 đến 2 khoá học làm khoá học bắt buộc (primary)F. Một Professor chỉ có thể dạy tối đa một Course lOMoARcPSD| 45315597 Q39:
Thành phần nào dưới đây KHÔNG phải là yếu tố của kiến trúc hệ thống?
A. Thành phần phần mềm (components)
B. Giao diện lập trình ứng dụng (API)
C. Yêu cầu phi chức năng
D. Nội dung quảng cáo sản phẩm
Q40: Người ta muốn xây dựng chức năng đăng nhập trên app mobile. Như vậy họ cần viết ra giao diện đồ hoạ
trong đó cho phép người dùng nhập username, password, nhấn nút Login hoặc nhấn nút Forgot password.
Người phát triển cần khai báo lớp đại diện cho bảng Account trong CSDL của phía server. Người phát triển
cũng cần khai báo lớp cài đặt các chức năng như: validate username và password, gửi https request đến server
(ngoài các thông tin username, password còn có các thông tin khác như DeviceID, screensize, timestamp…),
nhận dữ liệu từ server trả về, chuyển sang màn hình trang chủ nếu đăng nhập thành công, báo lỗi nếu server
không cho đăng nhập… Vậy các đáp án dưới đây thì đáp án nào đúng?
A. Lớp thực hiện xác thực dữ liệu người dùng nhập vào là lớp thuộc nhóm boundary
B. Lớp thực hiện xác thực dữ liệu người dùng nhập vào là lớp thuộc nhóm control
C. Lớp thực hiện xác thực dữ liệu người dùng nhập vào là lớp thuộc nhóm entity
D. Lớp đại diện cho giao diện đồ hoạ là lớp thuộc cả nhóm entity và boundaryE. Tất cả đáp án còn lại đều sai
ĐỀ THI GIỮA KỲ MÔN PTTKHT - KỲ 20242 NGÀY 13/06 - TC 312 LỚP 157517 IT 3120 THỜI GIAN 60 PHÚT
Q1: Theo em đâu là phát biểu đúng về mối quan hệ của giao diện ở ngôn ngữ Java: A. Các giao
diện có thể có quan hệ kế thừa (inheritance)
B. Lớp có thể kế thừa giao diện (quan hệ inheritance).
C. Lớp có thể kết tập bên trong giao diện (quan hệ aggregation).
D. Giao diện không thể kết tập bên trong lớp (quan hệ aggregation).
E. Lớp không thể cài đặt giao diện (quan hệ implement).
Q2: Trong UML, biểu đồ nào thường được dùng để mô tả hành vi động của hệ thống? A. Class Diagram B. Sequence Diagram C. Deployment Diagram D. Component Diagram E. Tất cả đều sai
Q3: Trong các loại biểu đồ UML, biểu đồ nào phù hợp nhất để mô tả cách các thành phần vật lý được phân phối trong hệ thống? A. Activity Diagram B. Class Diagram C. Deployment Diagram D. Use Case Diagram E. Tất cả đều sai
Q4: Theo em đâu là phát biểu đúng
A. Nếu hai lớp ở hai hệ thống con thì chúng không được có quan hệ phụ thuộc dạng <> lOMoARcPSD| 45315597
B. Nếu hai lớp ở hai hệ thống con thì chúng không được có quan hệ phụ thuộc dạng <>C.
Nếu hai lớp ở hai hệ thống con thì chúng không được có quan hệ phụ thuộc dạng <>
D. Nếu hai lớp ở hai hệ thống con thì chúng không được có quan hệ phụ thuộc dạng <>.
Q5: Một "tổng quát hóa" (generalization) trong UML Usecase dùng để mô tả mối quan hệ nào?
A. Tất cả các đáp án khác đều sai
B. Quan hệ kế thừa giữa lớp cha và lớp con
C. Quan hệ cộng tác giữa đối tượng
D. Quan hệ chia sẻ thuộc tính
E. Quan hệ giữa hành vi và giao diện F. Tất cả đều sai
Q6: "Composition" trong UML được đặc trưng bởi điều gì?
A. Quan hệ hợp tác lỏng lẻo
B. Quan hệ sở hữu mạnh, sống-chết cùng nhau
C. Quan hệ phản hồi tuần tự
D. Quan hệ chỉ tồn tại lúc runtime
Q7: Một lợi ích lớn của việc xây dựng mô hình nghiệp vụ là gì?
A. Giảm thời gian lập trình
B. Giảm chi phí mua phần cứng
C. Làm rõ quy trình kinh doanh và xác định điểm cải tiến D. Làm tăng kích thước cơ sở dữ liệu Q8: Trong
mô hình hóa nghiệp vụ, "actor" là gì?
A. Một đối tượng vật lý trong hệ thống B. Một lớp lập trình
C. Một bảng cơ sở dữ liệu
D. Một vai trò tương tác với quy trình nghiệp vụ
Q9: Trong một Business Use Case Diagram, mối quan hệ "include" mô tả điều gì?
A. Một hành vi bắt buộc được sử dụng chung
B. Một hành vi mở rộng tùy chọn C. Một hành vi thay thế
D. Một hành vi loại trừ
Q10: Sự khác biệt giữa "Essential Use Case" và "Concrete Use Case" là gì?
A. Concrete Use Case mang tính trừu tượng hơn
B. Essential Use Case tập trung vào bản chất, không quan tâm giao diện
C. Essential Use Case có chi tiết kỹ thuật
D. Không có sự khác biệt
Q11: Trong phân tích hệ thống, biểu đồ nào thường dùng để mô tả chức năng hệ thống? A. Deployment Diagram
B. Business Object Diagram C. Use Case Diagram D. Component Diagram E. Tất cả đều sai
Q12: Khi mô hình hóa Use Case, mối quan hệ "extend" thể hiện điều gì?
A. Một chức năng bắt buộc phải thực hiện
B. Một chức năng được thực hiện song song
C. Một chức năng thay thế
D. Một chức năng tùy chọn mở rộng cho Use Case chính
Q13: Trong thiết kế kiến trúc, mô hình nhiều lớp (multi-layered architecture) thường gồm những lớp nào?
A. Giao diện người dùng, lớp xử lý nghiệp vụ, lớp dữ liệu B. Lớp mạng, lớp ứng dụng, lớp vật lý C. Lớp
báo cáo, lớp điều khiển, lớp giao tiếp
D. Lớp lưu trữ, lớp bảo mật, lớp trình diễn Q14: Một kiến trúc
phần mềm tốt cần thỏa mãn điều kiện nào dưới đây?
A. Phức tạp để khó sao chép
B. Linh hoạt, mở rộng được và dễ bảo trì C. Càng ít lớp càng tốt
D. Phụ thuộc vào nền tảng cụ thể
E. Tất cả đều sai Q15: Hãy chọn phương án đúng: A.
Hai thông điệp đầu tiên là khách
hàngthêm hàng vào đơn hàng B.
Tất cả các đáp án còn lại đều sai C. Thông điệp thứ 4 và 5
(checkAvailablevà return done) là sự kiểm
tra tình trạng có sẵn trong kho của đơn hàng. D.
Ba thông điệp cuối cùng là kiểm tra
nếucó hàng thì cộng vào đơn hàng E. Tất cả đều sai
Q16: Một trong những mục tiêu chính khi xác định các Subsystem trong thiết kế kiến trúc là gì? lOMoARcPSD| 45315597
A. Tạo ra hệ thống nhiều lớp mạng
B. Giảm số lượng lập trình viên cần thiết
C. Tăng chi phí phát triển hệ thống D. Phân chia hệ thống thành các đơn vị quản lý dễ dàng hơn Q17: Chọn phát biểu đúng A. Lớp Cash không thể
truyềnthông điệp trực tiếp đến Person được B. Lớp Transaction không
thểtruyền thông điệp đến với Cash
C. Lớp Account có quan hệ <> với Person và
vai trò của Person là <>. D.
Lớp Transaction có quan hệ <> với Product và vai trò của Product là <> E. Tất cả đều sai
Q18: Khi mô tả Use Case, luồng chính (Main Flow) là gì?
A. Luồng xử lý tất cả các trường hợp ngoại lệ
B. Luồng các bước thực hiện bình thường thành công
C. Luồng phản hồi lỗi từ hệ thống
D. Luồng giao diện đồ họa
Q19: Actor phụ (Secondary Actor) là gì trong một Use Case?
A. Actor chính tương tác đầu tiên với hệ thống
B. Actor giám sát hệ thống
C. Actor hỗ trợ để Use Case hoàn thành
D. Actor dùng để thay thế Actor chính
Q20: Tại sao việc phân tích kỹ lưỡng các Use Case lại giúp ích cho kiểm thử phần mềm sau này?
A. Vì Use Case tạo tài liệu hướng dẫn sử dụng
B. Vì Use Case cung cấp cấu trúc cơ sở dữ liệu C. Vì
Use Case mô tả chi tiết các thuật toán
D. Vì Use Case định nghĩa các kịch bản để viết test case Q21:
Theo em phát biểu nào là đúng A. Tất cả đều đúng B.
Trong biểu đồ lớp, các
commentlà những thứ không cần phải đặt tên C. Các quan hệ association bắtbuộc phải có tên D.
Các quan hệ Tổng quát hoá
làcác quan hệ không cần có tên E. Các quan hệ Dependency
khôngcần được đặt tên
Q22: "Low Coupling" giữa các lớp trong hệ thống nhằm mục đích gì?
A. Làm hệ thống phức tạp hơn
B. Tăng khả năng tái sử dụng và bảo trì
C. Giảm hiệu suất hệ thống
D. Giảm số lượng lớp cần thiết
Q23: Trong thiết kế hệ thống, "Generalization" mô tả gì?
A. Một lớp sử dụng lớp khác
B. Một đối tượng chứa đối tượng khác
C. Một lớp kế thừa từ lớp trừu tượng D. Một quy trình nhập liệu Q24: Khi thiết kế
hệ thống, Dependency Injection hỗ trợ nguyên tắc nào? A. High Cohesion B. Tight Binding C. High Coupling D. Low Coupling
Q25: Sự khác biệt giữa Include và Extend trong Use Case là gì?
A. Include tái sử dụng, Extend thêm hành vi tùy chọn
B. Include mở rộng hành vi, Extend tái sử dụng
C. Include và Extend giống hệt nhau D. Include dành cho Actor, Extend dành cho System Q26: Actor trong
thiết kế Use Case là gì?
A. Một phần mềm hỗ trợ
B. Một vai trò tương tác với hệ thống
C. Một phần giao diện đồ họa D. Một bảng dữ liệu
Q27: Người ta muốn xây dựng chức năng đăng nhập trên app mobile. Như vậy họ cần viết ra giao diện đồ hoạ
trong đó cho phép người dùng nhập username, password, nhấn nút Login hoặc nhấn nút Forgot password.
Người phát triển cần khai báo lớp đại diện cho tài khoản Account. Người phát triển cũng cần khai báo lớp cài lOMoARcPSD| 45315597
đặt các chức năng như: validate username và password, gửi https request đến server (ngoài các thông tin
username, password còn có các thông tin khác như DeviceID, screensize, timestamp…), nhận dữ liệu từ server
trả về, chuyển sang màn hình trang chủ nếu đăng nhập thành công, báo lỗi nếu server không cho đăng nhập…
Vậy các đáp án dưới đây thì đáp án nào đúng?
A. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm xác thực dữ liệu
B. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm gửi HTTP request đến serverC.
Tất cả các đáp án còn lại đều sai
D. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm nhận dữ liệu từ server trả về
E. Tất cả các hàm ở các đáp án đều cần có trong lớp đại diện tài khoản
F. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm đổi màu nút Login nếu
ngườidùng bắt đầu nhập dữ liệu vào ô username và password
G. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm đổi màu nút Login nếu
ngườidùng bắt đầu đè tay lên nút Login
H. Người phát triển cần viết ra lớp đại diện tài khoản và trong lớp đó có hàm kiểm tra kết nối mạng của thiết
bịQ28: Người ta tổ chức sân chơi cho các bé vào tham gia chơi. Sân chơi (Playground) có nhiều phòng
chơi (Room), mỗi phòng chơi chỉ có chứa tối đa 5 trẻ (Child). Các trẻ sau khi vào mua vé (Ticket) vào được
phép chọn lựa các phòng chơi nhất định. Nếu muốn chơi nhiều hơn số lượng phòng chơi đã xác định thì
bố mẹ của bé (hoặc người giám hộ) phải trả thêm tiền. Hiện nay mỗi trẻ sau khi mua vé vào thì được phép chơi tối đa 7 phòng.
Hãy xác định phát biểu nào đúng về liên kết giữa các đối tượng như sau:
A. Mỗi đối tượng Room có liên kết đến một vài đối tượng Playground
B. Mỗi đối tượng Room có liên kết đến tối đa 2 đối tượng Ticket
C. Mỗi đối tượng Playground có liên kết đến tối đa 7 đối tượng Room
D. Mỗi đối tượng Room có liên kết đến tối đa 5 đối tượng Child.
Q29: Trong UML, subsystem thường được biểu diễn dưới dạng gì? A. Một package B.Một class C. Một node D. Một actor E. Tất cả đều sai
Q30: Giao diện (interface) của subsystem nên được thiết kế như thế nào?
A. Càng nhiều phương thức càng tốt B. Càng đơn giản, rõ ràng càng tốt C. Ẩn toàn bộ chức năng
D. Không cần thiết kế giao diện subsystem
Q31: Khi subsystem có mức kết dính nội bộ cao (high cohesion) thì điều gì xảy ra?
A. Subsystem khó bảo trì hơn
B. Subsystem cần nhiều giao tiếp mạng
C. Subsystem dễ hiểu, dễ bảo trì và dễ mở rộng
D. Subsystem cần nhiều Actor hơn Q32:
Subsystem nên được phân chia dựa trên điều gì?
A. Theo các module giao diện người dùng
B. Theo vị trí địa lý hoặc theo thời điểm bắt đầu cài đặt C. Theo nhóm phát triển
D. Theo các chức năng nghiệp vụ chính Q33:
Hãy chọn đáp án đúng khi biểu
diễn trên biểu đồ cộng tác: A. Co_op và Company có
thểcó mối quan hệ phụ thuộc dạng <>. B. Section và
CourseSchedulecó mối quan hệ phụ thuộc dạng <> C. Student có mối quan hệ
phụthuộc dạng <> đến chính nó D. CourseSchedule và
Co_opcó mối quan hệ phụ thuộc dạng <> E. Tất cả đều sai
Q34: Sự khác biệt giữa Aggregation và Composition là gì? A. Không có khác biệt
B. Aggregation có quan hệ yếu hơn Composition
C. Aggregation yêu cầu cùng tồn tại D. Composition cho phép các đối tượng độc lập Q35: “Dependency
Inversion Principle" (DIP) khuyến khích điều gì trong thiết kế lớp?
A. Lớp cấp thấp phụ thuộc vào lớp cấp cao
B. Các lớp phụ thuộc trực tiếp vào nhau lOMoARcPSD| 45315597
C. Lớp cấp cao và lớp cấp thấp phụ thuộc vào abstraction
D. Các lớp cấp thấp điều khiển toàn bộ chương trình
E. Tất cả đều sai Q36: Nguyên lý
"Liskov Substitution Principle" (LSP) yêu cầu gì?
A. Một lớp cha phải kế thừa lớp con B. Tất cả đều sai
C. Một lớp con không cần thực hiện đầy đủ các hành vi của lớp cha
D. Một lớp con có thể thay đổi hành vi lớp cha một cách tự do
E. Một lớp con có thể thay thế lớp cha mà không làm thay đổi hành vi mong đợi của chương trìnhQ37: Trong
mô hình quan hệ, dữ liệu được tổ chức dưới dạng nào? A. Bảng (Tables) B. Đồ thị C. Cây D. Dòng mã lệnh E. Tất cả đều sai
Q38: Khi thiết kế cơ sở dữ liệu, điều nào sau đây cần được xác định đầu tiên? A. Giao diện người dùng
B. Các bảng dữ liệu và mối quan hệ giữa chúng
C. Các quy tắc lập trình D. Thiết kế báo cáo
Q39: Kỹ thuật "Indexing" trong cơ sở dữ liệu có tác dụng gì?
A. Làm chậm quá trình tìm kiếm
B. Tăng kích thước file dữ liệu
C. Tăng tốc độ truy vấn dữ liệu
D. Xóa dữ liệu dư thừa
Q40: Một nhân viên của công ty an ninh được phân loại là bảo vệ hoặc vệ sĩ. Nếu là bảo vệ thì họ chỉ được
trông các nhà hàng, khách sạn, nhà kho. Mỗi địa điểm trên có từ 7 đến 12 người bảo vệ. Các vệ sĩ chỉ đi trông
các yếu nhân. Mỗi yếu nhân cần có từ 3 đến 9 người vệ sĩ. Mọi nhóm bảo vệ và vệ sĩ đều có trưởng nhóm
bảo vệ và trưởng nhóm vệ sĩ. Người ta xây dựng phần mềm xét thưởng cuối năm và các trưởng nhóm sẽ có
mức thưởng lớn hơn nhân viên bình thường; nếu cùng làm tốt công việc thì trưởng nhóm vệ sĩ sẽ được thưởng cao hơn.
Hãy xác định phát biểu nào đúng nhất về thiết kế của các lớp đại diện cho các đối tượng
A. Lớp bảo vệ có kế thừa lớp vệ sĩ
B. Lớp trưởng nhóm vệ sĩ có kế thừa lớp bảo vệ
C. Lớp bảo vệ và lớp trưởng nhóm vệ sĩ sẽ cùng cài đặt chung một giao diện. Lớp vệ sĩ và lớp trưởng
nhómbảo vệ sẽ cài đặt chung một giao diện khác
D. Lớp trưởng nhóm kế thừa lớp nhân viên và trưởng nhóm bảo vệ sẽ cài đặt chung giao diện với lớp bảo vệ. E. Tất cả đều sai
ĐỀ THI GIỮA KỲ MÔN PTTKHT - KỲ 20242 NGÀY 13/06 - TC 312 LỚP 157517 IT 3120 THỜI GIAN 60 PHÚT Q1 Chọn câu trả lời sai
A. Ghế ngồi có đặc trưng về việc dànhcho loại thương gia.
B. Có hai loại số hiệu chuyến bay
C. Một loại máy bay có thể được gánnhiều số hiệu
D. Trên máy bay có thể không có ghếngồi nào
E. Mỗi số hiệu chuyến bay chỉ có
nhiềunhất là thuộc về một loại máy bay F. Tất cả đều sai
G. Từ A đến E không có câu trả lời nào sai
Q2: Khác biệt chính giữa phân tích hệ thống và thiết kế hệ thống là gì?
A. Phân tích lập trình hệ thống, thiết kế kiểm thử
B. Phân tích xác định yêu cầu, thiết kế xác định giải pháp C. A và B đúng
D. Phân tích cài đặt phần mềm, thiết kế bảo trì hệ thống E. D và F đúng
F. Phân tích tạo giao diện người dùng, thiết kế viết tài liệu hướng dẫn G. Tất cả đều sai
Q3: Khi thiết kế hệ thống, đâu là mục tiêu chính cần đạt được?
A. Mô hình hóa hệ thống dưới dạng tài liệu hướng dẫn sử dụng
B. Mô hình hóa hệ thống để trình diễn marketing lOMoARcPSD| 45315597
C. Mô hình hóa hệ thống đủ chi tiết để chuyển sang lập trình D. A và C đúng
E. Mô hình hóa hệ thống để kiểm tra tính hợp lệ của yêu cầu khách hàng F. Tất cả đều sai
Q4: Đặc trưng chính của mô hình hóa hướng đối tượng là gì?
A. Chỉ tập trung vào dữ liệu
B. Tập trung vào cơ sở dữ liệu C. A và B đúng
D. Tập trung vào giao diện người dùng E. Tập trung vào các đối tượng và mối quan hệ giữa chúng Q5:
Một lớp được mô tả là tập các đối tượng chia xẻ cùng các:
A. Attributes, operations and relationships (mối quan hệ) B. A và C đúng
C. Identity(đặc tính), behaviour and state (trạng thái) D. C và E đúng
E. Attributes (thuộc tính), behaviour (hành vi) and operations (hành động) F. E và G đúng
G. Relationships, operations and multiplicity (bản số) H. Tất cả đều sai
Q6: Mô hình hóa hướng đối tượng ưu tiên quản lý những gì?
A. Quản lý dữ liệu trong cơ sở dữ liệu
B. Quản lý hành vi và trạng thái của đối tượng
C. Quản lý hệ thống mạng
D. Quản lý báo cáo người dùng
Q7: Biểu đồ nào dùng phổ biến trong mô hình hóa nghiệp vụ? A. Class Diagram B. Sequence Diagram C. Business Use Case Diagram D. Deployment Diagram E. Tất cả đều sai
Q8: Business Use Case và System Use Case khác nhau chủ yếu ở đâu? A. Loại actor tương tác
B. Loại biểu đồ sử dụng C. Ngôn ngữ lập trình D. Phạm vi mô tả E. Tất cả đều sai
Q9: Một Use Case bao gồm những thành phần chính nào?
A. Tên, tác nhân liên quan, luồng sự kiện
B. Mã nguồn chương trình C. Sơ đồ kiến trúc
mạng D. Các thiết bị phần cứng liên quan
Q10: Khi mô hình hóa quy trình nghiệp vụ, một "Business Worker" là gì?
A. Một tác nhân ngoài hệ thống B. Một vai trò chịu trách nhiệm thực hiện một phần quy trình nghiệp vụ
C. Một yêu cầu khách hàng
D. Một thiết bị máy tính hỗ trợ xử lý nghiệp vụ
Q11: Khi phân tích hệ thống, mục đích chính của mô hình hóa các lớp phân tích (Analysis Classes) là gì?
A. Tối ưu hóa cơ sở dữ liệu
B. Tạo khuôn mẫu thiết kế phần mềm
C. Gắn kết chức năng với các đối tượng
D. Triển khai hệ thống thực tế
Q12: Trong quá trình phân tích, việc sử dụng mô hình phân tích hướng đối tượng chủ yếu nhằm:
A. Xác định cơ sở dữ liệu
B. Đảm bảo tốc độ hệ thống
C. Tạo sơ đồ vật lý hệ thống
D. Xây dựng mô hình hệ thống dễ hiểu, dễ thiết kế
Q13: Cụm từ tốt nhất để biểu diễn mới quan hệ tổng quát hoá là : A. "Is a kind of". B. "Is a part of" C. "Is a replica of" D. "Is composed of" E. Tất cả đều sai
Q14: Mô hình MVC (Model-View-Controller) là một ví dụ cho loại kiến trúc nào?
A. Kiến trúc client-server
B. Kiến trúc tầng (Layered Architecture) C. Kiến trúc phân tán
D. Kiến trúc dữ liệu tập trung
Q15: Lớp Business Logic (lớp xử lý nghiệp vụ) trong kiến trúc nhiều lớp thường chịu trách nhiệm gì? A. Hiển thị giao diện B. Lưu trữ dữ liệu
C. Thực hiện xử lý nghiệp vụ cốt lõi
D. Quản lý quyền truy cập E. Tất cả đều sai
Q16: Khi thiết kế kiến trúc phần mềm, quyết định về việc phân phối (deployment) hệ thống ảnh hưởng trực tiếp đến: A. Chức năng hệ thống
B. Phương pháp lập trình
C. Độ phức tạp của giao diện người dùng
D. Tính khả dụng (availability) và hiệu suất (performance) Q17: Trong
biểu đồ Use Case, đường nối giữa Actor và Use Case biểu thị điều gì?
A. Mối quan hệ giao tiếp (communication)
B. Thực hiện (realization) C. Kế thừa D. Giao diện người dùng E. Tất cả đều sai
Q18: Khi phân tích hệ thống, một lý do chính để tạo biểu đồ Use Case là gì?
A. Xác định sơ đồ mạng vật lý
B. Giúp định nghĩa và xác định phạm vi hệ thống
C. Lập trình thử nghiệm hệ thống
D. Triển khai các giao thức bảo mật E. Tất cả đều sai
Q19: Khi xác định Use Case, hành động nào nên được ưu tiên?
A. Tập trung vào giải pháp kỹ thuật
B. Tập trung vào tối ưu hóa mã nguồn
C. Tập trung vào nhu cầu và mục tiêu của người dùng
D. Tập trung vào bảo mật hệ thống
Q20: Khi một hệ thống lớn có rất nhiều Use Case, kỹ thuật nào thường được dùng để quản lý tốt hơn?
A. Tăng mức chi tiết mô tả cho từng Use Case để tránh thiếu sót
B. Sử dụng mô hình phân lớp (layered model) để tách biệt các chức năng
C. Liên kết trực tiếp Use Case với các giao diện người dùng để dễ theo dõi lOMoARcPSD| 45315597
D. Gom nhóm các Use Case theo mục tiêu nghiệp vụ vào các Subsystem hoặc PackagesQ21: Trong UML, lớp trừu tượng
(abstract class) thường được sử dụng để làm gì?
A. Mô tả hành vi chung cho các lớp con nhưng không định nghĩa chi tiết nội dung của các hành vi đó
B. Khởi tạo đối tượng trực tiếp trong hệ thống
C. Cấu trúc dữ liệu được tối ưu để thực hiện truy vấn nhanh hơn
D. Liên kết trực tiếp với lớp giao diện để tăng khả năng tái sử dụng
Q22: Khi thiết kế hệ thống, mối quan hệ giữa các lớp nên được thiết kế như thế nào? A. Càng nhiều càng tốt
B. Tối giản và chỉ khi cần thiết
C. Bất kỳ lớp nào cũng liên kết với bất kỳ lớp nào
D. Mỗi lớp chỉ có một liên kết duy nhất Q23: Sự
khác biệt giữa "Composition" và "Aggregation" là gì?
A. Composition là mối quan hệ lỏng, Aggregation là mối quan hệ chặt
B. Aggregation đòi hỏi sự sống còn của đối tượng phụ
C. Composition yêu cầu đối tượng thành phần phải sống cùng đối tượng cha
D. Không có sự khác biệt E. Tất cả đều
Q24: Một thiết kế hệ thống hướng đối tượng hiệu quả cần ưu tiên điều nào sau đây?
A. Mã nguồn khó đọc để tăng bảo mật
B. Các lớp đa chức năng để giảm số lượng lớp
C. Giao diện càng nhiều phương thức càng tốt, để giảm số lượng giao diện khai báo
D. Các lớp đơn nhiệm, dễ hiểu, và dễ kiểm thử E. Tất cả đều sai
Q25: Biểu đồ nào giúp hiển thị các khía cạnh Động liên quan đến một hệ thống? A. Biểu đồ trình tự B. Biểu đồ lớp C. A và B D. E và F E. Biểu đồ triển khai
F. Biểu đồ trường hợp sử dụng G. Tất cả đều sai
Q26: Một lợi ích của việc thiết kế Use Case chi tiết là gì?
A. Tăng số lượng lớp cần thiết
B. Cung cấp cơ sở vững chắc cho việc kiểm thử hệ thống
C. Làm tăng độ phức tạp hệ thống
D. Hạn chế sáng tạo trong lập trình Q27: Tại
sao cần phải xác định rõ các Alternative Flow trong Use Case?
A. Để đơn giản hóa hệ thống
B. Để giảm số lượng Actor
C. Để xử lý các trường hợp ngoại lệ và tình huống bất thường
D. Để mô tả cơ sở dữ liệu Q28: Khi
mô hình hóa Use Case, nên tránh điều gì sau đây?
A. Mô tả rõ ràng mục tiêu người dùng B. Phân biệt rõ luồng chính và luồng thay thế C. Xác định rõ các Actor
D. Viết Use Case như một hướng dẫn lập trình
Q29: Mục nào dưới đây không là mục tiêu của UML:
A. Coding. B. Visualizing C. A và B D. E và F E. Specifying F. Documenting G. C và D E. Tất cả đều sai
Q30: Mối quan hệ giữa các subsystem nên được kiểm soát như thế nào?
A. Tự do tạo liên kết trực tiếp B. Kiểm soát chặt chẽ, chỉ thông qua giao diện đã định nghĩa C. Tất cả
subsystem đều kế thừa lẫn nhau D. Không cần kiểm soát
Q31: "Facade Pattern" thường được sử dụng trong thiết kế subsystem nhằm mục đích gì?
A. Tăng số lượng lớp cần thiết
B. Tăng kết nối giữa các subsystem
C. Ẩn đi sự phức tạp bên trong subsystem và cung cấp giao diện đơn giản ra bên ngoài
D. Tối ưu hóa lưu trữ dữ liệu E. Tất cả đều sai
Q32: Việc tách subsystem giúp ích gì cho kiểm thử hệ thống?
A. Giảm khả năng phát hiện lỗi
B. Tăng chi phí kiểm thử
C. Làm cho kiểm thử phức tạp hơn
D. Giúp dễ kiểm thử độc lập từng phần E. Tất cả đều sai
Q33: Khi thiết kế lớp, nguyên lý "Encapsulation" (đóng gói) có ý nghĩa gì?
A. Ẩn dữ liệu nội bộ và chỉ cho phép truy cập thông qua phương thức
B. Công khai toàn bộ dữ liệu
C. Tăng tốc độ chương trình
D. Giảm chi phí phát triển
E. Che giấu các thuộc tính nguy hiểm F. A và C đúng G. D và A đúng H. Tất cả đều sai lOMoARcPSD| 45315597
Q34: Hãy chọn ra câu trả lời đúng
A. Có hai nhóm đối tượng của lớp
cụ thể User và Student tham gia làm bài kiểm tra B.
Mỗi câu hỏi được đảm nhận bởichỉ một Instructor. C.
Biểu đồ đã quy định Người
quảnlý khoá học và người dạy lớp
học bắt buộc phải là một D.
Một thể hiện của Answer có
thểđược tạo ra (trả lời) bởi nhiều Student khác nhau
Q35: Khi một lớp có mức độ Cohesion thấp, điều gì thường xảy ra?
A. Lớp dễ hiểu và dễ bảo trì
B. Lớp tối ưu hóa hiệu suất
C. Lớp có nhiều nhiệm vụ không liên quan, khó hiểu và khó bảo trì
D. Lớp dễ kiểm thử hơn E. Đáp án khác Q36:
Thiết kế lớp theo "Open/Closed Principle" nghĩa là gì?
A. Lớp phải luôn mở cho việc thay đổi trực tiếp
B. Lớp chỉ hoạt động với dữ liệu tĩnh
C. Lớp luôn được đóng hoàn toàn
D. Lớp nên mở để mở rộng nhưng đóng cho việc sửa đổi trực tiếp E. Tất cả
đều sai F. A và B đều đúng
Q37: Tính đa hình có thể được mô tả như là:
A. Che dấu nhiều cài đặt khác nhau dựa trên cùng một giao diện. B. C và E đúng
C. Các thuộc tính và phương thức khác nhau của các lớp con có cùng lớp cha D. Tất cả đều sai
E. Các lớp kết hợp (association class) vời ràng buộc {or} F. E và G đúng
G. Sự tổng quát hoá (Generalization) các lớp con thừa kế
H. Một lớp có thể có nhiều lớp cha
Q38: Sự kết hợp giữa tên của một thao tác (operation) và các tham số (parameter) của nó được xem là _____________ của thao tác đó. A. Arguments B. Signature. C. Responsibilities D. Attributes E. Đáp án khác
Q39: Trong các đối tượng sau đây, đối tượng nào chỉ gửi thông điệp đến các đối tượng cùng loại với nó: A. Đối tượng biên
B. Đối tượng điều khiển
C. Đối tượng thực thể. D. Tất cả đều sai E. A và B
F. Tất cả ba loại đối tượng đều chỉ gửi thông điệp đến đối tượng cùng loại với nó
G. Tất cả ba loại đối tượng đều có thể gửi thông điệp đến các đối tượng khác loại với nó
Q40: Một cách tiếp cận để tách một hệ thống thành các hệ thống con gọi là A. Thiết kế hệ thống B. Lập trình C. Quản lý dữ liệu D. Phân rã chức năng E. Tất cả đều sai