Đề 9 - Đề thi, câu hỏi trắc nghiệm online Phân tích và thiết kế hệ thống thông tin
1. Trong thiết kế giao diện người dùng (UI), `khả năng sử dụng` (usability) đề cập đến điều gì?
A. Tính thẩm mỹ của giao diện.
B. Khả năng giao diện chạy trên nhiều nền tảng khác nhau.
C. Mức độ dễ dàng, hiệu quả và thỏa mãn khi người dùng sử dụng giao diện để đạt được mục tiêu.
D. Tính bảo mật của giao diện.
2. Trong quá trình phát triển phần mềm, `technical debt` (nợ kỹ thuật) là gì?
A. Số tiền mà dự án nợ các nhà cung cấp.
B. Các quyết định thiết kế hoặc mã hóa được thực hiện một cách vội vàng để đáp ứng thời hạn, dẫn đến các vấn đề tiềm ẩn trong tương lai.
C. Số lượng lỗi còn tồn tại trong phần mềm.
D. Chi phí bảo trì phần mềm.
3. Trong phân tích hệ thống, sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) được sử dụng để mô tả điều gì?
A. Cấu trúc dữ liệu của hệ thống.
B. Luồng di chuyển của dữ liệu giữa các tiến trình, kho dữ liệu và các tác nhân bên ngoài.
C. Trình tự các bước thực hiện một chức năng.
D. Mối quan hệ giữa các lớp đối tượng.
4. Trong phân tích hệ thống hướng đối tượng, biểu đồ lớp (class diagram) thể hiện điều gì?
A. Luồng dữ liệu giữa các tiến trình.
B. Cấu trúc tĩnh của hệ thống, bao gồm các lớp, thuộc tính và mối quan hệ giữa chúng.
C. Trình tự tương tác giữa các đối tượng theo thời gian.
D. Hành vi của hệ thống khi đáp ứng các sự kiện bên ngoài.
5. Trong thiết kế hướng đối tượng, nguyên tắc `Single Responsibility Principle` (SRP) nói về điều gì?
A. Mỗi lớp chỉ nên có một trách nhiệm duy nhất.
B. Các lớp nên được thiết kế để dễ dàng tái sử dụng.
C. Các lớp nên được thiết kế để dễ dàng mở rộng.
D. Các lớp nên được thiết kế để có hiệu suất cao.
6. Mục tiêu chính của việc phân tích yêu cầu (requirements analysis) là gì?
A. Viết mã nguồn cho hệ thống.
B. Xác định và mô tả chi tiết các chức năng, tính năng và ràng buộc mà hệ thống cần đáp ứng.
C. Thiết kế giao diện người dùng.
D. Kiểm thử phần mềm.
7. Điều gì KHÔNG phải là một đặc điểm của kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA)?
A. Các dịch vụ có tính liên kết chặt chẽ.
B. Các dịch vụ có khả năng tái sử dụng.
C. Các dịch vụ có giao diện được định nghĩa rõ ràng.
D. Các dịch vụ có tính độc lập.
8. Trong ngữ cảnh thiết kế cơ sở dữ liệu quan hệ, `chuẩn hóa` (normalization) nhằm mục đích gì?
A. Tăng tốc độ truy vấn dữ liệu.
B. Giảm thiểu dư thừa dữ liệu và cải thiện tính nhất quán của dữ liệu.
C. Mã hóa dữ liệu để bảo mật.
D. Tạo bản sao lưu dữ liệu.
9. Đâu là một lợi ích của việc sử dụng `microservices architecture`?
A. Triển khai và mở rộng quy mô dễ dàng hơn cho từng dịch vụ riêng lẻ.
B. Giảm độ phức tạp của hệ thống.
C. Dễ dàng quản lý cơ sở dữ liệu tập trung.
D. Giảm chi phí phát triển.
10. Trong quản lý dự án phần mềm, WBS (Work Breakdown Structure) dùng để làm gì?
A. Theo dõi tiến độ dự án.
B. Phân chia dự án thành các công việc nhỏ hơn, dễ quản lý hơn.
C. Ước tính chi phí dự án.
D. Quản lý rủi ro dự án.
11. Trong ngữ cảnh của DevOps, `Continuous Integration` (CI) là gì?
A. Một phương pháp quản lý dự án.
B. Một quy trình tự động hóa việc tích hợp mã nguồn từ nhiều nhà phát triển vào một kho lưu trữ chung một cách thường xuyên.
C. Một công cụ để kiểm thử phần mềm.
D. Một phương pháp triển khai phần mềm.
12. Trong kiến trúc phần mềm, `design pattern` (mẫu thiết kế) là gì?
A. Một lỗi phổ biến trong thiết kế.
B. Một giải pháp đã được chứng minh cho một vấn đề thiết kế thường gặp.
C. Một công cụ để tạo tài liệu thiết kế.
D. Một phong cách lập trình cụ thể.
13. Đâu là một lợi ích của việc sử dụng kiến trúc hướng sự kiện (Event-Driven Architecture)?
A. Giảm độ phức tạp của hệ thống.
B. Tăng tính linh hoạt và khả năng mở rộng của hệ thống bằng cách cho phép các thành phần giao tiếp một cách lỏng lẻo thông qua các sự kiện.
C. Dễ dàng quản lý cơ sở dữ liệu tập trung.
D. Giảm chi phí phát triển.
14. Use case diagram được sử dụng để mô tả điều gì trong phân tích hệ thống?
A. Cấu trúc dữ liệu của hệ thống.
B. Các tương tác giữa người dùng (actors) và hệ thống để thực hiện các mục tiêu cụ thể.
C. Luồng điều khiển giữa các module phần mềm.
D. Thiết kế giao diện người dùng.
15. Sự khác biệt chính giữa `validation` và `verification` trong kiểm thử phần mềm là gì?
A. Validation kiểm tra xem phần mềm có hoạt động đúng cách, verification kiểm tra xem phần mềm có đáp ứng yêu cầu của người dùng.
B. Validation kiểm tra xem phần mềm có đáp ứng yêu cầu của người dùng, verification kiểm tra xem phần mềm có hoạt động đúng cách.
C. Validation là kiểm thử tự động, verification là kiểm thử thủ công.
D. Validation được thực hiện bởi nhà phát triển, verification được thực hiện bởi người kiểm thử.
16. Khi nào thì mô hình Prototype thích hợp để sử dụng?
A. Khi yêu cầu của người dùng đã được xác định rõ ràng.
B. Khi dự án có nguồn lực hạn chế.
C. Khi người dùng khó diễn đạt yêu cầu của mình một cách rõ ràng và cần một bản mẫu để hình dung.
D. Khi dự án có rủi ro thấp.
17. Sự khác biệt chính giữa mô hình thác nước (waterfall model) và mô hình xoắn ốc (spiral model) là gì?
A. Mô hình thác nước không có giai đoạn kiểm thử.
B. Mô hình xoắn ốc tập trung vào quản lý rủi ro và cho phép lặp lại các giai đoạn.
C. Mô hình thác nước phù hợp với các dự án lớn và phức tạp hơn.
D. Mô hình xoắn ốc không yêu cầu tài liệu.
18. Trong quản lý rủi ro dự án phần mềm, điều gì sau đây KHÔNG phải là một chiến lược ứng phó với rủi ro?
A. Tránh rủi ro (Risk Avoidance).
B. Chuyển giao rủi ro (Risk Transference).
C. Giảm thiểu rủi ro (Risk Mitigation).
D. Bỏ qua rủi ro (Risk Ignoring).
19. Trong mô hình Agile, `sprint` là gì?
A. Một cuộc họp hàng ngày để theo dõi tiến độ.
B. Một giai đoạn phát triển ngắn, thường kéo dài từ 1 đến 4 tuần, trong đó một số lượng công việc cụ thể được hoàn thành.
C. Một công cụ để quản lý dự án.
D. Một phương pháp kiểm thử phần mềm.
20. Mục tiêu của việc `refactoring` (tái cấu trúc) mã nguồn là gì?
A. Thêm chức năng mới vào phần mềm.
B. Sửa lỗi trong mã nguồn.
C. Cải thiện cấu trúc và khả năng đọc hiểu của mã nguồn mà không thay đổi chức năng bên ngoài.
D. Tối ưu hóa hiệu suất của phần mềm.
21. Vai trò của `system analyst` (chuyên viên phân tích hệ thống) là gì?
A. Viết mã nguồn cho hệ thống.
B. Quản lý dự án phát triển phần mềm.
C. Phân tích yêu cầu của người dùng, thiết kế hệ thống và làm cầu nối giữa người dùng và nhà phát triển.
D. Kiểm thử phần mềm.
22. Mục đích của việc sử dụng `version control system` (hệ thống quản lý phiên bản) là gì?
A. Tăng tốc độ biên dịch mã nguồn.
B. Quản lý và theo dõi các thay đổi của mã nguồn theo thời gian, cho phép phục hồi các phiên bản trước đó.
C. Tự động tạo tài liệu kỹ thuật.
D. Tối ưu hóa cơ sở dữ liệu.
23. Trong thiết kế cơ sở dữ liệu, `index` (chỉ mục) được sử dụng để làm gì?
A. Mã hóa dữ liệu.
B. Tăng tốc độ truy vấn dữ liệu bằng cách tạo ra một cấu trúc dữ liệu cho phép tìm kiếm nhanh chóng.
C. Đảm bảo tính toàn vẹn dữ liệu.
D. Giảm dung lượng lưu trữ dữ liệu.
24. Mục tiêu chính của giai đoạn `Thiết kế kiến trúc` trong quy trình phát triển phần mềm là gì?
A. Xác định yêu cầu chi tiết của người dùng.
B. Xây dựng cơ sở dữ liệu.
C. Định nghĩa cấu trúc tổng thể của hệ thống, bao gồm các thành phần chính và cách chúng tương tác với nhau.
D. Viết mã nguồn cho các chức năng của hệ thống.
25. Đâu là lợi ích chính của việc sử dụng mô hình Agile trong phát triển phần mềm?
A. Giảm chi phí phát triển.
B. Tăng tính linh hoạt và khả năng thích ứng với thay đổi yêu cầu.
C. Đảm bảo tài liệu đầy đủ và chi tiết.
D. Loại bỏ hoàn toàn rủi ro dự án.
26. Kiểm thử hộp đen (black box testing) tập trung vào điều gì?
A. Kiểm tra cấu trúc bên trong của mã nguồn.
B. Kiểm tra hành vi của phần mềm dựa trên đặc tả yêu cầu, không cần biết cấu trúc bên trong.
C. Kiểm tra hiệu suất của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm.
27. Trong thiết kế giao diện người dùng (UI), `affordance` đề cập đến điều gì?
A. Tính thẩm mỹ của giao diện.
B. Khả năng giao diện thích ứng với các kích thước màn hình khác nhau.
C. Các gợi ý trực quan về cách một đối tượng có thể được sử dụng.
D. Tính bảo mật của giao diện.
28. Đâu là một thách thức chính khi áp dụng kiến trúc Microservices?
A. Giảm chi phí cơ sở hạ tầng.
B. Quản lý sự phức tạp của hệ thống phân tán và đảm bảo tính nhất quán dữ liệu.
C. Dễ dàng triển khai và quản lý hơn so với kiến trúc monolithic.
D. Đảm bảo tính bảo mật tốt hơn.
29. Trong kiểm thử phần mềm, `regression testing` (kiểm thử hồi quy) là gì?
A. Kiểm tra các chức năng mới được thêm vào phần mềm.
B. Kiểm tra xem các thay đổi hoặc sửa lỗi gần đây có gây ra lỗi mới trong các phần khác của phần mềm hay không.
C. Kiểm tra hiệu suất của phần mềm.
D. Kiểm tra tính bảo mật của phần mềm.
30. Trong kiểm thử phần mềm, `acceptance testing` (kiểm thử chấp nhận) được thực hiện bởi ai?
A. Nhà phát triển.
B. Người kiểm thử (tester).
C. Người dùng cuối hoặc khách hàng.
D. Quản lý dự án.