Trắc nghiệm Công nghệ Phần mềm Bài: KHÍA CẠNH BẢO TRÌ là một trong những đề thi thuộc Chương 1: MỞ ĐẦU trong học phần Công nghệ Phần mềm chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần kiến thức quan trọng cung cấp cái nhìn chuyên sâu về giai đoạn bảo trì phần mềm – một trong những khía cạnh tốn kém và phức tạp nhất của vòng đời phát triển sản phẩm.
Trong bài học này, người học cần nắm vững các nội dung cốt lõi như: định nghĩa và các loại bảo trì phần mềm (khắc phục, thích nghi, hoàn thiện, phòng ngừa), lý do và thách thức của công việc bảo trì, tầm quan trọng của việc bảo trì hiệu quả, và các phương pháp giúp tối ưu hóa chi phí và nỗ lực bảo trì. Việc hiểu rõ khía cạnh bảo trì sẽ giúp sinh viên có cái nhìn toàn diện về vòng đời sản phẩm phần mềm và chuẩn bị tốt hơn cho các thách thức thực tế sau này.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Công nghệ Phần mềm Bài: KHÍA CẠNH BẢO TRÌ
Câu 1.Khái niệm bảo trì phần mềm bao gồm những hoạt động nào?
A. Chỉ sửa lỗi sau khi phần mềm được triển khai.
B. Chỉ thêm các tính năng mới vào phần mềm.
C. Chỉ nâng cấp phần mềm cho môi trường mới.
D. Tất cả các hoạt động liên quan đến việc sửa đổi phần mềm sau khi nó đã được chuyển giao.
Câu 2.Loại bảo trì nào tập trung vào việc sửa chữa các lỗi hoặc khuyết tật được phát hiện sau khi phần mềm đã được sử dụng?
A. Bảo trì thích nghi (Adaptive Maintenance).
B. Bảo trì hoàn thiện (Perfective Maintenance).
C. Bảo trì phòng ngừa (Preventive Maintenance).
D. Bảo trì khắc phục (Corrective Maintenance).
Câu 3.Khi một phần mềm cần được thay đổi để hoạt động tốt trên một hệ điều hành mới hoặc với một cơ sở dữ liệu mới, đây là loại bảo trì nào?
A. Bảo trì khắc phục.
B. Bảo trì hoàn thiện.
C. Bảo trì phòng ngừa.
D. Bảo trì thích nghi.
Câu 4.Việc thêm các tính năng mới, cải thiện hiệu suất hoặc tăng cường khả năng sử dụng của phần mềm theo yêu cầu người dùng được gọi là loại bảo trì nào?
A. Bảo trì khắc phục.
B. Bảo trì thích nghi.
C. Bảo trì phòng ngừa.
D. Bảo trì hoàn thiện.
Câu 5.Loại bảo trì nào nhằm mục đích cải thiện khả năng bảo trì, độ tin cậy hoặc hiệu suất của phần mềm trong tương lai, thường bằng cách tái cấu trúc mã nguồn (refactoring)?
A. Bảo trì khắc phục.
B. Bảo trì thích nghi.
C. Bảo trì hoàn thiện.
D. Bảo trì phòng ngừa.
Câu 6.Phần lớn chi phí trong vòng đời của một dự án phần mềm thường được dành cho giai đoạn nào?
A. Phân tích và thiết kế.
B. Lập trình và kiểm thử.
C. Triển khai.
D. Bảo trì.
Câu 7.Tại sao chi phí bảo trì phần mềm thường rất cao?
A. Do phần mềm dễ bị hao mòn vật lý.
B. Do công nghệ phần mềm ít thay đổi.
C. Do phần mềm không cần tài liệu.
D. Do sự phức tạp của phần mềm, yêu cầu thay đổi liên tục, và chi phí lao động.
Câu 8.Một trong những lý do chính khiến phần mềm cần bảo trì là gì?
A. Phần cứng bị lỗi thời.
B. Giảm số lượng người dùng.
C. Phần mềm tự động hỏng sau một thời gian.
D. Môi trường vận hành thay đổi và yêu cầu người dùng phát triển theo thời gian.
Câu 9.Khái niệm “nợ kỹ thuật” (technical debt) có liên quan chặt chẽ đến khía cạnh bảo trì như thế nào?
A. Nó là chi phí để mua công cụ bảo trì.
B. Nó là tiền lương trả cho đội ngũ bảo trì.
C. Nó là khoản tiền được trả khi phần mềm bị lỗi.
D. Nó thể hiện chi phí phát sinh trong tương lai do các quyết định phát triển không tối ưu hoặc “đi tắt” trong hiện tại, làm tăng chi phí bảo trì.
Câu 10.Tầm quan trọng của tài liệu (documentation) trong quá trình bảo trì phần mềm là gì?
A. Nó chỉ quan trọng trong giai đoạn thiết kế.
B. Nó làm tăng chi phí bảo trì.
C. Nó không cần thiết nếu có lập trình viên giỏi.
D. Cung cấp thông tin cần thiết để hiểu, sửa đổi và mở rộng phần mềm một cách hiệu quả.
Câu 11.Việc bỏ qua bảo trì thường xuyên đối với một hệ thống phần mềm cũ có thể dẫn đến hậu quả gì?
A. Hệ thống sẽ ổn định hơn.
B. Chi phí hoạt động sẽ giảm.
C. Khả năng tương thích tăng.
D. Hệ thống trở nên lỗi thời, khó sửa chữa, kém hiệu quả và tiềm ẩn nhiều rủi ro.
Câu 12.Phát biểu nào sau đây **không đúng** về khía cạnh bảo trì phần mềm?
A. Bảo trì chiếm phần lớn tổng chi phí vòng đời phần mềm.
B. Bảo trì không chỉ là sửa lỗi mà còn là cải tiến.
C. Chất lượng thiết kế ban đầu ảnh hưởng lớn đến chi phí bảo trì.
D. Bảo trì chỉ được thực hiện bởi nhà phát triển ban đầu của phần mềm.
Câu 13.Khi một phần mềm được xây dựng với kiến trúc mô-đun (modular architecture), điều này ảnh hưởng như thế nào đến bảo trì?
A. Làm cho việc bảo trì khó khăn hơn do sự phức tạp.
B. Không có ảnh hưởng đáng kể.
C. Chỉ có lợi cho hiệu suất, không phải bảo trì.
D. Giúp việc sửa đổi hoặc nâng cấp một phần mà không ảnh hưởng đến toàn bộ hệ thống, giảm độ phức tạp và chi phí bảo trì.
Câu 14.Hệ thống kiểm soát phiên bản (Version Control System) như Git có vai trò quan trọng gì trong bảo trì phần mềm?
A. Giúp tự động sửa lỗi.
B. Đảm bảo phần mềm chạy nhanh hơn.
C. Chỉ dùng để triển khai phần mềm.
D. Quản lý các thay đổi mã nguồn, cho phép theo dõi lịch sử, phục hồi phiên bản và cộng tác hiệu quả.
Câu 15.Tại sao việc bảo trì phần mềm lại khác biệt và phức tạp hơn so với việc bảo trì phần cứng?
A. Phần mềm bị hao mòn vật lý nhanh hơn.
B. Phần mềm dễ dàng thay thế hơn phần cứng.
C. Phần mềm có thể được nhìn thấy và chạm vào.
D. Phần mềm là phi vật lý, không bị hao mòn, nhưng lại dễ thay đổi về mặt logic và các thay đổi có thể gây ra hiệu ứng domino.
Câu 16.Nếu chi phí trung bình để sửa một lỗi trong giai đoạn thiết kế là \( \$X \), thì chi phí để sửa lỗi đó trong giai đoạn bảo trì có thể là bao nhiêu?
A. \( \approx X/2 \)
B. \( \approx X \)
C. \( \approx 2X \)
D. \( \approx 10X \) hoặc hơn (chi phí sửa lỗi tăng theo các giai đoạn sau của vòng đời).
Câu 17.Hoạt động nào sau đây thuộc về bảo trì phòng ngừa?
A. Sửa lỗi chính tả trong giao diện người dùng.
B. Cập nhật phần mềm để tương thích với phiên bản mới của Windows.
C. Thêm một tính năng báo cáo mới.
D. Tối ưu hóa cấu trúc cơ sở dữ liệu để cải thiện hiệu suất lâu dài.
Câu 18.Trong một dự án phần mềm, nếu đội ngũ phát triển không ghi lại tài liệu chi tiết về thiết kế và mã nguồn, điều này sẽ ảnh hưởng như thế nào đến công tác bảo trì?
A. Không ảnh hưởng, vì mã nguồn tự giải thích.
B. Làm cho bảo trì dễ dàng hơn vì không cần đọc tài liệu.
C. Chỉ ảnh hưởng đến hiệu suất của phần mềm.
D. Gây khó khăn lớn cho việc hiểu, sửa đổi và duy trì phần mềm trong tương lai, làm tăng chi phí và thời gian.
Câu 19.Khía cạnh bảo trì nào liên quan đến việc làm cho phần mềm “tốt hơn” hoặc “dễ sử dụng hơn”?
A. Khắc phục.
B. Thích nghi.
C. Phòng ngừa.
D. Hoàn thiện.
Câu 20.Một công ty phần mềm ước tính rằng 60% tổng chi phí của một hệ thống là dành cho việc bảo trì trong 10 năm đầu tiên sau khi ra mắt. Nếu tổng chi phí phát triển ban đầu là \( \$400,000 \), thì tổng chi phí vòng đời của hệ thống đó trong 10 năm này là bao nhiêu?
A. \( \$400,000 \)
B. \( \$600,000 \)
C. \( \$1,000,000 \)
D. \( \$1,000,000 \) (Nếu chi phí bảo trì = 60% tổng, thì phát triển = 40% tổng. \( \$400,000 = 40\% \Rightarrow \text{Tổng chi phí} = 400,000 / 0.4 = 1,000,000 \) )
Câu 21.Tại sao việc thay đổi trong phần mềm trong giai đoạn bảo trì lại tiềm ẩn rủi ro cao?
A. Vì không có công cụ hỗ trợ.
B. Vì lập trình viên không có kinh nghiệm.
C. Vì phần mềm quá cũ.
D. Vì các thay đổi có thể gây ra lỗi mới hoặc ảnh hưởng đến các phần khác của hệ thống do tính phức tạp và phụ thuộc lẫn nhau.
Câu 22.Chiến lược “Code Refactoring” (tái cấu trúc mã) là một phần quan trọng của loại bảo trì nào?
A. Bảo trì khắc phục.
B. Bảo trì thích nghi.
C. Bảo trì hoàn thiện.
D. Bảo trì phòng ngừa.
Câu 23.Mục tiêu chính của việc quản lý cấu hình phần mềm (Software Configuration Management – SCM) trong bảo trì là gì?
A. Kiểm soát số lượng người dùng.
B. Tăng tốc độ thực thi phần mềm.
C. Đảm bảo an ninh dữ liệu.
D. Quản lý và kiểm soát các phiên bản, thay đổi và cấu hình của phần mềm xuyên suốt vòng đời.
Câu 24.Sự già cỗi của một hệ thống phần mềm (Software Aging) chủ yếu đề cập đến vấn đề gì?
A. Phần mềm bị hỏng do sử dụng lâu ngày.
B. Phần mềm không còn tương thích với phần cứng mới.
C. Phần mềm không còn đẹp mắt về giao diện.
D. Sự suy giảm hiệu suất và tăng nguy cơ lỗi do sự tích lũy của các thay đổi và sửa chữa trong quá trình bảo trì.
Câu 25.Điều nào sau đây là một thách thức lớn khi bảo trì các “hệ thống kế thừa” (Legacy Systems)?
A. Chúng quá mới và phức tạp.
B. Chúng luôn có tài liệu đầy đủ.
C. Chúng được viết bằng ngôn ngữ lập trình hiện đại.
D. Thường thiếu tài liệu, được viết bằng công nghệ cũ, và có cấu trúc phức tạp khó hiểu.