DFD 會應用於系統開發的各個階段,從最初的需求数收集到詳細設計,甚至在系統文件中。它們幫助利益相關者,包括開發人員、分析師和終端使用者,清楚理解資料在系統內如何被處理和轉換。透過視覺化這些互動,DFD 可促進更好的溝通,識別潛在的瓶頸或效率低下之處,並確保系統符合其功能需求。
本教程旨在提供一份全面的指南,幫助您理解並創建資料流程圖。我們將深入探討支撐 DFD 的關鍵概念,分析其各組件之間的關係,並提供實用的技巧與指導,協助您創建有效且具洞察力的圖表。無論您是初次接觸 DFD,還是希望提升技能,本教程都將為您提供在專案中有效運用 DFD 所需的知識與技巧。
DFD 元素符號
資料流程圖(DFD)使用各種符號來表示系統內的不同元素。您提供的圖片展示了四種不同的 DFD 元素符號:Yourdon DeMarco、Gane & Sarson、SSADM,以及 Yourdon 和 Coad。讓我們逐一探討每種符號及其對外部實體、流程、資料儲存和資料流的表示方式:
1. Yourdon DeMarco 符號
- 外部實體:以標有「實體」的矩形方框表示。代表系統控制範圍外的資料來源或目的地。
- 流程:以標有「流程」的圓形表示。代表系統內對資料執行的操作或轉換。
- 資料儲存:以標有「資料儲存」的開口矩形表示。代表資料儲存的位置,且可被流程存取。
- 資料流:以箭頭表示,顯示資料在實體、流程與資料儲存之間移動的方向。
2. Gane & Sarson 符號
- 外部實體:以標有「實體」的矩形方框表示,與 Yourdon DeMarco 相似。
- 流程:以標有「流程」及數字(例如 1.0)的圓角矩形表示,數字代表流程層級或順序。
- 資料儲存:以左側帶有垂直線的開口矩形表示,標有「資料儲存」。垂直線上可能包含參考編號(例如 D1)。
- 資料流:以箭頭表示,顯示元素之間資料流的方向。
3. SSADM(結構化系統分析與設計方法)符號
- 外部實體:以標有「實體」的橢圓表示,使其與其他符號區分開來。
- 流程:以標有「流程」的圓角矩形表示,與 Gane & Sarson 相似,但無額外編號。
- 資料儲存:以標有「資料儲存」的矩形表示,與 Gane & Sarson 不同,無垂直線。
- 資料流:以箭頭表示資料移動的方向。
4. Yourdon 與 Coad 表示法
- 外部實體:以標示「實體」的矩形方框表示,與 Yourdon DeMarco 和 Gane & Sarson 相似。
- 處理:以標示「處理」的圓形表示,與 Yourdon DeMarco 相似。
- 資料儲存:以標示「資料儲存」的開口矩形表示,與 Yourdon DeMarco 相似。
- 資料流:以箭頭圖示表示元素之間資料流的方向。
主要差異
- 形狀與標示:每種表示法對外部實體、處理與資料儲存使用不同的形狀與標示規範。
- 處理的表示方式:Gane & Sarson 與 SSADM 使用圓角矩形表示處理,而 Yourdon DeMarco 與 Yourdon 與 Coad 則使用圓形。
- 資料儲存的表示方式:Gane & Sarson 包含一條帶有參考編號的垂直線,而其他表示法則使用簡單的矩形。
理解這些表示法,可讓分析師與設計師選擇最符合專案需求與偏好的一種,確保系統設計的溝通清晰且有效。

關鍵概念
1. 外部實體
外部實體是與系統互動但不受其控制的資料來源或目的地。它們可以是使用者、其他系統或外部資料庫。
- 範例:在提供的圖示中,「客戶」與「經紀人」為外部實體。
2. 處理
處理將輸入資料轉換為輸出資料。它代表對資料執行的一項或一組操作。
- 範例:「輸入訂單」處理以「採購單」為輸入,產生「訂單資料」為輸出。
3. 資料儲存
資料儲存存放可由處理存取與修改的資料。它代表資料儲存以供未來使用的儲存位置。
- 範例: 「訂單」資料儲存區儲存訂單細節,可由流程讀取或更新。
4. 資料流程
資料流程代表外部實體、流程與資料儲存區之間的資料移動。它們以箭頭表示,顯示資料移動的方向。
- 範例: 從「客戶」到「輸入訂單」的箭頭,代表「採購訂單」從客戶流向流程。
DFD元件之間的關係
外部實體至流程
- 互動: 外部實體向流程提供輸入資料,或從流程接收輸出資料。
- 範例: 「客戶」向「輸入訂單」流程提供「採購訂單」。
流程至資料儲存區
- 互動: 流程從資料儲存區讀取或寫入資料。
- 範例: 「輸入訂單」流程將「訂單資料」寫入「訂單」資料儲存區。
資料儲存區至流程
- 互動: 資料儲存區在需要時向流程提供資料。
- 範例: 「訂單」資料儲存區向需要的流程提供訂單細節。
流程至外部實體
- 互動: 流程將輸出資料傳送給外部實體。
- 範例: 「輸入訂單」流程將訂單確認傳送給「客戶」。

