Sơ đồ dòng dữ liệu nhằm mục đích: Bổ sung khiếm khuyết của mô hình phân rã chức năng bằng việc bổ sung các luồng thông tin nghiệp vụ cần để thực hiện chức năng; Cho ta cái nhìn đầy đủ hơn về các mặt hoạt động của hệ thống; Là một trong số các đầu vào cho quá trình thiết kế hệ thống.
1. Định nghĩa Mô hình luồng dữ liệu (DFD)
Mô hình luồng dữ liệu (DFD – Data Flow Diagram) là một công cụ mô tả mối quan hệ thông tin giữa các công việc .
Ví dụ: Mô hình luồng dữ liệu của hoạt động bán hàng
2. Các thành phần của mô hình luồng dữ liệu
2.1. Chức năng (còn gọi là Tiến trình)
– Định nghĩa: Là một hoạt động có liên quan đến sự biến đổi hoặc tác động lên thông tin như tổ chức lại thông tin, bổ sung thông tin hoặc tạo ra thông tin mới. Nếu trong một chức năng không có thông tin mới được sinh ra thì đó chưa phải là chức năng trong mô hình luồng dữ liệu.
– Cách đặt tên: Động từ + bổ ngữ.
Ví dụ: Chấp nhận nguồn hàng, ghi kho vật liệu…
– Biểu diễn: hình chữ nhật góc tròn hoặc hình tròn
Chú ý : Trong thực tế tên chức năng phải trùng với tên chức năng trong mô hình phân rã chức năng.
2.2. Luồng dữ liệu
– Định nghĩa: Là luồng thông tin vào hoặc ra khỏi chức năng
– Cách đặt tên : Danh từ + tính từ
– Biểu diễn : là mũi tên trên đó ghi thông tin di chuyển
Chú ý: Các luồng dữ liệu phải chỉ ra được thông tin logic chứ không phải tài liệu vật lý. Các luồng thông tin khác nhau phải có tên gọi khác nhau.
Ví dụ: Luồng dữ liệu biểu hiện việc trả tiền mang tên là “thanh toán” chứ không mang tên là “tiền” hay “sec”.
2.3. Kho dữ liệu
Kho dữ liệu là nơi biểu diễn thông tin cần lưu giữ, để một hoặc nhiều chức năng sử dụng chúng.
Cách đặt tên kho dữ liệu như sau : danh từ + tính từ. Tên kho phải chỉ rõ nội dung dữ liệu trong kho.
Kho dữ liệu được biểu diễn bằng cặp đường thẳng song song chứa tên kho cần cất giữ.
Ví dụ 1: biểu diễn kho hóa đơn như sau:
Quan hệ giữa kho dữ liệu, chức năng và luồng dữ liệu được biểu diễn như sau:
Ví dụ 2: Một người muốn tra cứu một danh sách giá cả: phải lấy thông tin từ kho dữ liệu danh sách giá cả (hình a), còn muốn sửa đổi giá cả thì luồng dữ liệu đi từ tiến trình tới kho dữ liệu (hình b). Để biểu thị việc kiểm tra giá cả mặt hàng và sửa đổi các giá không phù hợp thì dùng mũi tên hai chiều để biểu thị luồng dữ liệu từ tiến trình tới kho
2.4. Tác nhân bên ngoài
Định nghĩa: Là một người hoặc một nhóm người nằm ngoài hệ thống nhưng có trao đổi trực tiếp với hệ thống. Sự có mặt của các nhân tố này trên sơ đồ chỉ ra giới hạn của hệ thống, định rõ mối quan hệ của hệ thống với thế giới bên ngoài
– Tên : Danh từ
– Biểu diễn : hình chữ nhật
2.5. Tác nhân bên trong
Là một chức năng hoặc một hệ thống con của hệ thống đang xét nhưng được trình bày ở một trang khác của mô hình.
Mọi sơ đồ luồng dữ liệu đều có thể bao gồm một số trang, thông tin truyền giữa các quá trình trên các trang khác nhau được chỉ ra nhờ kí hiệu này.
– Tên: động từ + bổ ngữ
– Biểu diễn:
3. Một số quy tắc
Khi vẽ biểu đồ luồng dữ liệu ta phải thực hiện theo các quy tắc sau:
– Các luồng dữ liệu vào của một tiến trình cần khác với các luồng dữ liệu ra của nó. Tức là các dữ liệu qua một tiến trình phải có thay đổi. Ngược lại, tiến trình là không cần thiết vì không tác động gì đến các luồng thông tin đi qua nó
– Các đối tượng trong một mô hình luồng dữ liệu phải có tên duy nhất: mỗi tiến trình phải có tên duy nhất. Tuy nhiên, vì lí do trình bày cùng một tác nhân trong, tác nhân ngoài và kho dữ liệu có thể được vẽ lặp lại.
– Các luồng dữ liệu đi vào một tiến trình phải đủ để tạo thành các luồng dữ liệu đi ra.
– Nói chung tên luồng thông tin vào hoặc ra kho trùng với tên kho vì vậy không cần viết tên luồng. Nhưng khi ghi hoặc lấy tin chỉ tiến hành một phần kho thì lúc đó phải đặt tên cho luồng
– Không có một tiến trình nào chỉ có cái ra mà không có cái vào. Đối tượng chỉ có cái ra thì có thể là tác nhân ngoài (nguồn)
– Không một tiến trình nào mà chỉ có cái vào mà không có cái ra. Một đối tượng chỉ có cái vào thì chỉ có thể là tác nhân ngoài (đích)
– Không thể xảy ra các trường hợp biểu diễn sau:
4. Trình tự xây dựng sơ đồ dòng dữ liệu
Bước 1: Xây dựng mô hình luồng dữ liệu mức khung cảnh (mức 0)
– Mô hình luồng dữ liệu mức khung cảnh gồm một chức năng duy nhất biểu thị toàn bộ hệ thống đang nghiên cứu, chức năng này được nối với mọi tác nhân ngoài của hệ thống.
– Các luồng dữ liệu giữa chức năng và tác nhân ngoài chỉ thông tin vào và ra của hệ thống
Ví dụ: Mô hình dữ liệu mức khung cảnh của hệ cung ứng vật tư
Bước 2: Xây dựng mô hình luồng dữ liệu mức đỉnh (mức 1)
– Với mức đỉnh các tác nhân ngoài của hệ thống ở mức khung cảnh được giữ `nguyên với các luồng thông tin vào ra.
– Hệ thống được phân rã thành các chức năng mức đỉnh là các tiến trình chính bên trong hệ thống theo mô hình phân rã chức năng mức 1.
– Xuất hiện thêm các kho dữ liệu và luồng thông tin trao đổi giữa các chức năng mức đỉnh.
Ví dụ: Mô hình luồng dữ liệu mức đỉnh của hệ cung ứng vật tư
Bước 3: Xây dựng mô hình luồng dữ liệu mức dưới đỉnh (mức 2 và dưới 2)
– Ở mức này thực hiện phân rã đối với mỗi chức năng của mức đỉnh.
– Khi thực hiện mức phân rã này vẫn phải căn cứ vào mô hình phân rã chức năng để xác định các chức năng con sẽ xuất hiện trong mô hình luồng dữ liệu.
– Việc phân rã có thể tiếp tục cho đến khi đủ số mức cần thiết
– Khi phân rã các chức năng phải đảm bảo tất cả các luồng thông tin vào ra ở chức năng mức cao phải có mặt trong các chức năng mức thấp hơn và ngược lại.
Chú ý:
+ Các kho dữ liệu không xuất hiện ở DFD mức khung cảnh.
+ Nên đánh số các chức năng theo sự phân cấp.
+ Các kho dữ liệu, các tác nhân ngoài có thể xuất hiện nhiều lần.
+ Số mức phụ thuộc vào độ phức tạp của hệ thống.
Ví dụ 1: Mô hình luồng dữ liệu của hệ thống cung ứng vật tư mức dưới đỉnh của
Chức năng đặt hàng
Ví dụ 2: vẽ biểu đồ phân cấp chức năng và biểu đồ luồng dữ liệu phân mức của một cơ sở tín dụng:
– Biểu đồ phân cấp chức năng:
– Biểu đồ luồng dữ liệu:
+ Mức khung cảnh:
+ Mức đỉnh:
+ Mức dưới đỉnh
5. Chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic
Việc chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic có tác dụng sau:
– Xác định nhu cầu thông tin ở mỗi chức năng
– Cho một thiết kế sơ bộ về thực hiện chức năng
– Là phương tiện giao tiếp giữa người phân tích thiết kế và người sử dụng
– Luôn có hai mức diễn tả vật lý và logic. Mức vật lý trả lời câu hỏi như thế nào, mức lôgíc trả lời câu hỏi làm gì.
Trong thực tế người ta thấy rằng việc tạo ra một mô hình luồng dữ liệu cho hệ thống thực dưới dạng vật lý không có lợi vì những lý do sau:
+ Tốn nhiều thời gian và tiêu tốn nguồn tài nguyên phát triển dự án một cách không cần thiết. Có thể xem quá trình này là việc sao chép công việc của kỹ thuật viên điều tra, sao chép tất cả những gì đang thực hiện hiện tại.
+ Khi tạo ra mô hình thì phải tạo ra những điều chỉnh tượng trưng cho nó, xử lý nó như mô hình logic, kết quả là hệ thống mới chỉ đơn thuần là tin học hoá hệ thống cũ với rất nhiều lỗi mà cái ta cần cuối cùng là mô hình DFD logic.
Mô hình luồng dữ liệu logic loại bỏ những ràng buộc và các yếu tố vật lý, mô hình này chỉ quan tâm chức năng nào là cần cho hệ thống và thông tin nào là cần để thực hiện cho chức năng đó.
Các yếu tố vật lý cần loại bỏ là:
+ Các phương tiện, phương thức: tự động, thủ công, bàn phím, màn hình,..
+ Các giá mang thông tin: các tệp, chứng từ
+ Các chức năng xử lý gắn với các công cụ hay cách thức cài đặt cụ thể
+ Tiến hành các loại bỏ và chỉnh đốn lại cấu trúc. Loại bỏ: loại bỏ các ngôn từ, hình vẽ biểu diễn các phương tiện, giá mang tin,.. giữ lại các chức năng và nội dung thông tin
– Chú ý:
+ Nên xây dựng mô hình logic cần có bằng cách điều chỉnh mô hình logic thực tại.
+ Không có sự phân chia rõ rệt giữa logic và vật lý. Mô hình càng phân rã ở mức thấp thì càng thêm nhiều yếu tố vật lý.
+ Càng giữ cho mô hình của mình được logic nhiều nhất khi đi sâu vào chi tiết càng tốt.
6. Chuyển từ mô hình luồng dữ liệu của hệ thống cũ sang mô hình luồng dữ liệu của hệ thống mới
– Giai đoạn này có ý nghĩa vô cùng quan trọng ảnh hưởng to lớn đến sự thành công của hệ thống mới.
– Trong giai đoạn này nhà quản lý và nhà phân tích phải hợp tác chặt chẽ để tìm cách hoà hợp cơ cấu tổ chức, nhận thức được vai trò của máy tính để thay đổi hệ thống cũ.
– Để chuyển từ mô hình luồng dữ liệu của hệ thống cũ sang mô hình luồng dữ liệu của hệ thống mới trước tiên phải xác định các mặt yếu kém cần cải tiến, thay đổi trong hệ thống cũ.
– Các yếu kém chủ yếu do sự thiếu vắng gây ra : thiếu vắng về cơ cấu tổ chức hợp lý, thiếu vắng các phương tiện hoạt động từ đó dẫn đến hiệu quả hoạt động thấp, chi phí hoạt động cao.
– Xem lại mô hình luồng dữ liệu
+ Nếu thiếu vắng thì bổ sung
+ Nếu thừa thì loại bỏ
+ Nếu thay đổi bắt đầu từ mức đỉnh
- Khoanh vùng vùng sẽ được thay đổi
- Giữ nguyên các luồng vào và luồng ra của vùng
- Xác định chức năng tổng quát của vùng
- Xoá bỏ mô hình luồng dữ liệu bên trong vùng được khoanh, lập lại các chức năng từ mức thấp nhất.
- Thành lập kho dữ liệu và luồng dữ liệu cần thiết.
– Sửa lại mô hình phân rã chức năng theo mô hình luồng dữ liệu.
– Kiểm tra lại các mô hình dữ liệu điều chỉnh lại cho hợp lý.
Ví dụ: Hệ cung ứng vật tư
– Nhược điểm: thiếu kho hàng thông dụng
+ Tốc độ chậm vì có khâu đối chiếu thủ công
+ Theo dõi thực hiện đơn hàng còn nhiều sai sót
+ Lãng phí do đối chiếu thủ công
– Sửa mô hình luồng dữ liệu
+ Bổ sung: Kho chứa vật tư
+ Sửa lại mô hình luồng dữ liệu của hệ thống
7. Hoàn chỉnh mô hình luồng dữ liệu
Khi đã hoàn thành sơ đồ luồng dữ liệu cần kiểm tra về tính đầy đủ và nhất quán của nó. Phải làm cho sơ đồ đơn giản, chính xác và logic nhất có thể được. Nên tránh để xảy ra các tình huống sau:
– Tình huống 1: Hiệu ứng “mặt trời bừng sáng” tức là một chức năng có quá nhiều dòng vào, ra. Cách khắc phục tình huống này như sau: Gom nhóm hoặc phân rã tiếp một số chức năng chưa hợp lý.
– Tình huống 2: Thông tin đi qua một chức năng mà không bị thay đổi
Cách khắc phục tình huống này như sau: xoá bỏ chức năng không biến đổi thông tin.
Nếu xuất hiện một chức năng có các chức năng con không có liên quan về dữ liệu (không có dòng thông tin nội bộ gắn với nhau hoặc không sử dụng kho dữ liệu chung) thì việc phân bố sơ đồ phân rã chức năng là chưa hợp lý, lúc này cần phải xem xét lại. Ví dụ:
Tác dụng của việc hoàn chỉnh mô hình luồng dữ liệu:
– Xác định nhu cầu thông tin ở mỗi chức năng
– Cho một thiết kế sơ bộ về thực hiện chức năng
– Là phương tiện giao tiếp giữa người phân tích thiết kế và người sử dụng
– Luôn có hai mức diễn tả vật lý và lôgíc. Mức vật lý trả lời câu hỏi như thế nào, mức lôgíc trả lời câu hỏi làm gì