[KNTT] Trắc nghiệm Tin học 11 KHMT bài 27 Thực hành thiết kế chương trình theo phương pháp làm mịn dần
1. Khi áp dụng phương pháp làm mịn dần, việc lặp lại và tinh chỉnh là cần thiết ở giai đoạn nào?
A. Chỉ ở giai đoạn đầu tiên.
B. Chỉ ở giai đoạn cuối cùng.
C. Liên tục trong suốt quá trình phát triển.
D. Không cần thiết nếu thiết kế ban đầu hoàn hảo.
2. Khi thiết kế một hàm tính tổng các phần tử trong mảng, bước đầu tiên có thể là xác định các trường hợp biên như mảng rỗng. Bước tiếp theo có thể là gì?
A. Viết chương trình hoàn chỉnh cho mọi loại mảng.
B. Thiết kế giao diện người dùng.
C. Thực hiện tính tổng cho trường hợp mảng có ít nhất một phần tử.
D. Tối ưu hóa hiệu suất bằng cách sử dụng đa luồng.
3. Phương pháp làm mịn dần khuyến khích việc xây dựng chương trình theo trình tự nào?
A. Từ chi tiết đến tổng thể.
B. Từ tổng thể đến chi tiết.
C. Ngẫu nhiên, không theo trình tự.
D. Chỉ tập trung vào các tính năng phức tạp nhất.
4. Khi phân tích một bài toán phức tạp, việc xác định các lớp (classes) hoặc đối tượng (objects) liên quan là một phần của bước nào trong thiết kế theo phương pháp làm mịn dần?
A. Kiểm thử đơn vị.
B. Thiết kế kiến trúc tổng thể.
C. Chi tiết hóa hành vi đối tượng.
D. Tối ưu hóa mã lệnh.
5. Khi thiết kế một chương trình có nhiều chức năng liên quan đến thời gian (ví dụ: hẹn giờ, đồng hồ bấm giờ), việc bắt đầu với chức năng đơn giản nhất như hiển thị giờ hiện tại là ví dụ của:
A. Thiết kế theo hướng dữ liệu.
B. Làm mịn dần.
C. Tối ưu hóa hiệu năng.
D. Kiểm thử hồi quy.
6. Trong phương pháp làm mịn dần (gradual refinement) để thiết kế chương trình, bước đầu tiên thường tập trung vào việc xác định yếu tố nào của bài toán?
A. Chi tiết cài đặt thuật toán phức tạp.
B. Giao diện người dùng cuối cùng.
C. Các yêu cầu chức năng chính và cấu trúc tổng thể.
D. Tối ưu hóa hiệu suất bộ nhớ.
7. Trong quá trình làm mịn dần, nếu một module đã được thiết kế và kiểm thử hoạt động tốt, bước tiếp theo có thể là gì?
A. Bắt đầu lại toàn bộ chương trình.
B. Tập trung vào việc thiết kế một module hoàn toàn mới không liên quan.
C. Tích hợp module đó vào hệ thống lớn hơn và kiểm thử lại.
D. Xóa bỏ module đó để tiết kiệm không gian lưu trữ.
8. Trong ngữ cảnh của phương pháp làm mịn dần, làm sạch (refactoring) mã nguồn thường được thực hiện khi nào?
A. Chỉ khi có lỗi nghiêm trọng.
B. Sau khi hoàn thành toàn bộ tính năng.
C. Như một phần của quá trình lặp lại để cải thiện cấu trúc và khả năng đọc.
D. Không bao giờ, vì nó làm chậm tiến độ.
9. Nếu một chương trình được thiết kế theo phương pháp làm mịn dần và một module mới được thêm vào, điều quan trọng là phải:
A. Đảm bảo module mới không tương tác với bất kỳ module nào khác.
B. Kiểm tra lại toàn bộ chương trình để đảm bảo tính nhất quán và không có lỗi mới.
C. Chỉ kiểm tra hoạt động của module mới.
D. Tối ưu hóa module mới trước khi tích hợp.
10. Khi thiết kế một thuật toán sắp xếp, bước đầu tiên của phương pháp làm mịn dần có thể là:
A. Viết mã lệnh hoàn chỉnh cho thuật toán QuickSort.
B. Xác định mảng cần sắp xếp và các điều kiện ban đầu.
C. Tối ưu hóa tốc độ chạy của thuật toán.
D. Thiết kế giao diện người dùng cho chức năng sắp xếp.
11. Phương pháp làm mịn dần giúp giảm thiểu rủi ro trong quá trình phát triển phần mềm bằng cách nào?
A. Bằng cách trì hoãn việc kiểm thử cho đến cuối dự án.
B. Bằng cách tập trung vào một giải pháp duy nhất và không thay đổi.
C. Bằng cách phát hiện và sửa lỗi sớm ở từng bước nhỏ.
D. Bằng cách bỏ qua các yêu cầu ban đầu nếu chúng quá phức tạp.
12. Phương pháp làm mịn dần có thể giúp quản lý sự thay đổi của yêu cầu tốt hơn bằng cách nào?
A. Bằng cách yêu cầu người dùng không thay đổi yêu cầu.
B. Bằng cách chia nhỏ chương trình, cho phép điều chỉnh từng phần mà không ảnh hưởng lớn đến toàn bộ.
C. Bằng cách chỉ cho phép thay đổi ở giai đoạn cuối cùng.
D. Bằng cách sử dụng một thiết kế cố định từ đầu đến cuối.
13. Phương pháp làm mịn dần khuyến khích việc gì đối với các yêu cầu của người dùng?
A. Bỏ qua các yêu cầu ban đầu nếu chúng quá mơ hồ.
B. Tập trung vào việc thực hiện tất cả các yêu cầu cùng một lúc.
C. Hiểu rõ và phân rã các yêu cầu thành các phần nhỏ hơn.
D. Chỉ chấp nhận các yêu cầu đã được chi tiết hóa hoàn toàn.
14. Việc chia một chương trình lớn thành các module nhỏ hơn theo phương pháp làm mịn dần có lợi ích gì?
A. Tăng sự phụ thuộc giữa các module.
B. Giảm khả năng tái sử dụng mã.
C. Tăng khả năng quản lý, kiểm thử và bảo trì.
D. Làm cho chương trình khó hiểu hơn.
15. Yếu tố nào sau đây KHÔNG phải là mục tiêu của việc áp dụng phương pháp làm mịn dần?
A. Giảm thiểu rủi ro.
B. Nâng cao khả năng bảo trì.
C. Tăng tốc độ phát triển ban đầu bằng cách bỏ qua các bước chi tiết.
D. Tạo ra sản phẩm có chất lượng cao hơn.
16. Nếu bạn đang thiết kế một chương trình xử lý hình ảnh và bước đầu tiên là đọc dữ liệu ảnh, bước tiếp theo có thể là:
A. Áp dụng bộ lọc làm mờ (blur filter).
B. Lưu hình ảnh đã xử lý.
C. Xác định cấu trúc dữ liệu để biểu diễn ảnh (ví dụ: mảng 2D).
D. Thiết kế nút Lưu trên giao diện.
17. Việc xác định các trường hợp đặc biệt (edge cases) của một hàm là một phần quan trọng của bước nào trong phương pháp làm mịn dần?
A. Thiết kế giao diện.
B. Lập trình tổng thể.
C. Chi tiết hóa và kiểm thử.
D. Tối ưu hóa thuật toán.
18. Phương pháp làm mịn dần giúp đảm bảo tính nhất quán của chương trình bằng cách nào?
A. Bằng cách yêu cầu tất cả các module phải giống hệt nhau.
B. Bằng cách đảm bảo các quyết định thiết kế được thực hiện sớm và nhất quán.
C. Bằng cách chỉ tập trung vào một chức năng duy nhất.
D. Bằng cách không cho phép bất kỳ thay đổi nào sau khi thiết kế ban đầu.
19. Nếu một phần của chương trình không hoạt động như mong đợi sau khi thực hiện làm mịn dần, điều đó có nghĩa là gì?
A. Phương pháp làm mịn dần là sai.
B. Cần phải quay lại bước trước đó để sửa lỗi hoặc điều chỉnh thiết kế.
C. Chương trình đã hoàn thành và không cần sửa.
D. Lỗi đó là không thể sửa được.
20. Khi một chức năng ban đầu được thiết kế với một mức độ chi tiết nhất định, và sau đó được bổ sung thêm các tính năng phụ, đó là biểu hiện của:
A. Thiết kế theo hướng đối tượng.
B. Làm mịn dần.
C. Tái cấu trúc mã.
D. Kiểm thử đơn vị.
21. Mục tiêu chính của việc làm mịn dần trong thiết kế chương trình là gì?
A. Hoàn thành toàn bộ chương trình trong một lần thực hiện.
B. Chia nhỏ vấn đề phức tạp thành các phần nhỏ, dễ quản lý hơn.
C. Chỉ tập trung vào việc sửa lỗi sau khi chương trình hoàn thành.
D. Sử dụng các thư viện có sẵn mà không cần hiểu sâu logic.
22. Trong thiết kế một chương trình phân tích dữ liệu, nếu bước đầu tiên là xác định nguồn dữ liệu, bước tiếp theo trong phương pháp làm mịn dần có thể là:
A. Trực quan hóa kết quả phân tích.
B. Viết báo cáo phân tích chi tiết.
C. Xác định các loại dữ liệu và cấu trúc cần thiết để lưu trữ và xử lý.
D. Tối ưu hóa thuật toán phân tích.
23. Trong một chương trình xử lý chuỗi, nếu bước đầu tiên là xác định độ dài chuỗi, thì bước tiếp theo trong phương pháp làm mịn dần có thể là gì?
A. Tính năng đảo ngược chuỗi.
B. Tìm kiếm một ký tự cụ thể trong chuỗi.
C. Kiểm tra xem chuỗi có rỗng hay không.
D. Chuyển đổi chuỗi sang chữ hoa.
24. Trong thiết kế một chương trình quản lý danh sách sinh viên, nếu bước đầu tiên là xác định các thuộc tính cơ bản của sinh viên (mã, tên, lớp), bước tiếp theo có thể là:
A. Thiết kế chức năng tìm kiếm sinh viên theo tên.
B. Xác định cấu trúc dữ liệu để lưu trữ danh sách sinh viên (ví dụ: mảng, danh sách liên kết).
C. Tạo giao diện đồ họa cho toàn bộ chương trình.
D. Tối ưu hóa việc sử dụng bộ nhớ cho dữ liệu sinh viên.
25. Trong quá trình làm mịn dần, nếu phát hiện ra một lỗi logic trong một module đã được phát triển, hành động phù hợp nhất là gì?
A. Tái thiết kế toàn bộ chương trình.
B. Bỏ qua lỗi đó và tiếp tục.
C. Sửa lỗi ngay trong module đó và kiểm thử lại.
D. Chuyển lỗi đó cho người khác sửa.