数据流图DFD的画法
1.數(shù)據(jù)流圖的定義:
數(shù)據(jù)流圖是結構化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。
數(shù)據(jù)流圖英文縮寫DFD(Data Flow Diagram)它是描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。
2.數(shù)據(jù)流圖的基本圖形元素有:
(1)數(shù)據(jù)流
(2)加工(處理)
(3)文件(數(shù)據(jù)存儲)
(4)數(shù)據(jù)池(數(shù)據(jù)源或終點)
數(shù)據(jù)流是一組數(shù)據(jù)。在數(shù)據(jù)流圖中數(shù)據(jù)流用帶箭頭的線表示,在其線旁標注數(shù)據(jù)流名。在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)某個數(shù)據(jù)流的條件。
加工(處理)
在數(shù)據(jù)流圖中加工用圓圈表示,在圓圈內寫上加工名。一個處理框可以代表一系列程序、單個程序或者程序的一個模塊。
文件(數(shù)據(jù)存儲)
是按照某種規(guī)則組織起來的、長度不限的數(shù)據(jù)。在數(shù)據(jù)流圖中文件用一直線表示,在線段旁注上文件名。一個數(shù)據(jù)存儲也并不等同于一個文件,它可以表示一個文件、文件的一部分、數(shù)據(jù)庫的元素或記錄的一部分等;
數(shù)據(jù)池(源點和終點)
在數(shù)據(jù)流圖中用方框表示,在框內寫上相應的名稱。
3.數(shù)據(jù)流圖的四種基本圖形符號:
?-->:箭頭,表示數(shù)據(jù)流;
?〇:圓或橢圓,表示加工;
? = :雙杠,表示數(shù)據(jù)存儲;
?□:方框,表示數(shù)據(jù)的源點或終點。
4.畫數(shù)據(jù)流圖所使用的工具:visio
5.數(shù)據(jù)流圖的畫法步驟:
?
1)確定系統(tǒng)的輸入輸出
由于系統(tǒng)究竟包括哪些功能可能一時難于弄清楚,可使范圍盡量大一些,把可能有的內容全部都包括進去。此時,應該向用戶了解“系統(tǒng)從外界接受什么數(shù)據(jù)”、“系統(tǒng)向外界送出什么數(shù)據(jù)”等信息,然后,根據(jù)用戶的答復畫出數(shù)據(jù)流圖的外圍。
2)由外向里畫系統(tǒng)的頂層數(shù)據(jù)流圖
首先,將系統(tǒng)的輸人數(shù)據(jù)和輸出數(shù)據(jù)用一連串的加工連接起來。在數(shù)據(jù)流的值發(fā)生變化的地方就是一個加工。接著,給各個加工命名。然后,給加工之間的數(shù)據(jù)命名。最后,給文件命名。
頂層流圖只包含一個加工,用以表示被開發(fā)的系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù)、輸出數(shù)據(jù)流。頂層圖的作用在于表明被開發(fā)系統(tǒng)的范圍以及它和周圍環(huán)境的數(shù)據(jù)交換關系。
3)自頂向下逐層分解,繪出分層數(shù)據(jù)流圖
對于大型的系統(tǒng),為了控制復雜性,便于理解,需要采用自頂向下逐層分解的方法進行,即用分層的方法將一個數(shù)據(jù)流圖分解成幾個數(shù)據(jù)流圖來分別表示。
?
- 分層:一般將層號從0開始編號,采用自頂向下,由外向內的原則。畫0層數(shù)據(jù)流圖時,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個子系統(tǒng)間的數(shù)據(jù)接口和活動關系。
- 編號:如果一張數(shù)據(jù)流圖中的某個加工分解成另一張數(shù)據(jù)流圖時,則上層圖為父圖,直接下層圖為子圖。子圖及其所有的加工都應編號。
- 父圖與子圖的平衡:子圖的輸入輸出數(shù)據(jù)流同父圖相應加工的輸入輸出數(shù)據(jù)流必須一致,此即父圖與子圖的平衡。
- 局部數(shù)據(jù)存儲。當某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。
- 提高數(shù)據(jù)流圖的易懂性。注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工,這樣可以減少加工之間輸入、輸出數(shù)據(jù)流的數(shù)目,增加數(shù)據(jù)流圖的可理解性
?
例題:
假設一家工廠的采購部門每天需要一張定貨報表。報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù):零件編號、零件名稱、定貨數(shù)量、目前價格、主要供應商、次要供應商。零件入庫或出席稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)。當某種零件的庫存數(shù)量少于庫存臨界值時就應該再次定貨。
- 逐步分解地畫出數(shù)據(jù)流圖
-
第一步,畫出最概括的系統(tǒng)模型。因為任何系統(tǒng)實質上都是由若干個數(shù)據(jù)源點/終點以及一個處理組成。這個處理就代表了系統(tǒng)對數(shù)據(jù)加工變換的基本功能。
對上圖進行細化
再細化一點
勾畫出邊界
命名的方法
1)為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名
????A.名字應該代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內容;
????B.不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“輸入”);
????C.如果為某個數(shù)據(jù)流(或數(shù)據(jù)存儲)起名字時遇到困難,則很可能是因為對數(shù)據(jù)流圖的分解不恰當造成的,應該試試重新分解數(shù)據(jù)流圖;
2)為處理命名
????A.通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命名;
????B.名字應該反映整個處理的功能;
????C.應該盡量避免空洞籠統(tǒng)的動詞做名字,如“處理”、“加工”;
????D.通常用一個動詞命名,如果必須用兩個動詞才能描述整個處理的功能,則可能要把這個處理分解成兩個處理更恰當;
????E.如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當?shù)那闆r,應考慮重新分解。
3)為數(shù)據(jù)源點/終點命名
通常,為“數(shù)據(jù)源點/終點”命名時,采用它們在問題域中習慣使用的名字(如“倉庫管理員”、“采購員”)。
總結
以上是生活随笔為你收集整理的数据流图DFD的画法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机械系的DIY生活
- 下一篇: Exchange 2010查询用户MAP