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