什麼是數據流程圖?
數據流圖是信息系統中數據流的圖形表示。它可以描述傳入的數據流、傳出的數據流和存儲的數據。DFD 沒有提及數據如何流經系統。
DFD 技術將高級數據流圖分解為一組更詳細的圖表,提供整個系統的整體視圖,以及更詳細的分解。提供整個系統的整體視圖,以及更詳細的分解,並在適當的情況下,更詳細的分解和描述各個活動,以促進澄清和理解。
結果,系統的範圍和邊界在圖中清楚地表明了。一個完善的 DFD 的最終結果是一個“大圖”,它顯示了每個級別正在發生的事情。
為什麼選擇 DFD?
數據流圖提供了系統的圖形表示,旨在讓
計算機專家和非專家用戶都可以訪問。它是一種非常容易理解的圖形表示,因為它有助於可視化內容。
這些模型使軟件工程師、客戶和用戶能夠在需求分析和規範期間有效地合作。
雖然這意味著我們的客戶需要了解建模技術和構造,但在數據流建模中只使用了有限的構造集,並且應用的規則設計得簡單易懂。
以下是DFD技術的好處:
- 這是一種簡單易懂的圖形技術。
- 技術和非技術受眾更容易理解它。
- 它有助於描述系統的邊界。
- 它有助於將現有系統知識傳達給最終用戶。
- 它提供了系統組件的詳細表示。
- 它用作系統文檔的一部分。
DFD 與流程圖
DFD 和流程圖之間存在顯著差異。基本上,DFD 顯示數據流;流程圖顯示控制流程。
- 流程圖描述了程序模塊中的控制流程,並有助於說明解決問題的步驟。
- DFD 說明了輸入、輸出、數據將如何流經系統以及數據將存儲在何處。它不包含任何控製或分支元素。
DFD 的要素
- 實體——實體是信息數據的來源和目的地。實體由
矩形表示並有自己的名稱。
- 流程——對數據執行的活動和操作由圓形或圓形矩形表示。
- 數據存儲– 數據存儲有兩種變體 – 可以表示為 – 1. 它可以表示為沒有兩條小邊的矩形,2) 或只有一條邊
的開放矩形 缺少邊的開放矩形。
- 數據流——數據的移動用尖箭頭表示。數據的移動顯示為從作為其源的箭頭底部到作為其目的地的箭頭頭部。
數據流示例 – 電子銀行
銀行經理向開立帳戶流程提供新帳戶詳細信息,這導致客戶詳細信息保存在客戶數據庫數據存儲中,而帳戶詳細信息保存在帳戶數據庫數據存儲中。儘管我們在解釋中使用了“結果”一詞,但 DFD 並不意味著因果關係;它所顯示的只是開戶過程可以從銀行經理的界面讀取數據,而無需將數據以特定順序寫入客戶數據庫和帳戶數據庫數據存儲。
使用網上銀行登錄過程的客戶必須以一組登錄憑據的形式提供一些數據,例如用戶名和密碼。
客戶可能會從提款中收到一筆錢或將一筆錢存入存款;在這兩種情況下,這都會導致帳戶數據庫數據存儲中的帳戶餘額更新(儘管這種因果關係無法顯式建模)。
客戶可以啟動資金轉賬流程,並且必須提供賬戶目的地和資金金額。資金轉賬過程可以通過另一個銀行接口將資金金額發送到另一個銀行。
上面顯示的這個 DFD 示例包括五個進程、四個外部接口/角色和兩個數據存儲。它並不是對銀行系統中數據流的詳盡表示,但它足夠全面,可以讓您了解如何構建 DFD。
自上而下的分解技術——多級 DFD
數據流建模技術的一個主要優點是,通過一種稱為自頂向下分解(也稱為“調平”)的技術,可以在抽象層次結構中管理和建模現實世界系統的詳細複雜性。調平是通過繪製一系列越來越詳細的 DFD 來完成的,直到達到所需的詳細程度。
要使 DFD 更加複雜(即,不要過多的過程),您可以創建多級 DFDS。
- 上下文圖包含控制(聚合)系統過程。
- 較高層次的 DFD 不太詳細(更詳細的 DFD 在較低層次詳細闡述)稱為自頂向下分解過程。
- 上下文圖以進程號開始(例如,進程 1、進程 2 等)。
- 編號在下一個所謂的第一級 (DFD) 中繼續。例如,上下文圖中的流程1被細化為一級DFD中的三個流程,編號分別為1.1、1.2和1.3。
- 類似地,第二層中的過程被編號,例如2.1.1、2.1.2、2.1.3和2.1.4。層次結構中進程的編號:
- (1, 2, 3,…);
- (1.1、1.2、1.3、……、2.1、2.2、2.3、……);
- (1.1.1、1.1.2、1.1.3、……)。
- 層數取決於模型系統的大小。
當對 DFD 執行自上而下的分解到較低級別的 DFD 時,輸入和輸出必須在 DFD 的級別之間保持不變。例如,級別 n 和 n+1 必須具有相同的輸入和輸出
DFD 示例– 食品訂購系統
上下文圖(0 級 – DFD)
上下文圖顯示了系統的概述以及它如何與“世界”的其他部分交互。上下文圖是只顯示頂層的數據流圖,稱為第 0 層。在這一層,只有一個可見的流程節點表示完整系統的功能,即它如何與外部實體交互。上下文圖的一些好處是。
- 顯示系統邊界的概覽
- 通過其簡單的符號,它不需要技術知識即可理解
- 由於符號有限,易於繪製、修改和詳細說明
下圖顯示了為一個食品訂購系統繪製的上下文圖(頂層數據流圖)。
- 它包含一個表示系統模型的過程(形狀),在本例中為“食品訂購系統”。
- 它還顯示了將與系統交互的參與者,稱為外部實體。
在此示例中,供應商、廚房、經理和客戶是與系統交互的實體。
在流程和外部實體之間,存在數據流(連接器),表明實體和系統之間存在信息交換。
Context DFD 是數據流模型的入口點。它包含一個且只有一個進程,並且不顯示任何數據存儲。
1級DFD
1 級 DFD 提供了比上下文圖更詳細的系統視圖。通過顯示構成系統的主要子流程和數據存儲。
下圖顯示了 1 級 DFD,它是上下文 DFD 中顯示的食品訂購系統流程的分解(即分解)。通讀該圖,然後我們將根據它介紹一些關鍵概念。
食品訂單系統數據流程圖的示例包含三個流程、四個外部實體和兩個數據存儲。
- 根據圖表,我們知道客戶可以下訂單。食品訂購流程接收訂單,將其轉發到廚房,將其存儲在訂單數據存儲中,並將更新的庫存詳細信息存儲在庫存數據存儲中。該過程還向客戶提供帳單。
- 經理可以通過生成報告流程接收報告,該流程將庫存詳細信息和訂單分別作為庫存和訂單數據存儲的輸入。
- 經理還可以通過提供庫存訂單來啟動訂單庫存流程。此過程將庫存訂單轉發給供應商並將更新的庫存詳細信息存儲在庫存數據存儲中。
邏輯與物理 DFD
數據流圖分為邏輯數據流圖和物理數據流圖。邏輯 DFD 側重於業務及其運作方式。它描述了發生的業務事件以及每個事件所需和生成的數據。另一方面,物理 DFD 顯示了系統將如何實現。以下是邏輯 DFD 和物理 DFD 之間的主要區別:
邏輯DFD
- 邏輯 DFD 描述了業務的運作方式。
- 流程代表業務活動。
- 無論數據如何存儲,數據存儲都表示數據的集合。
- 這就是業務控制的方式。
物理 DFD
-
- 物理 DFD 描述了系統將如何實現(或當前系統如何運行)。
- 過程代表程序、程序模塊和手動程序。
- 數據存儲代表物理文件和數據庫、手動文件。
- 它顯示了用於驗證輸入數據、獲取記錄、確保流程成功完成以及系統安全的控制。
- 物理 DFD 指定物理文檔的實際流程,而邏輯 DFD 僅關注業務術語中的信息流。
例如,Physical DFD 指定物理文檔的實際流程,而邏輯 DFD 僅關注業務術語中的信息流。
此外,邏輯 DFD 消除了僅涉及物理活動而不轉換數據的物理過程。
邏輯 DFD 示例 – 雜貨店
邏輯 DFD 說明了所涉及的過程,而沒有詳細說明活動的物理實現。
實體 DFD 示例 – 雜貨店
- 實物 DFD 顯示使用了條形碼 – 大多數雜貨店商品上的 UPC PRICE 代碼
- 此外,物理 DFD 提到了手動過程,例如掃描,解釋說臨時文件用於保存項目的小計
- 可以用現金、支票或借記卡付款
最後,它通過它的名字來指代收據,CASH REGISTER RECEIPT
數據流圖的提示和注意事項
- 不要讓它太複雜;通常 5-7 人可以管理流程
- 數據存儲必須與至少一個進程相關聯
- 未經處理的兩個外部實體之間不應存在數據流
- 有輸入但沒有輸出的過程被認為是黑洞過程。
- 過程標籤應該是動詞短語;數據存儲區由名詞表示。
- 外部實體必須與至少一個流程相關聯
- DFD 是非確定性的——編號不一定表示順序,在與用戶討論時有助於識別流程
- 數據存儲不應連接到外部實體,否則,這意味著您正在讓外部實體直接訪問您的數據文件
資源