日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

数据流图(DFD)画法

發(fā)布時(shí)間:2023/12/19 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 数据流图(DFD)画法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)流圖(DFD)畫(huà)法要求

一、數(shù)據(jù)流圖(DFD)

1.數(shù)據(jù)流圖的基本符號(hào)

數(shù)據(jù)流圖由四種基本符號(hào)組成,見(jiàn)圖5-4-1所示。

圖5-4-1 數(shù)據(jù)流圖的基本符號(hào)

例:圖5-4-2是一個(gè)簡(jiǎn)單的數(shù)據(jù)流圖,它表示數(shù)據(jù)X從源S流出,經(jīng)P1加工轉(zhuǎn)換成Y,接著經(jīng)P2加工轉(zhuǎn)換為Z,在加工過(guò)程中從F中讀取數(shù)據(jù)。

圖5-4-2 數(shù)據(jù)流圖舉例

下面來(lái)詳細(xì)討論各基本符號(hào)的使用方法。

2.數(shù)據(jù)流

數(shù)據(jù)流由一組確定的數(shù)據(jù)組成。例如“發(fā)票”為一個(gè)數(shù)據(jù)流,它由品名、規(guī)格、單位、單價(jià)、數(shù)量等數(shù)據(jù)組成。數(shù)據(jù)流用帶有名字的具有箭頭的線段表示,名字稱為數(shù)據(jù)流名,表示流經(jīng)的數(shù)據(jù),箭頭表示流向。數(shù)據(jù)流可以從加工流向加工,也可以從加工流進(jìn)、流出文件,還可以從源點(diǎn)流向加工或從加工流向終點(diǎn)。

對(duì)數(shù)據(jù)流的表示有以下約定:

對(duì)流進(jìn)或流出文件的數(shù)據(jù)流不需標(biāo)注名字,因?yàn)槲募旧砭妥阋哉f(shuō)明數(shù)據(jù)流。而別的數(shù)據(jù)流則必須標(biāo)出名字,名字應(yīng)能反映數(shù)據(jù)流的含義。

數(shù)據(jù)流不允許同名。

兩個(gè)數(shù)據(jù)流在結(jié)構(gòu)上相同是允許的,但必須體現(xiàn)人們對(duì)數(shù)據(jù)流的不同理解。例如圖5-4-3(a)中的合理領(lǐng)料單與領(lǐng)料單兩個(gè)數(shù)據(jù)流,它們的結(jié)構(gòu)相同,但前者增加了合理性這一信息。

兩個(gè)加工之間可以有幾股不同的數(shù)據(jù)流,這是由于它們的用途不同,或它們之間沒(méi)有聯(lián)系,或它們的流動(dòng)時(shí)間不同,如圖5-4-3(b)所示。

(a) (b) (c)

圖5-4-3 簡(jiǎn)單數(shù)據(jù)流圖舉例

數(shù)據(jù)流圖描述的是數(shù)據(jù)流而不是控制流。如圖5-4-3 (c)中,“月末”只是為了激發(fā)加工“計(jì)算工資”,是一個(gè)控制流而不是數(shù)據(jù)流,所以應(yīng)從圖中刪去。

3.加工處理

加工處理是對(duì)數(shù)據(jù)進(jìn)行的操作,它把流入的數(shù)據(jù)流轉(zhuǎn)換為流出的數(shù)據(jù)流。每個(gè)加工處理都應(yīng)取一個(gè)名字表示它的含義,并規(guī)定一個(gè)編號(hào)用來(lái)標(biāo)識(shí)該加工在層次分解中的位置。名字中必須包含一個(gè)動(dòng)詞,例如“計(jì)算”、“打印”等。

對(duì)數(shù)據(jù)加工轉(zhuǎn)換的方式有兩種:

改變數(shù)據(jù)的結(jié)構(gòu),例如將數(shù)組中各數(shù)據(jù)重新排序;

產(chǎn)生新的數(shù)據(jù),例如對(duì)原來(lái)的數(shù)據(jù)總計(jì)、求平均等值。

4.文件

文件是存貯數(shù)據(jù)的工具。文件名應(yīng)與它的內(nèi)容一致,寫(xiě)在開(kāi)口長(zhǎng)條內(nèi)。從文件流入或流出數(shù)據(jù)流時(shí),數(shù)據(jù)流方向是很重要的。如果是讀文件,則數(shù)據(jù)流的方向應(yīng)從文件流出,寫(xiě)文件時(shí)則相反;如果是又讀又寫(xiě),則數(shù)據(jù)流是雙向的。在修改文件時(shí),雖然必須首先讀文件,但其本質(zhì)是寫(xiě)文件,因此數(shù)據(jù)流應(yīng)流向文件,而不是雙向。

