Sơ đồ luồng dữ liệu

Sơ đồ luồng dữ liệu (tên tiếng Anh: Data-flow diagram, viết tắt: DFD) là một cách biểu diễn luồng dữ liệu thông qua một quy trình hoặc một hệ thống (thường là một hệ thống thông tin). DFD cũng cung cấp thông tin về đầu ra và đầu vào của từng thực thể và chính trong quy trình đó. Sơ luồng dữ liệu không có luồng điều khiển, không có quy tắc quyết định và không có vòng lặp. Các hoạt động cụ thể dựa trên dữ liệu có thể được biểu diễn bằng lưu đồ.

Đối với mỗi luồng dữ liệu, ít nhất một trong các điểm cuối (nguồn và/hoặc đích đến) phải tồn tại trong một quy trình. Biểu diễn tinh chỉnh của một quy trình có thể được thực hiện trong một sơ đồ luồng dữ liệu khác, sơ đồ này chia nhỏ quy trình này thành các quy trình con.

Sơ đồ luồng dữ liệu được xem là một công cụ, một phần phân tích cấu trúc và mô hình hóa dữ liệu. Khi sử dụng UML, sơ đồ hoạt động thường đảm nhận vai trò của sơ đồ luồng dữ liệu. Một dạng đặc biệt của kế hoạch luồng dữ liệu và kế hoạch luồng dữ liệu hướng trang. Đây cũng được xem là mạng Petri đảo ngược, bởi các vị trí trong các mạng như vậy tương ứng với ngữ nghĩa trong bộ nhớ dữ liệu.

Lịch sử
Tên gọi DFD được dựa trên lý thuyết đồ thị, ban đầu nó được sử dụng trong nghiên cứu hoạt động để mô hình hóa quy trình làm việc trong các tổ chức. DFD bắt nguồn từ sơ đồ hoạt động được sử dụng trong các phương pháp phân tích cấu trúc và kỹ thuật thiết kế vào cuối những năm 1970. Những người nổi tiếng với DFD có thể kể đến như Edward Yourdon, Larry Constantine, Tom DeMarco, Chris Gane và Trish Sarson.

DFD sau đó nhanh chóng trở nên phổ biến khi trực quan hóa các bước chính và dữ liệu liên quan đến các quy trình trong hệ thống phần mềm. DFD thường được sử dụng để hiển thị luồng dữ liệu trong hệ thống máy tính, mặc dù về lý thuyết, chúng có thể được áp dụng cho việc mô hình hóa quy trình kinh doanh. DFD rất hữu ích để ghi lại các luồng dữ liệu chính hoặc để khám phá một thiết kế cấp cao mới về luồng dữ liệu.

Xem thêm
 Sơ đồ khối
 Mô hình dữ liệu
 Sơ đồ luồng điều khiển

Tham khảo

Sơ đồ
Thuật ngữ tin học
Hệ thống thông tin
Ngôn ngữ lập mô hình
Vẽ đồ thị
Quản trị dữ liệu
Phân tích hệ thống