Mô hình luồng dữ liệu của hệ thống

1. Khái quát

Mục đích :

  • Bổ xung khiếm khuyết của mô hình phân rã chức năng bằng việc bổ xung 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.

Phương pháp : Phương pháp phân tích top-down. Hệ thống được mô tả bởi nhiều DFD ở nhiều mức

2. Định nghĩa

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

3. Các thành phần

3.1. Chức năng (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 DFD.

– Cách đặt tên: Động từ + bổ ngữ.

VD: Chấp nhận nguồn hàng, ghi kho vật liệu…

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”.

Bài tập: Xác định luồng dữ liệu của chức năng quản lý khách hàng và chức năng quản lý phương tiện trong hệ thống quản lý bến xe bài tập 1

3.2. Kho dữ liệu

– Định nghĩa: Là nơi biểu diễn thông tin cần cất giữ, để một hoặc nhiều chức năng sử dụng chúng.

– Cách đặt tên : danh từ + tính từ. Chỉ nội dung dữ liệu trong kho

– Biểu diễn : cặp đường thẳng song song chứa thông tin cần cất giữ

Hoá đơn

Quan hệ giữa kho dữ liệu, chức năng và luồng dữ liệu

Ví dụ: Một người muốn tra cứu một danh sách   xử lý vừa cập nhật lại kinhotừ 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 (hình c).

Bài tập: Xác định kho dữ liệu trong hệ thống quản lý bến xe

3.3. Tác nhâ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 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

Bài tập: Xác định tác nhân ngoài trong hệ thống quản lý bến xe

3.4. Tác nhâ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:

Mô hình luồng dữ liệu cho hệ thống quản lý bến xe khách

4. Một số quy tắc vẽ biểu đồ luồng dữ liệu

  • 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, đ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ột đối tượng chỉ có cái vào thì chỉ có thể là tác nhân ngoài (đích)
  • Không có các trường hợp sau

5. Xây dựng mô hình luồng dữ liệu

a.  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

VD: Mô hình dữ liệu mức khung cảnh của hệ cung ứng vật tư

Mô hình dữ liệu mức khung cảnh của hệ cung ứng vật tư

b. 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.

VD: Mô hình luồng dữ liệu mức đỉnh của hệ cung ứng vật tư

Mô hình luồng dữ liệu mức đỉnh của hệ cung ứng vật tư c.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ụ: 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 1 (đặt hàng)

Mô hình luồng dữ liệu mức dưới đỉnh của chức năng Đặt hàng

+ Chức năng 2

+ Chức năng 3

6. Chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic

  • Trong thực tế người ta thấy tạo ra một mô hình DFD cho hệ thống thực dưới dạng vật lý không có lợi:
    • 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 logic loại những ràng buộc, các yếu tố vật lý, nó 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ỏ:
    • 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.

7. Chuyển từ DFD của hệ thống cũ sang DFD 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ừ DFD của hệ thống cũ sang DFD 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ổ 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ổ xung

+ 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ổ xung : Kho chứa vật tư

+ Sửa lại DFD của hệ thống

8. Hoàn chỉnh mô hình DFD

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.

Có thể xảy ra các tình huống sau nên tránh:

– Hiệu ứng mặt trời bừng sáng : Một chức năng có quá nhiều dòng vào ra. Khắc phục : Gom nhóm hoặc phân rã tiếp một số chức năng chưa hợp lý. VD:

– Thông tin đi qua một chức năng mà không bị thay đổi

VD :

Khắc phục xoá bỏ chức năng không biến đổi thông tin.

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) => Phân bố sơ đồ phân rã chức năng chưa hợp lý cần xem xét lại.

Ví dụ

Chú ý khi thay đổi mô hình luồng dữ liệu thì phải sửa lại mô hình phân rã chức năng cho phù hợp.

Tác dụng

– 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ì.

9.Phân mức

– Sơ đồ luồng dữ liệu đầy đủ của hệ thống là rất phức tạp không thể xếp gọn trong một trang => Cần dùng tới kỹ thuật phân rã sơ đồ theo một số mức.

– Các mức được đánh số thứ tự, mức cao nhất (mức khung cảnh) là 0 sau đó đến mức đỉnh 1, các mức dưới đỉnh 2,3,…

Mức 0: Tên chức năng là tên toàn bộ hệ thống.

Mức 1: Mỗi chức năng được gắn với một số và sẽ được mang tiếp theo với các chỉ số chỉ mức phụ thuộc, xem như một cách đặt tên theo số cho từng chức năng con của nó. Bắt đầu ở mức 1 mới có các kho dữ liệu.

VD:

10. Hạn chế của mô hình luồng dữ liệu

– Không chỉ ra được yếu tố thời gian (Ví dụ:Thông tin chuyển từ tiến trình này sang tiến trình khác hết bao nhiêu thời gian)

– Không xác định được trật tự thực hiện các chức năng.

– Không chỉ ra được yếu tố định lượng đối với dữ liệu có liên quan (tối đa và tối thiểu những thông tin là cơ bản trong quá trình phân tích)