例如,在圖5-4-3 (a)中,檢查合理性加工時(shí),只從庫(kù)存帳目文件中讀出庫(kù)存信息與領(lǐng)料單核對(duì),所以數(shù)據(jù)流從文件流出,箭頭指向加工。

5.數(shù)據(jù)源或終點(diǎn)

數(shù)據(jù)源和終點(diǎn)表示數(shù)據(jù)的外部來(lái)源和去處。它通常是系統(tǒng)之外的人員或組織,不受系統(tǒng)控制。

為了避免在數(shù)據(jù)流圖上出現(xiàn)線條交叉,同一個(gè)源點(diǎn)、終點(diǎn)或文件均可在不同位置多次出現(xiàn),這時(shí)要在源(終)點(diǎn)符號(hào)的右下方畫(huà)小斜線,或在文件符號(hào)左邊畫(huà)豎線,以示重復(fù),如圖5-4-4所示。

圖5-4-4 重復(fù)的源點(diǎn)、終點(diǎn)或文件

由上圖可見(jiàn),數(shù)據(jù)流圖可通過(guò)基本符號(hào)直觀地表示系統(tǒng)的數(shù)據(jù)流程、加工、存貯等過(guò)程。但它不能表達(dá)每個(gè)數(shù)據(jù)和加工的具體、詳細(xì)的含義,這些信息需要在“數(shù)據(jù)字典”和“加工說(shuō)明”中表達(dá)。

6.DFD的畫(huà)法

一般遵循“由外向里”的原則,即先確定系統(tǒng)的邊界或范圍,再考慮系統(tǒng)的內(nèi)部,先畫(huà)加工的輸入和輸出,再畫(huà)加工的內(nèi)部。即:

(1)識(shí)別系統(tǒng)的輸入和輸出。

(2)從輸入端至輸出端畫(huà)數(shù)據(jù)流和加工,并同時(shí)加上文件。

(3)加工的分解“ 由外向里”進(jìn)行分解。

(4)數(shù)據(jù)流的命名,名字要確切,能反映整體。

(5)各種符號(hào)布置要合理,分布均勻,盡量避免交叉線。

(6)先考慮穩(wěn)定態(tài),后考慮瞬間態(tài)。如系統(tǒng)啟動(dòng)后在正常工作狀態(tài),稍后再考慮系統(tǒng)的啟動(dòng)和終止?fàn)顟B(tài)。

對(duì)于不同的問(wèn)題,數(shù)據(jù)流圖可以有不同的畫(huà)法。一般情況下,應(yīng)該遵守“由外向里”的原則。即先確定系統(tǒng)的邊界或范圍,再考慮系統(tǒng)的內(nèi)部,先畫(huà)加工的輸入和輸出,再畫(huà)加工內(nèi)部。具體實(shí)行時(shí)可按下述步驟進(jìn)行:

(1)識(shí)別系統(tǒng)的輸入和輸出,畫(huà)出頂層圖

即確定系統(tǒng)的邊界。在系統(tǒng)分析初期,系統(tǒng)的功能需求等還不很明確,為了防止遺漏,不妨先將范圍定得大一些。系統(tǒng)邊界確定后,那么越過(guò)邊界的數(shù)據(jù)流就是系統(tǒng)的輸入或輸出,將輸入與輸出用加工符號(hào)連接起來(lái),并加上輸入數(shù)據(jù)來(lái)源和輸出數(shù)據(jù)去向就形成了頂層圖。

(2)畫(huà)系統(tǒng)內(nèi)部的數(shù)據(jù)流、加工與文件,畫(huà)出一級(jí)細(xì)化圖

從系統(tǒng)輸入端到輸出端(也可反之),逐步用數(shù)據(jù)流和加工連接起來(lái),當(dāng)數(shù)據(jù)流的組成或值發(fā)生變化時(shí),就在該處畫(huà)一個(gè)“加工”符號(hào)。

畫(huà)數(shù)據(jù)流圖時(shí)還應(yīng)同時(shí)畫(huà)上文件,以反映各種數(shù)據(jù)的存貯處,并表明數(shù)據(jù)流是流入還是流出文件。

最后,再回過(guò)頭來(lái)檢查系統(tǒng)的邊界,補(bǔ)上遺漏但有用的輸入輸出數(shù)據(jù)流,刪去那些沒(méi)被系統(tǒng)使用的數(shù)據(jù)流。

(3)加工的進(jìn)一步分解,畫(huà)出二級(jí)細(xì)化圖

