第一步益咬,畫子系統(tǒng)的輸入輸出
把整個系統(tǒng)視為一個大的加工,然后根據(jù)數(shù)據(jù)系統(tǒng)從哪些外部實體接收數(shù)據(jù)流宜肉,以及系統(tǒng)發(fā)送數(shù)據(jù)流到那些外部實體,就可以畫出輸入輸出圖翎碑。這張圖稱為頂層圖谬返。
第二步,畫子系統(tǒng)的內(nèi)部
把頂層圖的加工分解成若干個加工日杈,并用數(shù)據(jù)流將這些加工連接起來遣铝,使得頂層圖的輸入數(shù)據(jù)經(jīng)過若干加工處理后,變成頂層圖的輸出數(shù)據(jù)流莉擒。這張圖稱為0層圖酿炸。從一個加工畫出一張數(shù)據(jù)流圖的過程就是對加工的分解。
可以用下述方法來確定加工:
在數(shù)據(jù)流的組成或值發(fā)生變化的地方應(yīng)該畫出一個加工涨冀,這個加工的功能就是實現(xiàn)這一變化填硕,也可以根據(jù)系統(tǒng)的功能決定加工。
確定數(shù)據(jù)流的方法
用戶把若干數(shù)據(jù)當(dāng)作一個單位來處理(這些數(shù)據(jù)一起到達鹿鳖、一起處理)時扁眯,可以把這些數(shù)據(jù)看成一個數(shù)據(jù)流壮莹。
關(guān)于數(shù)據(jù)存儲
對于一些以后某個時間要使用的數(shù)據(jù),可以組織成為一個數(shù)據(jù)存儲來表示恋拍。
第三步垛孔,畫加工的內(nèi)部
把每個加工看作一個小系統(tǒng)藕甩,把加工的輸入輸出數(shù)據(jù)流看成小系統(tǒng)的輸入輸出流施敢。于是可以象畫0層圖一樣畫出每個小系統(tǒng)的加工的DFD圖。
第四步狭莱,畫子加工的分解圖
對第三步分解出來的DFD圖中的每個加工僵娃,重復(fù)第三步的分解過程,直到圖中尚未分解的加工都是足夠簡單的(即不可再分解)腋妙。至此默怨,得到了一套分層數(shù)據(jù)流圖。
第五步骤素,對數(shù)據(jù)流圖和加工編號
對于一個軟件系統(tǒng)匙睹,其數(shù)據(jù)流圖可能有許多層,每一層又有許多張圖济竹。為了區(qū)分不同的加工和不同的DFD子圖痕檬,應(yīng)該對每張圖進行編號,以便于管理送浊。
? ? 頂層圖只有一張梦谜,圖中的加工也只有一個,所以不必為其編號袭景。
? ? 0層圖只有一張唁桩,圖中的加工號分別是0.1、0.2耸棒、…荒澡,或者1, 2 与殃。
? ? 子圖就是父圖中被分解的加工號单山。
? ? 子圖中的加工號是由圖號、圓點和序號組成奈籽,如:1.12饥侵,1.3 等等。
應(yīng)該注意的問題:
1.? ? ? 應(yīng)適當(dāng)?shù)臑閿?shù)據(jù)流衣屏、加工躏升、數(shù)據(jù)存儲以及外部實體命名,名字應(yīng)該反映該成分的實際含義狼忱,避免使用空洞的名字膨疏。
2.? ? ? 畫數(shù)據(jù)流圖一睁,不是畫控制流。
3.? ? ? 一個加工的輸出數(shù)據(jù)流佃却,不應(yīng)與輸入數(shù)據(jù)流同名者吁,及時他們的組成完全相同。
4.? ? ? 允許一個加工有多條數(shù)據(jù)流流向另一個加工饲帅,也允許一個加工有兩條相同的輸出數(shù)據(jù)流流向不同的加工复凳。
5.? ? ? 保持父圖與子圖的平衡。也就是說灶泵,父圖中的某加工的輸入輸出流必須與他的子圖的輸入輸出數(shù)據(jù)流在數(shù)量上和名字上相同育八。值得注意的是,如果父圖中的一個輸入(輸出)數(shù)據(jù)流對應(yīng)于子圖中的幾個輸入(輸出)數(shù)據(jù)流赦邻,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項的全體正好是父圖中的這一個數(shù)據(jù)流髓棋,那么他們?nèi)匀凰闶瞧胶獾摹?/b>
6.? ? ? 在自頂向下的分解過程中,若一個數(shù)據(jù)存儲首次出現(xiàn)時惶洲,只與一個加工有關(guān)系按声,那么這個數(shù)據(jù)存儲應(yīng)作為這個加工的內(nèi)部文件而不必畫出。
7.? ? ? 保持?jǐn)?shù)據(jù)守恒恬吕,也就是签则,一個加工的所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該加工的輸出流中直接獲得,或者通過該加工能產(chǎn)生的數(shù)據(jù)币呵。
8.? ? ? 每個加工必須既有輸入數(shù)據(jù)流怀愧,又有輸出數(shù)據(jù)流。
9.? ? ? 在整套數(shù)據(jù)流圖中余赢,每個數(shù)據(jù)存儲必須既有讀的數(shù)據(jù)流芯义,又有寫的數(shù)據(jù)流。但是在某張子圖中妻柒,可能只有讀沒有寫扛拨,或者只有寫沒有讀。