Đề 5 - Đề 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 bảo mật hệ thống, `principle of least privilege` là gì?
A. Cung cấp cho tất cả người dùng quyền truy cập đầy đủ vào hệ thống.
B. Cung cấp cho người dùng quyền truy cập tối thiểu cần thiết để thực hiện công việc của họ.
C. Không cung cấp quyền truy cập cho bất kỳ ai.
D. Cung cấp quyền truy cập ngẫu nhiên cho người dùng.
2. Trong quy trình phát triển phần mềm, `refactoring` là gì?
A. Viết mã mới từ đầu.
B. Thay đổi cấu trúc mã mà không thay đổi chức năng bên ngoài.
C. Kiểm tra lỗi trong mã.
D. Tối ưu hóa hiệu suất của phần mềm.
3. Phương pháp nào sau đây thường được sử dụng để thu thập yêu cầu từ người dùng?
A. Phân tích cú pháp.
B. Kiểm thử hộp đen.
C. Phỏng vấn và khảo sát.
D. Tối ưu hóa truy vấn.
4. Điều gì là quan trọng nhất trong việc quản lý rủi ro dự án?
A. Bỏ qua các rủi ro nhỏ.
B. Xác định, đánh giá và giảm thiểu rủi ro.
C. Chuyển tất cả rủi ro cho khách hàng.
D. Giấu các rủi ro khỏi các bên liên quan.
5. Trong thiết kế cơ sở dữ liệu, normalization là gì?
A. Quá trình tạo bản sao dữ liệu.
B. Quá trình tổ chức dữ liệu để giảm thiểu sự dư thừa và phụ thuộc dữ liệu.
C. Quá trình mã hóa dữ liệu.
D. Quá trình nén dữ liệu.
6. Trong ngữ cảnh thiết kế giao diện người dùng (UI), `affordance` có nghĩa là gì?
A. Tính thẩm mỹ của giao diện.
B. Khả năng của một đối tượng giao diện gợi ý cách sử dụng nó.
C. Hiệu suất của giao diện.
D. Khả năng tùy biến của giao diện.
7. Trong kiến trúc phần mềm, `separation of concerns` (SoC) là gì?
A. Việc chia nhỏ dự án thành các phần nhỏ hơn.
B. Việc phân chia trách nhiệm giữa các module hoặc lớp để mỗi phần chỉ giải quyết một vấn đề cụ thể.
C. Việc sử dụng nhiều ngôn ngữ lập trình khác nhau.
D. Việc phân chia công việc cho các thành viên trong nhóm.
8. Mục tiêu của việc tạo prototype trong giai đoạn phân tích yêu cầu là gì?
A. Để tạo ra sản phẩm cuối cùng.
B. Để kiểm tra hiệu suất của hệ thống.
C. Để thu thập phản hồi từ người dùng và làm rõ yêu cầu.
D. Để tối ưu hóa mã nguồn.
9. Điều gì là quan trọng nhất trong việc thiết kế một giao diện người dùng (UI) tốt?
A. Sử dụng nhiều màu sắc.
B. Đảm bảo tính thẩm mỹ cao.
C. Tập trung vào tính dễ sử dụng và hiệu quả.
D. Sử dụng công nghệ mới nhất.
10. Trong thiết kế hệ thống 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. Mỗi lớp nên có nhiều trách nhiệm để tăng tính linh hoạt.
C. Tất cả các lớp nên kế thừa từ một lớp cha duy nhất.
D. Các đối tượng nên tương tác trực tiếp với nhau.
11. Trong mô hình Scrum, `sprint review` được thực hiện để làm gì?
A. Để lập kế hoạch cho sprint tiếp theo.
B. Để đánh giá hiệu suất của các thành viên trong nhóm.
C. Để trình bày sản phẩm đã hoàn thành trong sprint cho các bên liên quan và thu thập phản hồi.
D. Để giải quyết các xung đột trong nhóm.
12. Kiến trúc client-server là gì?
A. Một kiến trúc trong đó tất cả các thành phần đều nằm trên cùng một máy.
B. Một kiến trúc trong đó một máy chủ cung cấp dịch vụ cho nhiều máy khách.
C. Một kiến trúc trong đó các máy khách cung cấp dịch vụ cho máy chủ.
D. Một kiến trúc mạng ngang hàng.
13. Trong ngữ cảnh phân tích và thiết kế hệ thống, `technical debt` (nợ kỹ thuật) là gì?
A. Chi phí bảo trì hệ thống.
B. Số lượng lỗi chưa được sửa.
C. Hậu quả của việc đưa ra các quyết định thiết kế không tối ưu trong ngắn hạn, dẫn đến khó khăn trong bảo trì và phát triển trong tương lai.
D. Số lượng dòng code trong hệ thống.
14. Trong thiết kế hệ thống, `scalability` (khả năng mở rộng) đề cập đến điều gì?
A. Khả năng hệ thống chạy trên nhiều nền tảng khác nhau.
B. Khả năng hệ thống xử lý lượng công việc tăng lên mà không làm giảm hiệu suất.
C. Khả năng hệ thống dễ dàng thay đổi code.
D. Khả năng hệ thống bảo vệ dữ liệu.
15. Trong phân tích hệ thống, mô hình hóa dữ liệu tập trung vào điều gì?
A. Xác định các quy trình nghiệp vụ.
B. Mô tả cấu trúc và mối quan hệ của dữ liệu.
C. Thiết kế giao diện người dùng.
D. Phát triển mã nguồn chương trình.
16. Data flow diagram (DFD) được sử dụng để mô tả điều gì?
A. Cấu trúc dữ liệu.
B. Luồng dữ liệu giữa các quy trình.
C. Giao diện người dùng.
D. Kiến trúc phần cứng.
17. Trong bảo trì phần mềm, `perfective maintenance` là gì?
A. Sửa lỗi trong phần mềm.
B. Cải thiện hiệu suất của phần mềm.
C. Thêm chức năng mới vào phần mềm.
D. Thích ứng phần mềm với môi trường mới.
18. Trong mô hình UML, mối quan hệ `association` thể hiện điều gì?
A. Một lớp kế thừa từ một lớp khác.
B. Một lớp sử dụng một lớp khác.
C. Một lớp chứa các đối tượng của một lớp khác.
D. Một liên kết giữa hai lớp.
19. Trong kiểm thử phần mềm, `regression testing` được thực hiện khi nào?
A. Chỉ khi phát triển một hệ thống mới.
B. Sau khi sửa lỗi hoặc thêm chức năng mới.
C. Trước khi viết mã.
D. Chỉ khi hệ thống gặp sự cố.
20. Agile methodology nhấn mạnh điều gì?
A. Lập kế hoạch chi tiết từ đầu dự án.
B. Sự linh hoạt và khả năng thích ứng với thay đổi.
C. Tài liệu hóa đầy đủ mọi khía cạnh của dự án.
D. Tuân thủ nghiêm ngặt theo quy trình đã định.
21. Trong UML, `generalization` thể hiện mối quan hệ gì giữa các lớp?
A. Quan hệ sử dụng.
B. Quan hệ kế thừa.
C. Quan hệ thành phần.
D. Quan hệ liên kết.
22. Coupling (tính liên kết) trong thiết kế module phần mềm nên như thế nào?
A. Cao, để các module phụ thuộc lẫn nhau.
B. Thấp, để giảm sự phụ thuộc giữa các module.
C. Không quan trọng.
D. Phụ thuộc vào kích thước của module.
23. Mục tiêu chính của giai đoạn thiết kế hệ thống là gì?
A. Xác định yêu cầu của người dùng.
B. Phát triển mã nguồn.
C. Chuyển đổi các yêu cầu thành một bản thiết kế kỹ thuật.
D. Kiểm thử phần mềm.
24. Trong phân tích hệ thống, ma trận truy vết yêu cầu (requirements traceability matrix) dùng để làm gì?
A. Theo dõi chi phí dự án.
B. Theo dõi thời gian dự án.
C. Đảm bảo rằng tất cả các yêu cầu đều được đáp ứng trong quá trình phát triển.
D. Quản lý rủi ro dự án.
25. Sự khác biệt chính giữa kiểm thử alpha và kiểm thử beta là gì?
A. Kiểm thử alpha được thực hiện bởi nhà phát triển, kiểm thử beta được thực hiện bởi người dùng cuối.
B. Kiểm thử alpha được thực hiện bởi người dùng cuối, kiểm thử beta được thực hiện bởi nhà phát triển.
C. Kiểm thử alpha là kiểm thử chức năng, kiểm thử beta là kiểm thử hiệu năng.
D. Kiểm thử alpha là kiểm thử bảo mật, kiểm thử beta là kiểm thử khả năng sử dụng.
26. Khi nào nên sử dụng mô hình Waterfall trong phát triển phần mềm?
A. Khi yêu cầu thay đổi thường xuyên.
B. Khi dự án có yêu cầu rõ ràng và ổn định.
C. Khi cần phát triển nhanh chóng.
D. Khi có sự tham gia liên tục của khách hàng.
27. Điều gì là quan trọng nhất trong việc thiết kế API (Application Programming Interface)?
A. Sử dụng công nghệ mới nhất.
B. Đảm bảo tính bảo mật.
C. Đảm bảo tính dễ sử dụng và nhất quán.
D. Tối ưu hóa hiệu suất.
28. Test-Driven Development (TDD) là gì?
A. Viết code trước, viết test sau.
B. Viết test trước, viết code sau để pass test.
C. Chỉ viết test khi có lỗi.
D. Không cần viết test.
29. Tính `cohesion` (tính gắn kết) trong thiết kế module phần mềm đề cập đến điều gì?
A. Mức độ liên quan giữa các module khác nhau.
B. Mức độ liên quan giữa các phần tử bên trong một module.
C. Số lượng dòng code trong một module.
D. Tốc độ thực thi của một module.
30. 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. Tương tác giữa người dùng và hệ thống.
C. Luồng dữ liệu trong hệ thống.
D. Kiến trúc phần cứng của hệ thống.