自上而下的分解
此圖表代表一個更詳細的訂單處理系統資料流程圖(DFD),專注於客戶、經紀人與訂單建立流程之間的互動。以下是各元件及其互動的說明:

-
外部實體:
- 客戶: 此實體透過下訂單來啟動流程。
- 經紀人: 此實體在訂單流程中擔任中介角色,從客戶接收交易細節,並將訂單細節傳送到系統。
-
流程:
- 線上下單: 此流程處理客戶透過線上方式下的訂單。它直接從客戶接收訂單細節。
- 交易細節: 此流程管理交易細節,接收來自客戶的輸入,並轉發給經紀人。
- 電話下單: 此流程處理透過電話下的訂單。它從經紀人接收訂單細節。
-
資料儲存:
- 訂單細節: 此資料儲存存放透過線上流程下單的訂單細節。
- 交易細節: 此資料儲存存放已處理並轉發給經紀人的交易細節。
-
資料流:
- 訂單細節(客戶至線上下單): 此資料流代表客戶在線上訂單時提供的訂單資訊。
- 交易細節(客戶至交易細節): 此資料流代表客戶提供的交易資訊。
- 交易細節(交易細節至經紀人): 此資料流代表正被轉發給經紀人的交易資訊。
- 訂單細節(經紀人至電話下單): 此資料流代表經紀人在透過電話下單時提供的訂單資訊。
-
流程編號:
- 0, 1, 2: 這些數字可能表示系統內流程的順序或識別碼。流程 0 似乎是一個中心流程,與線上和電話訂單流程都有互動。
解釋
- 該圖表說明了一個訂單可透過線上或電話方式下達的系統。
- 線上訂單由「下訂單(線上)」流程直接處理,並儲存訂單細節。
- 對於電話訂單,流程包括一位中介人,他從客戶處接收交易細節,並將訂單細節轉交至「下訂單(電話)」流程。
- 中介人扮演中介角色,協助電話訂單的交易與下單流程。
- 重點在於捕捉與管理訂單和交易細節,確保無論訂單方式為線上或電話,都能正確處理與儲存。
此資料流程圖提供了訂單處理系統的更詳細視圖,突顯了不同實體與流程在處理訂單與交易中的角色。
小技巧與提示
- 從簡單開始: 從上下文層級的資料流程圖開始,以掌握系統的整體概況,並逐步過渡到更詳細的層級。
- 一致性: 對流程、資料儲存與資料流使用一致的命名規則,以避免混淆。
- 清晰度: 確保資料流有明確標示,且箭頭方向正確,以顯示資料流動方向。
- 模組化: 將複雜流程拆解為較小且易於管理的子流程,以提升清晰度與理解度。
- 驗證: 定期與相關人員驗證資料流程圖,以確保其準確反映系統的資料流動。
指引
- 識別邊界: 明確定義系統邊界,以區分內部流程與外部實體。
- 專注於資料: 強調資料流動,而非控制流程或操作順序。
- 細節層級: 從高階資料流程圖(第 0 層)開始,逐步細化至更詳細的層級(第 1 層、第 2 層等)。
- 使用標準符號: 遵循流程、資料儲存、外部實體與資料流的標準符號,以維持清晰度與一致性。
- 記錄假設:記錄與資料流程圖相關的任何假設或限制,以提供背景資訊並避免誤解。
結論
資料流程圖不僅僅是視覺輔助工具;它們是任何參與系統分析與設計的人不可或缺的工具。透過提供一種清晰且結構化的方式來表示資料流,DFD 可以彌合抽象系統需求與具體實作細節之間的差距。它們讓利害關係人能夠視覺化系統內資料的處理方式,識別改進的領域,並確保系統設計與其預期功能保持一致。
在本教程中,我們探討了 DFD 的基本概念,包括外部實體、流程、資料儲存與資料流。我們分析了這些元件之間的互動方式,並提供了創建有效 DFD 的實用技巧與指南。透過掌握這些概念與技巧,您不僅能創建準確反映系統資料流的 DFD,還能使其在整個開發週期中成為寶貴的溝通工具。
當您繼續使用 DFD 時,請記住清晰性、一致性與細節關注是關鍵。定期與利害關係人核對您的圖表,並在對系統的理解不斷演進時,不要猶豫去迭代與優化它們。透過練習與扎實的 DFD 原則基礎,您將能有效應對最複雜的系統分析挑戰。擁抱資料流程圖的力量,並在您的系統設計工作中開啟全新的洞察與效率層次。