「數據架構」5分鐘學會數據流程圖:客戶服務系統示例

2019-12-21     首席架構師

數據流圖(DFD)提供了系統內信息流(即數據流)的可視化表示。通過創建一個數據流圖,您可以告訴參與系統流程的人員所提供和交付的信息、完成流程所需的信息以及需要存儲和訪問的信息。數據流圖在軟體工程中得到了廣泛的應用。您可以在信息系統建模中使用DFD。本文以客戶服務系統為例,對數據流圖(DFD)進行了描述和說明。

CS系統示例

數據流圖是一個層次圖,包括:

  • 上下文關係圖(概念上為零級)
  • 第1層的過程
  • 以及可能的第2級DFD和功能分解的進一步級別,這取決於系統的複雜性

上下文

下圖顯示了為鐵路公司的客戶服務系統繪製的上下文數據流程圖。它包含一個表示要建模的系統的流程(形狀),在本例中是「CS系統」。它還顯示將與系統交互的參與者(稱為外部實體)。在本例中,CS Assistant和Passenger是將與系統交互的兩個實體。在流程和外部實體之間有數據流(連接器),表明實體和系統之間存在信息交換。

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

1級過程

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

CS系統數據流圖示例包含四個流程、兩個外部實體和四個數據存儲。雖然沒有控制數據流圖中形狀位置的設計指導原則,但我們傾向於將流程放在中間,將數據存儲和外部實體放在兩側,以便於理解。

由圖可知,乘客可以通過查詢運輸明細流程接收運輸明細,具體由數據存儲、運輸明細和鐵路實時統計提供。存儲在運輸明細中的數據是持久性數據(由標籤「D」表示),而存儲在鐵路實時統計中的數據是短暫保存的瞬態數據(由標籤「T」表示)。標註形狀用於列出乘客可以查詢的詳細信息。

CS Assistant可以啟動購買紀念品流程,將訂單細節存儲在訂單數據存儲中。雖然購買紀念品的是顧客本人,但是進入系統存儲訂單細節的是CS助理。因此,我們使數據流從CS助理到購買紀念品流程。

CS Assistant還可以通過提供訂單細節來啟動購買過程,這些細節將再次存儲在訂單數據存儲中。數據流圖是一個高度抽象的高級圖。這裡所繪製的數據存儲順序並不一定意味著資料庫中的實際訂單資料庫或訂單表。訂單細節的物理存儲方式將在以後實現系統時決定。

最後,CS Assistant可以通過提供事件和物品細節來啟動報告丟失過程,並將信息存儲在物品丟失資料庫中。

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

用D、M和T表示數據類型

在數據流圖中繪製的每個數據存儲都以字母為前綴,默認情況下為'D'。字母表示數據存儲所保存的數據的類型。字母「D」用於表示持久的計算機化數據,這可能是典型信息系統中最常見的數據類型。除了計算機化的數據,數據還可以被暫時保存一小段時間。我們稱這種數據為暫態數據,用字母「T」表示。有時,數據是不用計算機來存儲的。我們稱這種數據為人工數據,用字母M表示。最後,如果數據在不使用計算機的情況下存儲,並且保存時間很短,則稱為手動暫態數據,用T(M)表示。

注意細節的層次

在這個數據流圖示例中,在標記數據時多次使用了單詞「details」。我們有「運輸詳情」和「訂單詳情」。如果我們把它們明確地寫為「路線信息、列車時間和延誤」、「紀念品名稱、數量和數量」、「票款類型和數量」會怎樣?這是正確的嗎?這個問題沒有明確的答案,但在做決定時試著問自己一個問題。你為什麼要畫DFD?

在大多數情況下,數據流程圖是在系統開發的早期階段繪製的,其中許多細節還有待確認。一般術語如「細節」、「信息」、「證書」的使用當然會留下討論的空間。然而,使用通用術語可能會缺乏細節,使設計失去其實用性。所以這取決於你設計的目的。

不要透支

在數據流圖中,我們關注的是系統和外部方之間的交互,而不是接口之間的內部通信。因此,接口和使用的數據存儲之間的數據流被認為超出了範圍,不應該顯示在圖中。

不要混淆數據流和進程流

當遇到從數據存儲連接到流程的連接器時,如果沒有在關係圖上顯示指定的數據請求步驟,一些設計人員可能會感到不舒服。有些設計人員會嘗試將請求附加到流程和數據存儲之間的連接器上,並將其標記為「請求」或「對某些東西的請求」,這當然是不必要的。

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

資源

  • Customer-Service-System.vpp

本教程的讀者也可以閱讀

  • 什麼是數據流程圖(DFD)?如何繪製DFD?
  • 如何編寫有效的用例?
  • 數據流程圖:實例-訂餐系統
  • 如何使用ERD對關係數據庫設計建模?
  • 如何開發現有的和將來的業務流程?

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

本文:http://jiagoushi.pro/data-flow-diagram-examples-customer-service-system

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

文章來源: https://twgreatdaily.com/zh-tw/QtoPMW8BMH2_cNUgdqBw.html