「數據架構」數據流程圖:實例-訂餐系統

2019-12-20     首席架構師

數據流圖(DFD)提供了系統內信息流(即數據流)的可視化表示。通過繪製數據流程圖,您可以了解由參與系統流程的人員提供並交付給他們的信息、完成流程所需的信息以及需要存儲和訪問的信息。本文以一個訂餐系統為例,對數據流圖(DFD)進行了描述和說明。

食品訂購系統示例

上下文

上下文關係圖是只顯示頂層的數據流關係圖,也稱為0級。在這個層次上,只有一個可見的流程節點,它代表了一個完整系統的功能,包括它如何與外部實體交互。上下文關係圖的一些好處是:

  • 顯示系統邊界的概述
  • 使用簡單的符號不需要任何技術知識
  • 簡單的繪製,修改和闡述作為其有限的表示法

下圖顯示了為食品訂購系統繪製的上下文數據流程圖。它包含一個表示要建模的系統的流程(形狀),在本例中是「食品訂購系統」。它還顯示將與系統交互的參與者(稱為外部實體)。在本例中,供應商、廚房、經理和客戶是將與系統交互的實體。在流程和外部實體之間有數據流(連接器),表明實體和系統之間存在信息交換。

上下文DFD是數據流模型的入口。它只包含一個進程,並且不顯示任何數據存儲。

1級過程

下圖顯示了第一級DFD,它是在DFD上下文中顯示的食品訂購系統流程的分解(即分解)。通讀這張圖,然後我們將介紹一些基於這張圖的關鍵概念。

食品訂單系統數據流圖示例包含三個流程、四個外部實體和兩個數據存儲。

根據圖表,我們知道客戶可以下訂單。訂單食品流程接收訂單,將其轉發到廚房,將其存儲在訂單數據存儲中,並將更新後的庫存詳細信息存儲在庫存數據存儲中。該流程還向客戶交付帳單。

經理可以通過Generate Reports流程接收報告,該流程分別從庫存數據存儲和訂單數據存儲中獲取庫存細節和訂單。

經理還可以通過提供庫存訂單來啟動訂單庫存流程。流程將庫存訂單轉發給供應商,並將更新後的庫存詳細信息存儲在庫存數據存儲中。

數據流程圖提示和注意事項

提示

  1. 過程標籤應該是動詞短語;數據存儲由名詞表示
  2. 數據存儲必須至少與一個進程相關聯
  3. 外部實體必須與至少一個流程相關聯
  4. 不要讓它變得太複雜;通常5 - 7個普通人可以管理流程
  5. DFD是不確定的——編號不一定表示順序,它在與用戶討論時用於標識流程
  6. 數據存儲不應該連接到外部實體,否則,這將意味著您將讓外部實體直接訪問您的數據文件
  7. 如果沒有經過一個流程,數據流不應該存在於兩個外部實體之間
  8. 有輸入但無輸出的過程被認為是黑洞過程

注意事項

不要混淆數據流和進程流

有些設計人員可能在看到從數據存儲連接到流程的連接器時感到不舒服,因為沒有看到數據請求的步驟以某種方式顯示在圖中。其中一些將試圖通過在流程和數據存儲之間添加連接器來表示請求,並將其標記為「請求」或「請求某些東西」,這是錯誤的。

請記住,數據流圖是為表示信息交換而設計的。數據流圖中的連接器用於表示數據,而不是表示流程流、步驟或其他任何東西。當我們將結束於數據存儲的數據流標記為「請求」時,這意味著我們將請求作為數據傳遞到數據存儲中。雖然這可能是在實現級別的DBMS做支持的使用功能,而攝入一些值作為參數並返回一個結果,在數據流圖中,我們傾向於把數據存儲作為唯一的數據夾,並不擁有任何處理能力。如果您想對系統流或流程流建模,那麼可以使用UML活動圖或BPMN業務流程圖。如果希望對數據存儲的內部結構建模,請使用實體關係圖。

資源

  • Food-Ordering-System.vpp

本教程的讀者也可以閱讀

  1. 什麼是數據流程圖(DFD)?如何繪製DFD?
  2. 如何編寫有效的用例?
  3. 如何使用ERD對關係數據庫設計建模?
  4. 如何開發現有的和將來的業務流程?
  5. 數據流程圖與實例-客戶服務系統

原文:https://www.visual-paradigm.com/tutorials/data-flow-diagram-example-food-ordering-system.jsp

本文:http://jiagoushi.pro/data-flow-diagram-examples-food-ordering-system

討論:請加入知識星球【首席架構師圈】或者飛聊小組【首席架構師智庫】

文章來源: https://twgreatdaily.com/zh-hk/dMurKG8BMH2_cNUgUzP4.html