資料流程圖(DFD)是系統分析與設計中的基礎工具。它提供了一種視覺化方式,用以呈現資訊在系統中如何流動,並突出顯示輸入、輸出、儲存與處理過程。對於初學者而言,在嘗試繪製複雜工作流程之前,理解DFD的運作機制至關重要。本指南探討了構建準確圖表所需的基礎原則、元件與規則,且無需依賴特定軟體工具。

資料流程圖是一種結構化分析技術,用於視覺化系統內資料的流動。與專注於控制邏輯與決策點的流程圖不同,DFD僅專注於資料的移動。它回答的問題是:資料來自哪裡,會前往哪裡,以及它會發生什麼變化?
使用DFD的主要目標包括:
當你開始分析一個系統時,目標是建立一個利益相關者能夠理解的模型。一個構建良好的圖表能消除關於資料處理的模糊性。它作為開發人員與分析師的藍圖,確保所有人對資訊的傳遞方式達成共識。
要繪製出有效的圖表,你必須理解四種基本形狀及其含義。這些元件構成了資料流程建模的詞彙。每個元素在系統架構中都具有特定的角色。
外部實體代表模型系統外部的資料來源或目的地。它們也稱為終結者或代理。這些實體與系統互動,但並非系統內部邏輯的一部分。
實體必須是外部的。如果實體屬於系統的內部邏輯,則應以處理流程表示。在此處混淆常導致邊界定義錯誤。
處理流程是將輸入資料轉換為輸出資料的動作。它們代表系統內執行的工作、運算或決策邏輯。處理流程會改變資料的狀態或內容。
每個流程必須至少有一個輸入和一個輸出。僅有輸入而無輸出,或僅有輸出而無輸入的流程是無效的。這分別稱為一個黑洞 或一個奇蹟。
資料儲存是資訊被保留以供後續使用的場所。它們不會轉換資料,僅僅是儲存資料。這可能是資料庫、檔案、實體檔案櫃,甚至是一個暫時的存放區域。
資料流可以進入和離開資料儲存,但儲存本身不會改變資料。它作為被動的儲存庫。在現代系統中,這通常與資料庫表格相關。
資料流代表資料在實體、流程和儲存之間的移動。它顯示資訊傳輸的方向。資料流必須始終標示,以明確指出正在移動的資訊內容。
資料流必須有來源和目的地才能存在,不能懸浮在空中。此外,資料流不應在沒有明確交會點的情況下交叉其他資料流,儘管某些符號系統為了簡化而允許這種情況。
複雜系統無法在單一頁面上表示。為了管理複雜性,資料流程圖(DFD)被分解為不同層級。這種技術稱為分解它讓您可以在保持整體視圖的同時,放大檢視特定區域。
上下文圖是最高層級的視圖。它將整個系統呈現為單一流程。它標示出系統名稱以及與其互動的所有外部實體。此視圖中未顯示任何資料儲存或內部流程。
第1層圖表將上下文圖中的單一流程分解為主要的子流程。它揭示了系統的主要功能區域。這通常是第一個建立的詳細圖表。
第2層圖表進一步分解第1層中的特定流程。若第1層中的某流程較為複雜,則在第2層中擴展為多個子流程。此過程持續進行,直到流程簡單到足以直接實現為止。
| 層級 | 焦點 | 流程數量 | 主要對象 |
|---|---|---|---|
| 上下文 | 系統邊界 | 1 | 管理層、利害關係人 |
| 第一層 | 主要功能 | 3 到 7 | 分析師、設計師 |
| 第二層 | 次級功能 | 變數 | 開發人員、實施人員 |
建立資料流程圖不僅僅是畫線;更關鍵的是遵守邏輯規則。違反這些規則會導致技術上錯誤且令人困惑的圖表。遵循標準的規範可確保文件之間的一致性。
每個元素都必須明確命名,以避免歧義。命名不佳是初學者圖表中最常見的錯誤。
命名的一致性讓讀者能夠在圖表的多個層級之間追蹤資料而不會混淆。
平衡是在從一個層級移動到下一個層級時的一項關鍵規則。父流程的輸入與輸出必須與其分解後產生的子圖的輸入與輸出相匹配。
務必將分解後流程邊界進出的箭頭與父流程進行比對。
資料流會流入和流出資料儲存。然而,資料流不能直接從一個資料儲存傳送到另一個資料儲存,中間必須有流程作為中介。流程必須作為中介來轉換或路由資料。
此規則確保資料不會無目的地被移動。每一次移動都應代表某種邏輯或動作正在執行。
迴圈在程式設計中很常見,但在資料流程圖中,它們可能表示設計上的缺陷。資料流程不應在未經過其他組件的情況下立即返回到同一個處理程序。如果流程返回,表示需要延遲或另一個不同的處理程序。
初學者經常混淆資料流程圖與流程圖。雖然兩者都使用類似方框和箭頭的形狀,但它們的目的本質上是不同的。
| 特徵 | 資料流程圖(DFD) | 流程圖 |
|---|---|---|
| 重點 | 資料移動 | 控制邏輯 |
| 決策點 | 未明確顯示 | 中心組件(菱形) |
| 處理 | 資料轉換 | 步驟順序 |
| 時間 | 不顯示順序 | 顯示順序與時序 |
| 背景 | 系統分析 | 演算法或程序 |
如果你需要顯示什麼資料發生了什麼變化,請使用資料流程圖。如果你需要顯示如何系統接下來如何決定該做什麼,請使用流程圖。使用資料流程圖來繪製控制邏輯,通常會導致圖表混亂且難以閱讀。
一旦你理解了理論,實際應用就會遵循邏輯順序。你不需要昂貴的軟體才能開始;紙和鉛筆用於早期草圖同樣有效。
即使經驗豐富的分析師也會犯錯。意識到常見錯誤,可以在審查階段節省大量時間。
資料流程圖並非適用於所有情況。了解其合適的使用情境,是有效文檔編寫的關鍵。
DFD 不是一次性的交付成果。系統會變更,你的圖表也應隨之更新。維護工作包括確保文件與實際軟體保持同步。
透過維持精確的圖表,可降低未來更新時發生錯誤的風險。過時的圖表往往比沒有圖表更糟糕,因為它會誤導開發團隊。
資料流程圖是用來視覺化系統行為的強大工具。它專注於資料的流動,而非控制邏輯。透過掌握四個核心元件——外部實體、處理程序、資料儲存與資料流,你就能建立清晰且有效的模型。請記得將複雜系統分解為不同層級,維持嚴格的命名規範,並遵守平衡原則。避免常見的陷阱,例如幽靈資料流與控制邏輯。經過練習,你將能自信且清楚地繪製複雜的資訊系統。