软件工程——数据流图(DFD)
在《軟件工程——系統(tǒng)流程圖符號及案例》中我們知道了系統(tǒng)流程圖描述的是物理系統(tǒng),那么數(shù)據(jù)流圖則是用來描述系統(tǒng)的邏輯模型,在數(shù)據(jù)流圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中的流動和處理情況。并且因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使是非計(jì)算機(jī)專業(yè)的人員也能理解。
一. 基本圖形符號
數(shù)據(jù)流圖有4中基本符號元素:數(shù)據(jù)流、數(shù)據(jù)處理、數(shù)據(jù)存儲、外部實(shí)體。
“→”箭頭,表示數(shù)據(jù)流;
〇:圓或橢圓,表示加工;
=:雙杠(帶一邊開口,一邊閉合),表示數(shù)據(jù)存儲;
□:方框,表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。
1.數(shù)據(jù)流
數(shù)據(jù)流用箭頭來表示,箭頭方向即數(shù)據(jù)流動方向,數(shù)據(jù)流名標(biāo)在數(shù)據(jù)流線上面,數(shù)據(jù)流命名時應(yīng)盡量準(zhǔn)確。
PS:除了與數(shù)據(jù)存儲之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。
2.加工
加工也稱為數(shù)據(jù)處理,是對數(shù)據(jù)進(jìn)行處理的單元。數(shù)據(jù)處理名稱寫在煩那方框內(nèi)。在分層的數(shù)據(jù)流圖中,加工還應(yīng)編號。
3.數(shù)據(jù)存儲
數(shù)據(jù)存儲為數(shù)據(jù)處理提供數(shù)據(jù)處理所需要的輸入流或?yàn)閿?shù)據(jù)處理的輸出數(shù)據(jù)流提供存儲倉庫。具體指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。
流向數(shù)據(jù)存儲的數(shù)據(jù)流可以理解為寫入或查詢文件,流出的數(shù)據(jù)流可理解為從文件讀數(shù)據(jù)或查詢結(jié)果。
4.數(shù)據(jù)源點(diǎn)和終點(diǎn)
數(shù)據(jù)源點(diǎn)和終點(diǎn)是軟件系統(tǒng)外部環(huán)境中的實(shí)體(包括人、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實(shí)體。一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中,表示了系統(tǒng)中數(shù)據(jù)的來源和去處。
二. 畫數(shù)據(jù)流圖
最初,把系統(tǒng)視為一個整體,看這個整體與外界的聯(lián)系。分析有哪些內(nèi)容是要通過外界獲取的,就是系統(tǒng)的輸入;有哪些是要向外界提供服務(wù)的,就是系統(tǒng)的輸出。畫系統(tǒng)的輸入/輸出即先畫頂層數(shù)據(jù)流圖.
數(shù)據(jù)流圖主要是用于描述系統(tǒng)內(nèi)部的處理過程。有些內(nèi)部處理過程比較簡單,有些則相當(dāng)復(fù)雜。描述系統(tǒng)內(nèi)部即畫下層數(shù)據(jù)流圖。一般方法是將層號從0開始編號,采用自頂向下,由外向內(nèi)的原則。
注意事項(xiàng):
1.命名:在畫數(shù)據(jù)流圖中,不論數(shù)據(jù)流、數(shù)據(jù)存儲還是加工的命名要合適,要易于理解其含義。命名時不能使用抽象含義的名字,比如“數(shù)據(jù)”、“信息”等等。加工名的命名也要反映其處理的功能,不能使用“處理”、“操作”這些籠統(tǒng)的詞。
2.在畫數(shù)據(jù)流圖時要注意不是畫控制流。數(shù)據(jù)流圖反映的是系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞類,整個圖中不反映加工的執(zhí)行順序。
3.每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。
4.加工點(diǎn)的編號:子圖的編號是父圖中相應(yīng)加工的編號的擴(kuò)充,子圖上加工的編號的方法是由父圖號、小數(shù)點(diǎn)及子圖的局部號組成。
5.系統(tǒng)分析中要區(qū)別物流和數(shù)據(jù)流。數(shù)據(jù)流反映能用計(jì)算機(jī)處理的數(shù)據(jù),并不是實(shí)物。
6.在數(shù)據(jù)流圖表示系統(tǒng)的數(shù)據(jù)流向時,一般都要用到父圖與子圖來描述不同的層次。這時要注意父圖與子圖的平衡。子圖的輸入、輸出數(shù)據(jù)流同父圖相應(yīng)加工的輸入、輸出數(shù)據(jù)流必須一致,即父圖與子圖的平衡。
上圖中子圖雖然有三個輸入,但是因?yàn)槎ㄘ泦斡煽蛻簟ぬ柡蛿?shù)量組成,所以不違背平衡的原則。
7.分層處理的過程中,當(dāng)某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。如果是局部數(shù)據(jù)存儲的話,不要在父圖的輸入中加入該數(shù)據(jù)存儲,而是在子圖相應(yīng)的加工上才把它畫出來,這樣有助于實(shí)現(xiàn)信息隱蔽。
8.要注意分層的合理性,減少加工之間輸入、輸出數(shù)據(jù)流的數(shù)目,增加數(shù)據(jù)流圖的可理解性。
例題
請根據(jù)一下業(yè)務(wù)流程描述,畫出某物資管理系統(tǒng)的數(shù)據(jù)流圖:
(1)生產(chǎn)車間向物資部提出物資需用計(jì)劃,物資部計(jì)劃人員根據(jù)庫存臺賬,編制物資采購計(jì)劃;
(2)采購人員根據(jù)物資采購計(jì)劃,以及供貨商報價單,編制合同臺賬;
(3)采購的物資到貨后,庫存管理人員根據(jù)技術(shù)科提供的驗(yàn)收報告,以及合同臺賬,進(jìn)行物資入庫管理,并更新庫存臺賬
總結(jié)
以上是生活随笔為你收集整理的软件工程——数据流图(DFD)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 椭圆焦点 求是否在圆内_椭圆焦
- 下一篇: loj121-动态图连通性