同樣運(yùn)用“由外向里”方式對(duì)每個(gè)加工進(jìn)行分析,如果在該加工內(nèi)部還有數(shù)據(jù)流,則可將該加工分成若干個(gè)子加工,并用一些數(shù)據(jù)流把子加工聯(lián)接起來(lái),即可畫(huà)出二級(jí)細(xì)化圖。二級(jí)細(xì)化圖可在一級(jí)細(xì)化圖的基礎(chǔ)上畫(huà)出,也可單獨(dú)畫(huà)出該加工的二級(jí)細(xì)化圖,二級(jí)細(xì)化圖也稱為該加工的子圖。

(4)其它注意事項(xiàng)

一般應(yīng)先給數(shù)據(jù)流命名,再根據(jù)輸入/輸出數(shù)據(jù)流名的含義為加工命名。名字含義要確切,要能反映相應(yīng)的整體。若碰到難以命名的情況,則很可能是分解不恰當(dāng)造成的。應(yīng)考慮重新分解。

從左至右畫(huà)數(shù)據(jù)流圖。通常左側(cè)、右側(cè)分別是數(shù)據(jù)源和終點(diǎn),中間是一系列加工和文件。正式的數(shù)據(jù)流圖應(yīng)盡量避免線條交叉,必要時(shí)可用重復(fù)的數(shù)據(jù)源、終點(diǎn)和文件符號(hào)。此外,數(shù)據(jù)流圖中各種符號(hào)布置要合理,分布應(yīng)均勻。

畫(huà)數(shù)據(jù)流圖是一項(xiàng)艱巨的工作,要做好重畫(huà)的思想準(zhǔn)備,重畫(huà)是為了消除隱患,有必要不斷改進(jìn)。

因?yàn)樽鳛轫攲蛹庸ぬ幚淼母淖冇蚴谴_定的,所以改變域的分解是嚴(yán)格的自頂向下分解的。由于目標(biāo)系統(tǒng)目前還不存在,應(yīng)此分解時(shí)開(kāi)發(fā)人員還需憑經(jīng)驗(yàn)進(jìn)行,這是一項(xiàng)創(chuàng)造性的勞動(dòng)。同時(shí),在建立目標(biāo)系統(tǒng)數(shù)據(jù)流圖時(shí),還應(yīng)充分利用本章講過(guò)的各種方法和技術(shù),例如:分解時(shí)盡量減少各加工之間的數(shù)據(jù)流;數(shù)據(jù)流圖中各個(gè)成分的命名要恰當(dāng);父圖與子圖間要注意平衡等等。

當(dāng)畫(huà)出分層數(shù)據(jù)流圖,并為數(shù)據(jù)流圖中各個(gè)成分編寫(xiě)詞典條目或加工說(shuō)明后,就獲得了目標(biāo)系統(tǒng)的初步邏輯模型。

二、畫(huà)分層數(shù)據(jù)流圖時(shí)應(yīng)注意的問(wèn)題

下面從四個(gè)方面討論畫(huà)分層數(shù)據(jù)流圖時(shí)應(yīng)注意的問(wèn)題。

1.合理編號(hào)

分層數(shù)據(jù)流圖的頂層稱為0層,稱它是第1層的父圖,而第1層既是0層圖的子圖,又是第2層圖的父圖,依此類推。由于父圖中有的加工可能就是功能單元,不能再分解,因此父圖擁有的子圖數(shù)少于或等于父圖中的加工個(gè)數(shù)。

為了便于管理,應(yīng)按下列規(guī)則為數(shù)據(jù)流圖中的加工編號(hào):

l 子圖中的編號(hào)為父圖號(hào)和子加工的編號(hào)組成。

l 子圖的父圖號(hào)就是父圖中相應(yīng)加工的編號(hào)。

為簡(jiǎn)單起見(jiàn),約定第1層圖的父圖號(hào)為0,編號(hào)只寫(xiě)加工編號(hào)1、2、3...,下面各層由父圖號(hào)1、1.1等加上子加工的編號(hào)1、2、3...組成。按上述規(guī)則,圖的編號(hào)即能反映出它所屬的層次以及它的父圖編號(hào)的信息,還能反映子加工的處理信息。例如1表示第1層圖的1號(hào)加工處理,1.1、1.2、1.3...表示父圖為1號(hào)加工的子加工,1.3.1、1.3.2、1.3.3...表示父圖號(hào)為1.3加工的子加工。

