「数据架构」什么是数据流程图(DFD)?如何绘制DFD?
什么是數(shù)據(jù)流程圖(DFD)?
一圖勝千言。數(shù)據(jù)流圖(DFD)是可視化系統(tǒng)中信息流的傳統(tǒng)方法。一個(gè)整潔而清晰的DFD可以圖形化地描述大量的系統(tǒng)需求。它可以是手動(dòng)的,自動(dòng)的,或者兩者的結(jié)合。
它顯示了信息是如何進(jìn)入和離開系統(tǒng)的,是什么改變了信息,以及信息存儲(chǔ)在哪里。DFD的目的是顯示整個(gè)系統(tǒng)的范圍和邊界。它可以作為系統(tǒng)分析人員與系統(tǒng)中充當(dāng)重新設(shè)計(jì)系統(tǒng)起點(diǎn)的任何人員之間的通信工具。
它通常以一個(gè)上下文圖作為DFD圖的第0級(jí)開始,DFD圖是整個(gè)系統(tǒng)的簡(jiǎn)單表示。為了進(jìn)一步詳細(xì)說(shuō)明,我們深入到第1層圖,其中包含從系統(tǒng)的主要功能分解而來(lái)的較低層功能。當(dāng)需要進(jìn)一步分析時(shí),這可能會(huì)繼續(xù)發(fā)展成一個(gè)2級(jí)圖。升級(jí)到3級(jí)、4級(jí)等等是可能的,但超出3級(jí)的情況并不常見。請(qǐng)記住,分解特定函數(shù)的細(xì)節(jié)級(jí)別取決于該函數(shù)的復(fù)雜性。
圖中的符號(hào)
現(xiàn)在,我們想簡(jiǎn)要地向您介紹一些您將在下面的教程中看到的圖表符號(hào)。
外部實(shí)體
外部實(shí)體可以表示人、系統(tǒng)或子系統(tǒng)。它是某些數(shù)據(jù)的來(lái)源或流向。就業(yè)務(wù)流程而言,它是我們所研究的系統(tǒng)的外部。由于這個(gè)原因,人們習(xí)慣于在圖的邊緣繪制外部實(shí)體。
過(guò)程
流程是進(jìn)行數(shù)據(jù)操作和轉(zhuǎn)換的業(yè)務(wù)活動(dòng)或功能。可以將流程分解為更細(xì)的細(xì)節(jié)級(jí)別,以表示如何在流程中處理數(shù)據(jù)。
數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)存儲(chǔ)表示進(jìn)程所需和/或產(chǎn)生的持久數(shù)據(jù)的存儲(chǔ)。下面是一些數(shù)據(jù)存儲(chǔ)的例子:成員表單、數(shù)據(jù)庫(kù)表等。
數(shù)據(jù)流
數(shù)據(jù)流表示信息流,其方向由箭頭表示,箭頭顯示在流連接器的末端。
在本教程中我們將做什么?
在本教程中,我們將向您展示如何繪制上下文關(guān)系圖以及級(jí)別1的關(guān)系圖。
如何繪制上下文級(jí)DFD?
要?jiǎng)?chuàng)建新的DFD,從工具欄中選擇Diagram > new。
在New Diagram窗口中,選擇Data Flow Diagram并單擊Next。
輸入上下文作為關(guān)系圖名稱,然后單擊OK進(jìn)行確認(rèn)。
我們現(xiàn)在畫出第一個(gè)過(guò)程。從關(guān)系圖工具欄中,將流程拖動(dòng)到關(guān)系圖上。命名新的過(guò)程系統(tǒng)。
接下來(lái),讓我們創(chuàng)建一個(gè)外部實(shí)體。將鼠標(biāo)指針?lè)旁谙到y(tǒng)上。按下并拖出右上角的資源目錄按鈕。
釋放鼠標(biāo)按鈕并從資源目錄中選擇雙向數(shù)據(jù)流->外部實(shí)體。
將新的外部實(shí)體命名為Customer。
現(xiàn)在,我們將對(duì)系統(tǒng)訪問(wèn)的數(shù)據(jù)庫(kù)進(jìn)行建模。使用資源目錄創(chuàng)建來(lái)自系統(tǒng)的數(shù)據(jù)存儲(chǔ),其中包含雙向數(shù)據(jù)流。
命名新的數(shù)據(jù)存儲(chǔ)庫(kù)存。
創(chuàng)建另外兩個(gè)數(shù)據(jù)存儲(chǔ),Customer和Transaction,如下所示。我們剛剛完成了上下文關(guān)系圖。
如何繪制一級(jí)DFD?
我們將分解系統(tǒng)過(guò)程以形成一個(gè)新的DFD,而不是從頭創(chuàng)建另一個(gè)圖。右鍵單擊System并從彈出菜單中選擇分解。
連接到所選流程(系統(tǒng))的數(shù)據(jù)存儲(chǔ)和/或外部實(shí)體將在第1級(jí)DFD中引用。因此,當(dāng)提示您將它們添加到新圖表中時(shí),單擊Yes以確認(rèn)。
注意:新的DFD最初看起來(lái)應(yīng)該與上下文關(guān)系圖非常相似。每個(gè)元素都應(yīng)該保持不變,除了系統(tǒng)過(guò)程(從這個(gè)新的DFD分解而來(lái))現(xiàn)在已經(jīng)沒(méi)有了,取而代之的是一個(gè)空格(待闡述)。
重新命名新的DFD。右鍵點(diǎn)擊它的背景并選擇Rename…在關(guān)系圖的名稱框中,輸入Level 1 DFD并按回車鍵。
在中心創(chuàng)建三個(gè)流程(流程訂單、發(fā)貨、收貨),如下圖所示。那是系統(tǒng)過(guò)程的老地方,我們把它們放在那里來(lái)闡述系統(tǒng)。
連接數(shù)據(jù)流的連接線
本節(jié)中的其余步驟是關(guān)于連接圖中的模型元素的。例如,客戶在下訂單進(jìn)行處理時(shí)提供訂單信息。
將鼠標(biāo)指針?lè)旁诳蛻羯戏健M铣鲑Y源目錄圖標(biāo)并按進(jìn)程順序釋放鼠標(biāo)按鈕。
從資源目錄中選擇數(shù)據(jù)流。
新訂單信息有流程說(shuō)明。
同時(shí),流程訂單流程也從數(shù)據(jù)庫(kù)中接收客戶信息來(lái)處理訂單。
使用資源目錄創(chuàng)建從客戶到處理訂單的數(shù)據(jù)流。
可選:如果您愿意,可以將數(shù)據(jù)流標(biāo)記為“客戶信息”。但是,由于這個(gè)數(shù)據(jù)流在視覺(jué)上是相當(dāng)不言自明的,我們將在這里省略它。
通過(guò)組合來(lái)自客戶(外部實(shí)體)的訂單信息和來(lái)自客戶(數(shù)據(jù)存儲(chǔ))的客戶信息,Process order (Process)然后在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)事務(wù)記錄。創(chuàng)建從流程順序到事務(wù)的數(shù)據(jù)流。
繪畫技巧:
若要重新排列連接線,請(qǐng)將鼠標(biāo)指針置于要添加軸心點(diǎn)的位置。然后你會(huì)看到一個(gè)氣泡在你的鼠標(biāo)指針。按下并拖動(dòng)到需要的位置。
到目前為止,您的圖表應(yīng)該是這樣的。
一旦存儲(chǔ)了事務(wù),接下來(lái)就是傳遞過(guò)程。因此,創(chuàng)建一個(gè)來(lái)自Process Order (Process)的數(shù)據(jù)流來(lái)交付好(Process)。
發(fā)貨時(shí)需要閱讀交易信息(即訂單號(hào),以便包裝正確的產(chǎn)品發(fā)貨)。從事務(wù)(數(shù)據(jù)存儲(chǔ))創(chuàng)建一個(gè)數(shù)據(jù)流來(lái)交付好(流程)。
注意:如果缺少空間,請(qǐng)隨意移動(dòng)形狀以騰出空間。
Ship Good還需要讀取客戶的送貨地址信息。從客戶(數(shù)據(jù)存儲(chǔ))創(chuàng)建一個(gè)數(shù)據(jù)流來(lái)交付好(流程)。
Ship Good然后更新庫(kù)存數(shù)據(jù)庫(kù)以反映所運(yùn)貨物。創(chuàng)建一個(gè)從發(fā)貨(流程)到庫(kù)存(數(shù)據(jù)存儲(chǔ))的數(shù)據(jù)流。更新的產(chǎn)品記錄。
一旦訂單到達(dá)客戶手中,發(fā)放收據(jù)的過(guò)程就開始了。其中,收據(jù)是根據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的事務(wù)記錄準(zhǔn)備的。因此,讓我們從事務(wù)(數(shù)據(jù)存儲(chǔ))創(chuàng)建一個(gè)數(shù)據(jù)流來(lái)發(fā)出收據(jù)(流程)。
然后向客戶發(fā)出收據(jù)。讓我們創(chuàng)建一個(gè)從問(wèn)題收據(jù)(流程)到客戶(外部實(shí)體)的數(shù)據(jù)流。命名數(shù)據(jù)流接收。
您剛剛完成了第一級(jí)圖的繪制,它應(yīng)該是這樣的。
如何提高DFD的可讀性?
上面完成的圖表看起來(lái)有點(diǎn)死板和忙碌。在本節(jié)中,我們將對(duì)連接器進(jìn)行一些更改以提高可讀性。
右鍵單擊圖表(級(jí)別1 DFD)并選擇連接器>曲線。圖中的連接器現(xiàn)在用曲線表示。
移動(dòng)圖形,使圖表看起來(lái)不那么擁擠。
更多過(guò)程示例
下面的列表向您介紹了涉及不同業(yè)務(wù)和問(wèn)題領(lǐng)域的各種數(shù)據(jù)流圖示例。其中一些包括使用多個(gè)上下文級(jí)別。
客戶服務(wù)系統(tǒng)
食品訂單系統(tǒng)
證券交易
超市的應(yīng)用
車輛保養(yǎng)得寶
視頻租賃存儲(chǔ)
資源
Order-Processing.vpp
Order-Processing_result.vpp
本教程的讀者也可以閱讀
如何編寫有效的用例?
數(shù)據(jù)流程圖:實(shí)例-訂餐系統(tǒng)
如何使用ERD對(duì)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)建模?
如何開發(fā)現(xiàn)有的和將來(lái)的業(yè)務(wù)流程?
數(shù)據(jù)流程圖與實(shí)例-客戶服務(wù)系統(tǒng)
| 本文 | http://jiagoushi.pro/node/857 | |
| 討論:請(qǐng)加入知識(shí)星球【首席架構(gòu)師圈】或者加微信小號(hào)【jiagoushi_pro】或者加QQ群【11107777】 | ||
| 公眾號(hào) | 【jiagoushipro】 【超級(jí)架構(gòu)師】 精彩圖文詳解架構(gòu)方法論,架構(gòu)實(shí)踐,技術(shù)原理,技術(shù)趨勢(shì)。 我們?cè)诘饶?#xff0c;趕快掃描關(guān)注吧。 | |
| 微信小號(hào) | 【cea_csa_cto】 50000人社區(qū),討論:企業(yè)架構(gòu),云計(jì)算,大數(shù)據(jù),數(shù)據(jù)科學(xué),物聯(lián)網(wǎng),人工智能,安全,全棧開發(fā),DevOps,數(shù)字化. | |
| QQ群 | 【11107767】深度交流企業(yè)架構(gòu),業(yè)務(wù)架構(gòu),應(yīng)用架構(gòu),數(shù)據(jù)架構(gòu),技術(shù)架構(gòu),集成架構(gòu),安全架構(gòu)。以及大數(shù)據(jù),云計(jì)算,物聯(lián)網(wǎng),人工智能等各種新興技術(shù)。 加QQ群,有珍貴的報(bào)告和干貨資料分享。 | |
| 視頻號(hào) | 【超級(jí)架構(gòu)師】 1分鐘快速了解架構(gòu)相關(guān)的基本概念,模型,方法,經(jīng)驗(yàn)。 每天1分鐘,架構(gòu)心中熟。 | |
| 知識(shí)星球 | 向大咖提問(wèn),近距離接觸,或者獲得私密資料分享。 | 知識(shí)星球【首席架構(gòu)師圈】 |
| 微信圈子 | 志趣相投的同好交流。 | 微信圈子【首席架構(gòu)師圈】 |
| 喜馬拉雅 | 路上或者車上了解最新黑科技資訊,架構(gòu)心得。 | 【智能時(shí)刻,架構(gòu)君和你聊黑科技】 |
| 知識(shí)星球 | 認(rèn)識(shí)更多朋友,職場(chǎng)和技術(shù)閑聊。 | 知識(shí)星球【職場(chǎng)和技術(shù)】 |
| 微博 | 【智能時(shí)刻】 | 智能時(shí)刻 |
| 嗶哩嗶哩 | 【超級(jí)架構(gòu)師】 | |
| 抖音 | 【cea_csa_cto】超級(jí)架構(gòu)師 | |
| 快手 | 【cea_csa_cto】超級(jí)架構(gòu)師 | |
| 小紅書 | 【cea_csa_cto】超級(jí)架構(gòu)師 | 首席架構(gòu)師智庫(kù) |
謝謝大家關(guān)注,轉(zhuǎn)發(fā),點(diǎn)贊和點(diǎn)在看。
總結(jié)
以上是生活随笔為你收集整理的「数据架构」什么是数据流程图(DFD)?如何绘制DFD?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 异或校验算法 c语言程序,C# 异或校验
- 下一篇: 中国量子点(QD)显示行业市场供需与战略