Trắc nghiệm Công nghệ Phần mềm Bài: PHÂN TÍCH VA THIẾT KẾ DÒNG DỮ LIỆU là một trong những đề thi thuộc Chương 8: PHA THIẾT KẾ 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, giới thiệu một cách tiếp cận cổ điển nhưng vẫn rất hiệu quả trong việc phân tích và thiết kế hệ thống – tập trung vào cách dữ liệu được luân chuyển và biến đổi trong suốt quá trình xử lý của phần mề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à mục đích của Phân tích và Thiết kế Dòng Dữ liệu (Data Flow Analysis and Design), các thành phần chính của Biểu đồ luồng dữ liệu (Data Flow Diagram – DFD) bao gồm quá trình, kho dữ liệu, thực thể ngoài và luồng dữ liệu, các cấp độ của DFD (ngữ cảnh, mức 0, mức N), nguyên tắc cân bằng DFD, và cách DFD làm nền tảng cho thiết kế cấu trúc chương trình. Việc hiểu rõ phương pháp này sẽ trang bị cho sinh viên khả năng mô hình hóa luồng thông tin một cách rõ ràng và logic trong các hệ thống phần mềm.
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: PHÂN TÍCH VA THIẾT KẾ DÒNG DỮ LIỆU
Câu 1.Phân tích và Thiết kế Dòng Dữ liệu (Data Flow Analysis and Design) tập trung chủ yếu vào điều gì?
A. Cấu trúc dữ liệu và mối quan hệ giữa chúng.
B. Các đối tượng và tính đóng gói.
C. Giao diện người dùng và trải nghiệm.
D. Sự luân chuyển và biến đổi của dữ liệu trong một hệ thống.
Câu 2.Mục đích chính của việc tạo Biểu đồ luồng dữ liệu (Data Flow Diagram – DFD) là gì?
A. Để mô tả cấu trúc vật lý của cơ sở dữ liệu.
B. Để thiết kế giao diện người dùng.
C. Để viết mã nguồn chương trình.
D. Để trực quan hóa luồng dữ liệu và các quá trình biến đổi dữ liệu trong một hệ thống.
Câu 3.Trong DFD, một “Quá trình” (Process) được biểu diễn bằng hình tròn hoặc hình oval, nó đại diện cho điều gì?
A. Nơi dữ liệu được lưu trữ.
B. Nguồn hoặc đích của dữ liệu.
C. Sự di chuyển của dữ liệu.
D. Một hành động hoặc chức năng biến đổi dữ liệu đầu vào thành dữ liệu đầu ra.
Câu 4.Trong DFD, một “Kho dữ liệu” (Data Store) thường được biểu diễn bằng hai đường thẳng song song hoặc một hình chữ nhật hở, nó đại diện cho điều gì?
A. Một quá trình xử lý.
B. Một thực thể bên ngoài.
C. Sự di chuyển của dữ liệu.
D. Nơi dữ liệu được lưu trữ tạm thời hoặc vĩnh viễn.
Câu 5.Trong DFD, một “Thực thể bên ngoài” (External Entity) thường được biểu diễn bằng hình chữ nhật, nó đại diện cho điều gì?
A. Một quá trình xử lý bên trong hệ thống.
B. Một kho dữ liệu.
C. Sự biến đổi của dữ liệu.
D. Một nguồn hoặc đích của dữ liệu bên ngoài hệ thống (người, tổ chức, hệ thống khác).
Câu 6.Biểu đồ ngữ cảnh (Context Diagram) trong DFD là cấp độ cao nhất, nó mô tả điều gì?
A. Chi tiết tất cả các quá trình nội bộ.
B. Luồng dữ liệu giữa các kho dữ liệu.
C. Các module của chương trình.
D. Toàn bộ hệ thống như một quá trình duy nhất và các tương tác chính của nó với các thực thể bên ngoài.
Câu 7.Một DFD Cấp 0 (Level 0 DFD) mô tả điều gì?
A. Toàn bộ hệ thống như một quá trình duy nhất.
B. Chi tiết từng dòng code.
C. Các mối quan hệ giữa các đối tượng.
D. Các chức năng chính (quá trình) của hệ thống và luồng dữ liệu giữa chúng và các kho dữ liệu/thực thể bên ngoài.
Câu 8.Nguyên tắc “Cân bằng DFD” (DFD Balancing) có ý nghĩa gì?
A. Đảm bảo số lượng quá trình và kho dữ liệu là bằng nhau.
B. Đảm bảo biểu đồ có hình dạng đối xứng.
C. Đảm bảo mọi luồng dữ liệu đều có nguồn và đích.
D. Đảm bảo rằng các luồng dữ liệu vào và ra của một quá trình ở cấp độ cao phải phù hợp với các luồng dữ liệu vào và ra của các quá trình con khi nó được phân rã.
Câu 9.Phát biểu nào sau đây **không đúng** về DFD?
A. DFD là một công cụ mô hình hóa trực quan.
B. DFD tập trung vào “cái gì” hệ thống làm.
C. DFD có thể được phân rã thành nhiều cấp độ.
D. DFD hiển thị trình tự thời gian và điều kiện thực thi của các quá trình.
Câu 10.Một “Quá trình nguyên thủy” (Functional Primitive) trong DFD là gì?
A. Một quá trình có nhiều luồng dữ liệu phức tạp.
B. Một quá trình có thể được phân rã thêm.
C. Một quá trình không quan trọng.
D. Một quá trình ở cấp độ thấp nhất, không cần phân rã thêm nữa.
Câu 11.Khi nào thì nên sử dụng DFD trong vòng đời phát triển phần mềm?
A. Chỉ ở giai đoạn cài đặt.
B. Chỉ ở giai đoạn kiểm thử.
C. Chỉ ở giai đoạn bảo trì.
D. Trong giai đoạn phân tích yêu cầu hoặc thiết kế sơ bộ.
Câu 12.Lợi ích chính của việc sử dụng DFD trong phân tích là gì?
A. Tự động viết mã nguồn.
B. Thiết kế giao diện người dùng.
C. Ước lượng chi phí dự án.
D. Cung cấp cái nhìn rõ ràng về luồng thông tin và các hoạt động xử lý dữ liệu cho cả người dùng và nhà phát triển.
Câu 13.Nếu một quá trình trong DFD có đầu vào nhưng không có đầu ra, điều này cho thấy lỗi gì?
A. Lỗi dữ liệu.
B. Lỗi kho dữ liệu.
C. Lỗi thực thể bên ngoài.
D. Lỗi “Black Hole” (Hố đen) – dữ liệu bị mất.
Câu 14.Nếu một quá trình trong DFD có đầu ra nhưng không có đầu vào, điều này cho thấy lỗi gì?
A. Lỗi kho dữ liệu.
B. Lỗi thực thể bên ngoài.
C. Lỗi luồng dữ liệu.
D. Lỗi “Miracle” (Phép màu) – dữ liệu được tạo ra mà không có nguồn.
Câu 15.Để chi tiết hóa logic bên trong một “Quá trình nguyên thủy”, người ta thường sử dụng kỹ thuật nào?
A. Biểu đồ lớp.
B. Biểu đồ trình tự.
C. Biểu đồ trường hợp sử dụng.
D. Tiếng Anh có cấu trúc (Structured English), Bảng quyết định (Decision Table) hoặc Cây quyết định (Decision Tree).
Câu 16.Phân tích DFD có mối quan hệ chặt chẽ với tài liệu nào?
A. Tài liệu kiểm thử.
B. Tài liệu thiết kế giao diện.
C. Tài liệu quản lý rủi ro.
D. Từ điển dữ liệu (Data Dictionary), nơi định nghĩa chi tiết các thành phần của luồng dữ liệu.
Câu 17.Trong một hệ thống quản lý đơn hàng trực tuyến, “Khách hàng” gửi “Đơn hàng” và nhận lại “Xác nhận đơn hàng”. Trong DFD, “Khách hàng” sẽ được mô hình hóa là gì?
A. Quá trình.
B. Kho dữ liệu.
C. Luồng dữ liệu.
D. Thực thể bên ngoài.
Câu 18.Trong thiết kế cấu trúc chương trình dựa trên DFD, mỗi “quá trình” trong DFD thường tương ứng với điều gì?
A. Một dòng code.
B. Một biến.
C. Một đối tượng.
D. Một module, một hàm hoặc một thủ tục.
Câu 19.Hạn chế chính của DFD là gì?
A. Khó hiểu cho người dùng cuối.
B. Không thể mô tả luồng dữ liệu.
C. Quá phức tạp để sử dụng.
D. Không thể mô tả các yếu tố điều khiển (control flow), thứ tự thực hiện cụ thể, hoặc thời gian.
Câu 20.Nếu một “Kho dữ liệu” không có bất kỳ luồng dữ liệu nào vào hoặc ra, điều này cho thấy vấn đề gì?
A. Dữ liệu đang được sử dụng đúng cách.
B. Kho dữ liệu rất an toàn.
C. Kho dữ liệu không cần thiết.
D. Dữ liệu không bao giờ được ghi vào hoặc đọc ra, làm cho kho dữ liệu trở nên vô dụng.
Câu 21.Trong DFD Cấp 1, một quá trình được phân rã từ một quá trình ở cấp độ cao hơn. Luồng dữ liệu nào phải được giữ lại?
A. Chỉ các luồng dữ liệu nội bộ.
B. Chỉ các luồng dữ liệu mới.
C. Chỉ các luồng dữ liệu không liên quan.
D. Các luồng dữ liệu từ quá trình cha (luồng dữ liệu vào và ra từ quá trình con phải khớp với luồng của quá trình cha).
Câu 22.Mối quan hệ giữa DFD và thiết kế hướng hành động (Action-Oriented Design) là gì?
A. DFD thay thế thiết kế hướng hành động.
B. DFD không liên quan đến thiết kế hướng hành động.
C. DFD chỉ được sử dụng sau thiết kế hướng hành động.
D. DFD là một đầu vào quan trọng để tạo ra thiết kế cấu trúc chương trình trong phương pháp hướng hành động.
Câu 23.Khi thiết kế một hệ thống bằng cách sử dụng DFD, mục tiêu của việc đạt đến các “quá trình nguyên thủy” là gì?
A. Để làm cho biểu đồ phức tạp hơn.
B. Để bỏ qua các chi tiết.
C. Để làm cho dữ liệu không ổn định.
D. Để đạt được một cấp độ chi tiết đủ để lập trình viên có thể dễ dàng cài đặt logic.
Câu 24.Sự khác biệt giữa DFD và Biểu đồ lớp (Class Diagram) là gì?
A. DFD tập trung vào cấu trúc, Biểu đồ lớp tập trung vào luồng.
B. DFD chỉ dùng cho phân tích, Biểu đồ lớp chỉ dùng cho thiết kế.
C. Cả hai đều giống nhau.
D. DFD tập trung vào luồng dữ liệu và quá trình, trong khi Biểu đồ lớp tập trung vào cấu trúc tĩnh của dữ liệu (các lớp và mối quan hệ).
Câu 25.Khi một DFD có quá nhiều luồng dữ liệu hoặc quá trình phức tạp ở một cấp độ duy nhất, đây là vấn đề gì?
A. Biểu đồ quá đơn giản.
B. Thiếu thông tin.
C. Biểu đồ không đầy đủ.
D. Quá tải thông tin (Overloading) hoặc cần được phân rã thêm.