為了方便,對(duì)數(shù)據(jù)流圖中的每個(gè)加工,可以只標(biāo)出局部號(hào),但在加工說(shuō)明中,必須使用完整的編號(hào)。例如圖5-4-5可表示第1層圖的1號(hào)加工的子圖,編號(hào)可以簡(jiǎn)化成圖中的形式。

圖5-4-5 簡(jiǎn)化子圖編號(hào)示例

2.注意子圖與父圖的平衡

子圖與父圖的數(shù)據(jù)流必須平衡,這是分層數(shù)據(jù)流的重要性質(zhì)。這里的平衡指的是子圖的輸入、輸出數(shù)據(jù)流必須與父圖中對(duì)應(yīng)加工的輸入、輸出數(shù)據(jù)流相同。但下列兩種情況是允許的,一是子圖的輸入/輸出流比父圖中相應(yīng)加工的輸入/輸出流表達(dá)得更細(xì)。例如,在圖5-4-6中,若父圖的“訂貨單”數(shù)據(jù)流是由客戶、品種、帳號(hào)、數(shù)量四部分組成,則圖中的子圖和父圖是平衡的。在實(shí)際中,檢查該類情況的平衡,需借助于數(shù)據(jù)詞典進(jìn)行。二是考慮平衡時(shí),可以忽略枝節(jié)性的數(shù)據(jù)流。例如圖5-4-6,在4號(hào)加工的子圖中4.3號(hào)子加工中增加了一個(gè)輸出,表示出錯(cuò)的數(shù)據(jù)流(由虛線所示),則子圖和父圖仍可看作是平衡的。

圖5-4-6 子圖和父圖的平衡圖片 子圖和父圖的平衡動(dòng)畫(huà)

3.局部文件

圖5-4-7中的父圖和子圖是平衡的,但子圖中的文件W并沒(méi)在父圖中出現(xiàn)。這是由于對(duì)文件W的讀、寫(xiě)完全局限在加工3.3之內(nèi),在父圖中各個(gè)加工之間的界面上不出現(xiàn),該文件是子圖的局部文件或?yàn)榕R時(shí)文件。

圖5-4-7 數(shù)據(jù)流圖中的局部文件

應(yīng)當(dāng)指出的是,如果一個(gè)臨時(shí)文件在某層數(shù)據(jù)流圖中的某些加工之間出現(xiàn),則在該層數(shù)據(jù)流圖中就必須畫(huà)出這個(gè)文件。一旦文件被單獨(dú)畫(huà)出,那么也需畫(huà)出這個(gè)文件同其它成分之間的聯(lián)系。

4.分解的程度

對(duì)于規(guī)模較大的系統(tǒng)的分層數(shù)據(jù)流圖,如果一下子把加工直接分解成基本加工單元,一張圖上畫(huà)出過(guò)多的加工將使人難以理解,也增加了分解的復(fù)雜度。然而,如果每次分解產(chǎn)生的子加工太少,會(huì)使分解層次過(guò)多而增加作圖的工作量,閱讀也不方便。經(jīng)驗(yàn)表明,一般說(shuō)來(lái)一個(gè)加工每次分解量最多不要超過(guò)七個(gè)為宜。同時(shí),分解時(shí)應(yīng)遵循以下原則:

l 分解應(yīng)自然,概念上要合理、清晰。

l 上層可分解的快些(即分解成的子加工個(gè)數(shù)多些),這是因?yàn)樯蠈邮蔷C合性描述,對(duì)可讀性的影響小。而下層應(yīng)分解得慢些。

l 在不影響可讀性的前提下,應(yīng)適當(dāng)?shù)囟喾纸獬蓭撞糠?以減少分解層數(shù)。

l 一般說(shuō)來(lái),當(dāng)加工可用一頁(yè)紙明確地表述時(shí),或加工只有單一輸入/輸出數(shù)據(jù)流時(shí)(出錯(cuò)處理不包括在內(nèi)),就應(yīng)停止對(duì)該加工的分解。另外,對(duì)數(shù)據(jù)流圖中不再作分解的加工(即功能單元),必須作出詳細(xì)的加工說(shuō)明,并且每個(gè)加工說(shuō)明的編號(hào)必須與功能單元的編號(hào)一致。

 

三、數(shù)據(jù)流圖的修改

前面介紹了畫(huà)數(shù)據(jù)流圖的基本方法。對(duì)于一個(gè)大型系統(tǒng)來(lái)說(shuō),由于在系統(tǒng)分析初期人們對(duì)于問(wèn)題理解的深度不夠,在數(shù)據(jù)流圖上也不可避免地會(huì)存在某些缺陷或錯(cuò)誤。因此還需要進(jìn)行修改,才能得到完善的數(shù)據(jù)流圖。這里介紹如何從正確性和可讀性方面對(duì)數(shù)據(jù)流圖進(jìn)行改進(jìn)。

