數(shù)據(jù)流圖和數(shù)據(jù)字典是結(jié)構(gòu)化分析方法中常用的兩種工具。本文中基礎(chǔ)資料收集于網(wǎng)絡(luò),頂層數(shù)據(jù)流圖部分加入里自己的理解。
數(shù)據(jù)流圖
數(shù)據(jù)流圖,簡稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。
數(shù)據(jù)流圖有四種基本圖形符號
箭頭,表示數(shù)據(jù)流;??
〇:圓或橢圓,表示加工;?
?= :雙杠,表示數(shù)據(jù)存儲(可以理解為文件);
?□:方框,表示數(shù)據(jù)的源點或終點。
數(shù)據(jù)流圖分類
事務(wù)型數(shù)據(jù)流圖
事務(wù)型結(jié)構(gòu)的數(shù)據(jù)流圖則呈束狀
變換型數(shù)據(jù)流圖
變換型結(jié)構(gòu)的數(shù)據(jù)流圖呈線性
頂層數(shù)據(jù)流圖
頂層流圖只包含一個加工,用以表示被開發(fā)的系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù)、輸出數(shù)據(jù)流。
頂層數(shù)據(jù)流圖示例

頂層圖的作用在于表明被開發(fā)系統(tǒng)的范圍以及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。
上面的話語比較抽象,有幾個重點
1)雖然頂層數(shù)據(jù)流圖只有一個加工,但是需要包含系統(tǒng)所有的既定功能的數(shù)據(jù)流轉(zhuǎn)。比如注冊時的注冊申請,注冊結(jié)果的通知單。這就是兩個單據(jù)了。
2)頂層數(shù)據(jù)流圖也需要有存儲文件,就是現(xiàn)實世界中的實體,軟件設(shè)計與開發(fā)中與數(shù)據(jù)表對應(yīng)。
3)數(shù)據(jù)的源點更多的對應(yīng)系統(tǒng)涉及到的角色,如客戶,學(xué)生,教師,旅客等實際系統(tǒng)用戶。在功能描述中涉及到的角色都應(yīng)該在頂層數(shù)據(jù)流圖中有所體現(xiàn)。

基本加工
不再分解的加工稱為基本加工。一般將層號從0開始編號,采用自頂向下,由外向內(nèi)的原則
以上如有不合理之后,歡迎留言討論。
數(shù)據(jù)字典
數(shù)據(jù)字典是數(shù)據(jù)流分析的第二個組成部分,數(shù)據(jù)流圖本身不能充分描述系統(tǒng)的細(xì)節(jié),數(shù)據(jù)字典能提供有關(guān)系統(tǒng)的補充信息。
例:
系統(tǒng)邊界如何定義?以數(shù)據(jù)源和數(shù)據(jù)潭為參考依據(jù)? A

內(nèi)容補充
數(shù)據(jù)流從知識體系來說,屬于軟件結(jié)構(gòu)化分析。
軟件結(jié)構(gòu)化分析分為 數(shù)據(jù)源,數(shù)據(jù)潭,數(shù)據(jù)加工,數(shù)據(jù)存儲,數(shù)據(jù)流五個基本術(shù)語。
數(shù)據(jù)源代表數(shù)據(jù)的起點,系統(tǒng)功能的數(shù)據(jù)錄入點。
數(shù)據(jù)譚代表數(shù)據(jù)流動的終點,可以是人,系統(tǒng)等。實際上很多系統(tǒng)的頂層數(shù)據(jù)流圖的終點就是
系統(tǒng)名稱。
系統(tǒng)名稱數(shù)據(jù)源和數(shù)據(jù)潭對系統(tǒng)邊界做了定義,個人認(rèn)為理解這一點很重要。
數(shù)據(jù)流圖DFD和數(shù)據(jù)字典是對數(shù)據(jù)流的描述,數(shù)據(jù)字典是對數(shù)據(jù)加工的細(xì)化,而數(shù)據(jù)加工主要指實現(xiàn)什么樣的功能。
案例


關(guān)于數(shù)據(jù)字典
數(shù)據(jù)字典在網(wǎng)絡(luò)上很難找到準(zhǔn)備的定義描述,之前對數(shù)據(jù)字典的印象停留在數(shù)據(jù)庫數(shù)據(jù)表的字段,類型,非空項描述整理的table上。
數(shù)據(jù)字典的主要作用是定義數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu),并給出相關(guān)項的基本數(shù)據(jù)類型。

end 2019年11月
參考資料
結(jié)構(gòu)化與面向?qū)ο蠡畱?yīng)用比較
某教學(xué)管理系統(tǒng)的數(shù)據(jù)流圖
【軟件工程】三、軟件開發(fā)方法學(xué)——結(jié)構(gòu)化分析方法