1.正確性

數(shù)據(jù)流圖的正確性,可以從以下幾個(gè)方面來(lái)檢查:

(1)數(shù)據(jù)守恒

(2)文件使用

在數(shù)據(jù)流圖中,文件與加工之間數(shù)據(jù)流的方向應(yīng)按規(guī)定認(rèn)真標(biāo)注,這樣也有利于對(duì)文件使用正確性的檢查。例如,在圖5-4-8中,因?yàn)槲募?和文件2是子圖的局部文件,所以在子圖中應(yīng)畫(huà)出對(duì)文件的全部引用。但子圖中文件2好象一個(gè)“滲井”,數(shù)據(jù)只流進(jìn)不流出,顯然是一個(gè)錯(cuò)誤。

圖5-4-8 局部文件使用錯(cuò)誤

(3) 子、父圖平衡

造成子圖與父圖不平衡的一個(gè)常見(jiàn)原因是在增加或刪除一個(gè)加工時(shí),忽視了對(duì)相應(yīng)父圖或子圖的修改。在檢查數(shù)據(jù)流圖時(shí)應(yīng)注意這一點(diǎn)。

(4) 加工與數(shù)據(jù)流的命名

加工和數(shù)據(jù)流的名字必須體現(xiàn)被命名對(duì)象的全部?jī)?nèi)容而不是一部分。對(duì)于加工的名字,應(yīng)檢查它的含義與被加工的輸入/輸出數(shù)據(jù)流是否匹配。

一個(gè)加工的輸出數(shù)據(jù)流僅由它的輸入數(shù)據(jù)流確定,這個(gè)規(guī)則絕不能違背。數(shù)據(jù)不守恒的錯(cuò)誤有兩種,一是漏掉某些輸入數(shù)據(jù)流,二是某些輸入數(shù)據(jù)流在加工內(nèi)部沒(méi)有被使用。雖然有時(shí)后者并不一定是個(gè)錯(cuò)誤,但也要認(rèn)真考慮,對(duì)于確實(shí)無(wú)用的數(shù)據(jù)就應(yīng)該刪去,以簡(jiǎn)化加工之間的聯(lián)系。

在檢查數(shù)據(jù)流圖時(shí),應(yīng)注意消除控制流。

2.可讀性

數(shù)據(jù)流圖的可讀性,可以從以下幾個(gè)方面來(lái)提高:

(1)簡(jiǎn)化加工之間的聯(lián)系

各加工之間的數(shù)據(jù)流越少,各加工的獨(dú)立性就越高。因此應(yīng)當(dāng)盡量減少加工之間數(shù)據(jù)流的數(shù)目,有必要時(shí)可采用后面要介紹的步驟對(duì)數(shù)據(jù)流圖重新分解。

(2)分解應(yīng)當(dāng)均勻

在同一張數(shù)據(jù)流圖上,應(yīng)避免出現(xiàn)某些加工已是功能單元,而另一些加工卻還應(yīng)繼續(xù)分解好幾層的情況出現(xiàn)。否則應(yīng)考慮重新分解。

(3)命名應(yīng)當(dāng)恰當(dāng)

理想的加工名由一個(gè)具體的動(dòng)詞和一個(gè)具體的賓語(yǔ)(名詞)組成。數(shù)據(jù)流和文件的名字也應(yīng)具體、明確。

3. 數(shù)據(jù)流圖重新分解的步驟

有時(shí)需要對(duì)作出的部分或全部數(shù)據(jù)流圖作重新分解,可按以下步驟進(jìn)行:

(1)把需要重新分解的所有子圖連成一張;

(2)根據(jù)各部分之間聯(lián)系最少的原則,把圖劃分成幾部分;

(3)重建父圖,即把第二步所得的每一部分畫(huà)成一個(gè)圓圈,各部分之間的聯(lián)系就是加工之間的界面;

(4)重建各張子圖,只需把第二步所得的圖,按各自的邊界剪開(kāi)即可;

(5)為所有加工重新命名、編號(hào)。

例如,圖5-4-9中加工2和其它加工的聯(lián)系太復(fù)雜以致很難獨(dú)立理解,所以其結(jié)構(gòu)不太合理。因?yàn)閳D5-4-9的子圖是由不相連的兩部分組成的,所以將它們的父圖加工分成兩個(gè)更為合適。

圖5-4-9 結(jié)構(gòu)不合理的數(shù)據(jù)流圖

總結(jié)

以上是生活随笔為你收集整理的数据流图(DFD)画法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。