資料流圖(DFD)專題講解
設計師考試的下午題的第一道題,資料庫系統工程師考試的下午題的第一道題都是資料流圖題,而能夠將這道題全部做對的考生是非常少的。根據歷年的輔導和閱卷經驗,發現很多考生不是因為這方面的解題能力不夠,而是缺乏解這種題的方法與技巧。本文介紹一些解這種型別題的方法和技巧,希望起來拋磚引玉的效果。
一.解題當中考生表現出的特點
由於這是下午考試的第一道題,所以很多考生從考前的緊張氛圍當中逐漸平靜下來開始答題,頭腦還比較清醒,閱讀起來比較流暢,速度還可以,自我感覺不錯。可偏偏這道題有很多人不能全取15分,糾其原因有以下一些特點:
拿卷就做,不全面瞭解試卷,做到心中有數。這樣會導致在解題過程當中缺少一種整體概念,不能明確自己在哪些題上必需拿分(多花時間),哪些題上自己拿不了分(少花時間)。這樣,在解題時目標就會明確很多。
2.速度快,讀一遍題就開始動手做。
3.速度慢,用手指逐個字的去看,心想看一遍就能做出題來。
4.在閱讀題目時,不打記,不前後聯絡起來思考。
5.邊做邊懷疑邊修改,浪費時間。
6.缺少的資料流找不準,可去掉的檔案找不出來。
7.由於缺少專案開發經驗,對一些事務分析不知如何去思考。
8.盲目樂觀,卻忽略了答題格式,丟了不應該丟的分。
二.解題的方法與技巧
首先要懂得資料流圖設計要略。
有時為了增加資料流圖的清晰性,防止資料流的箭頭線太長,減少交叉繪製資料流條數,一般在一張圖上可以重複同名的資料來源點、終點與資料儲存檔案。如某個外部實體既是資料來源點又是資料匯點,可以在資料流圖的不同的地方重複繪製。在繪製時應該注意以下要點:
(1)自外向內,自頂向下,逐層細化,完善求精。
(2)保持父圖與子圖的平衡。
為了表達較為複雜問題的資料處理過程,用一個數據流圖往往不夠。一般按問題的層次結構進行逐步分解,並以分層的資料流圖反映這種結構關係。根據層次關係一般將資料流圖分為頂層資料流圖、中間資料流圖和底層資料流圖,除頂層圖外,其餘分層資料流圖從0開始編號。對任何一層資料流圖來說,稱它的上層資料流圖為父圖,在它的下一層的資料流圖為子圖。
頂層資料流圖只含有一個加工,表示整個系統;輸入資料流和輸出資料流為系統的輸入資料和輸出資料,表明了系統的範圍,以及與外部環境的資料交換關係。
底層資料流圖是指其加工不能再分解的資料流圖,其加工稱為“原子加工”。
中間資料流圖是對父層資料流圖中某個加工進行細化,而它的某個加工也可以再次細化,形成子圖。中間層次的多少,一般視系統的複雜程度而定。
任何一個數據流子圖必須與它上一層父圖的某個加工對應,二者的輸入資料流和輸出資料流必須保持一致,此即父圖與子圖的平衡。父圖與子圖的平衡是資料流圖中的重要性質,保證了資料流圖的一致性,便於分析人員閱讀和理解。
在父圖與子圖平衡中,資料流的數目和名稱可以完全相同;也可以在數目上不相等,但是可以藉助資料字典中資料流描述,確定父圖中的資料流是由子圖中幾個資料流合併而成的,也即子圖是對父圖中加工和資料流同時進行分解,因此也屬於父圖與子圖的平衡,如圖1所示。
圖1 父圖與子圖的平衡
(3)保持資料守恆。也就是說,一個加工所有輸出資料流中的資料必須能從該加工的輸入資料流中直接獲得,或者是透過該加工能產生的資料。每個加工必須有輸入資料流和輸出資料流,反映此加工的資料來源和加工變換結果。一個加工的輸出資料流只由它的輸入資料流確定。資料流必須經過加工,即必須進入加工或從加工中流出。
(4)加工細節隱蔽。根據抽象原則,在畫父圖時,只需畫出加工和加工之間的關係,而不必畫出各個加工內部的細節。當某層資料流圖中的資料儲存不是父圖中相應加工的外部介面,而只是本圖中某些加工之間的資料介面時,那麼這些資料儲存為區域性資料儲存。
為了強調區域性資料儲存的隱蔽性,一般情況下,區域性資料儲存只有作為某些加工的資料介面或某個特定加工的輸入和輸出時,才畫出來。即按照自頂向下的分析方法,某資料儲存首次出現時只與一個加工有關,那麼這個資料儲存應該作為與之關聯加工的區域性資料儲存,在該層資料流子圖中不必畫出,而在該加工的子圖中畫出,除非該加工為原子加工。
(5)簡化加工間的關係。在資料流圖中,加工間的資料流越少,各個加工就越相對獨立,所以應儘量減少加工間輸入輸出資料流的數目。
(6)均勻分解。應該使一個數據流中的各個加工分解層次大致相同。
(7)適當地為資料流、加工、檔案、源/宿命名,名字應反映該成分的實際意義,避免空洞的名字。
(8)忽略枝節。應集中精力於主要的資料流,而暫不考慮一些例外情況、出錯處理等枝節性的問題。
(9)表現的是資料流而不是控制流。資料流圖與傳統的程式流程圖不同,資料流圖是從資料的角度來描述一個系統的,而流程圖則是從對資料加工的角度來描述系統的。資料流圖中的箭頭是資料流,而流程圖中的箭頭則是控制流,它表達的是程式執行的次序。資料流圖適合於宏觀地分析一個組織的業務概況,而程式流程圖只適合於描述系統中某個加工的執行細節。
每個加工必須既有輸入資料流,又有輸出資料流;在整套資料流圖中,每個檔案必須既有讀檔案的資料流又有寫檔案的資料流,但在某一張子圖中可能只有讀、沒有寫,或者只有寫、沒有讀。
2.解題的方法。
(1) 資料平衡原則。
資料平衡原則分為兩個方面:
① 在分層資料流圖中,父圖和子圖要平衡,也就是說,父圖中某加工的輸入輸出資料流必須與它的子圖的輸入輸出資料流在數量和名字上相同。
②資料平衡的另一個方面是說:每個加工必須即有輸入資料流又有輸出資料流,而且一個加工所有輸出資料流中的資料必須能從該加工的輸入資料流中直接獲得,或者是透過該加工能產生的資料。
(2) 要特別注意的幾個細節問題。
① 除了流向資料儲存(檔案)或從資料儲存流出的資料流不必命名外,其它每個資料流都必須有一個合適的名字。
②流向檔案的資料流,表示寫入資料,流出檔案的資料流表示讀檔案。在整套資料流圖中,每個檔案必須既有讀的資料流又有寫的資料流,但在某一張子圖中可能只有讀沒有寫,或者只有寫沒有讀。
3.解題的技巧。
(1)閱讀題乾的技巧。快速的閱讀第一遍,基本瞭解題目所涉及到的知識點或者事務,打記實體物件和儲存檔案,甚至可以將資料流也標記一下;這一步重點落在問題上,一般問題不難,但一定要看清問題。帶著問題來看第二遍,邊看邊解決。
(2)要有整體的概念,不能因一個點符合就斷定是它,尤其是資料物件。
(3)注意解題的速度,一般在20分鐘以內為最好。
(4)解題的過程中,每一條資料流都能夠在[說明]中找到相應的語句。
(5)資料流名稱要寫對,每錯一個字扣0.5分;流向也要寫對。
(6)做好以後,複查一遍;不要邊做邊懷疑、邊修改,那樣會擔誤時間,且錯誤更多。
資料流圖(DFD)專題講解
設計師考試的下午題的第一道題,資料庫系統工程師考試的下午題的第一道題都是資料流圖題,而能夠將這道題全部做對的考生是非常少的。根據歷年的輔導和閱卷經驗,發現很多考生不是因為這方面的解題能力不夠,而是缺乏解這種題的方法與技巧。本文介紹一些解這種型別題的方法和技巧,希望起來拋磚引玉的效果。
一.解題當中考生表現出的特點
由於這是下午考試的第一道題,所以很多考生從考前的緊張氛圍當中逐漸平靜下來開始答題,頭腦還比較清醒,閱讀起來比較流暢,速度還可以,自我感覺不錯。可偏偏這道題有很多人不能全取15分,糾其原因有以下一些特點:
拿卷就做,不全面瞭解試卷,做到心中有數。這樣會導致在解題過程當中缺少一種整體概念,不能明確自己在哪些題上必需拿分(多花時間),哪些題上自己拿不了分(少花時間)。這樣,在解題時目標就會明確很多。
2.速度快,讀一遍題就開始動手做。
3.速度慢,用手指逐個字的去看,心想看一遍就能做出題來。
4.在閱讀題目時,不打記,不前後聯絡起來思考。
5.邊做邊懷疑邊修改,浪費時間。
6.缺少的資料流找不準,可去掉的檔案找不出來。
7.由於缺少專案開發經驗,對一些事務分析不知如何去思考。
8.盲目樂觀,卻忽略了答題格式,丟了不應該丟的分。
二.解題的方法與技巧
首先要懂得資料流圖設計要略。
有時為了增加資料流圖的清晰性,防止資料流的箭頭線太長,減少交叉繪製資料流條數,一般在一張圖上可以重複同名的資料來源點、終點與資料儲存檔案。如某個外部實體既是資料來源點又是資料匯點,可以在資料流圖的不同的地方重複繪製。在繪製時應該注意以下要點:
(1)自外向內,自頂向下,逐層細化,完善求精。
(2)保持父圖與子圖的平衡。
為了表達較為複雜問題的資料處理過程,用一個數據流圖往往不夠。一般按問題的層次結構進行逐步分解,並以分層的資料流圖反映這種結構關係。根據層次關係一般將資料流圖分為頂層資料流圖、中間資料流圖和底層資料流圖,除頂層圖外,其餘分層資料流圖從0開始編號。對任何一層資料流圖來說,稱它的上層資料流圖為父圖,在它的下一層的資料流圖為子圖。
頂層資料流圖只含有一個加工,表示整個系統;輸入資料流和輸出資料流為系統的輸入資料和輸出資料,表明了系統的範圍,以及與外部環境的資料交換關係。
底層資料流圖是指其加工不能再分解的資料流圖,其加工稱為“原子加工”。
中間資料流圖是對父層資料流圖中某個加工進行細化,而它的某個加工也可以再次細化,形成子圖。中間層次的多少,一般視系統的複雜程度而定。
任何一個數據流子圖必須與它上一層父圖的某個加工對應,二者的輸入資料流和輸出資料流必須保持一致,此即父圖與子圖的平衡。父圖與子圖的平衡是資料流圖中的重要性質,保證了資料流圖的一致性,便於分析人員閱讀和理解。
在父圖與子圖平衡中,資料流的數目和名稱可以完全相同;也可以在數目上不相等,但是可以藉助資料字典中資料流描述,確定父圖中的資料流是由子圖中幾個資料流合併而成的,也即子圖是對父圖中加工和資料流同時進行分解,因此也屬於父圖與子圖的平衡,如圖1所示。
圖1 父圖與子圖的平衡
(3)保持資料守恆。也就是說,一個加工所有輸出資料流中的資料必須能從該加工的輸入資料流中直接獲得,或者是透過該加工能產生的資料。每個加工必須有輸入資料流和輸出資料流,反映此加工的資料來源和加工變換結果。一個加工的輸出資料流只由它的輸入資料流確定。資料流必須經過加工,即必須進入加工或從加工中流出。
(4)加工細節隱蔽。根據抽象原則,在畫父圖時,只需畫出加工和加工之間的關係,而不必畫出各個加工內部的細節。當某層資料流圖中的資料儲存不是父圖中相應加工的外部介面,而只是本圖中某些加工之間的資料介面時,那麼這些資料儲存為區域性資料儲存。
為了強調區域性資料儲存的隱蔽性,一般情況下,區域性資料儲存只有作為某些加工的資料介面或某個特定加工的輸入和輸出時,才畫出來。即按照自頂向下的分析方法,某資料儲存首次出現時只與一個加工有關,那麼這個資料儲存應該作為與之關聯加工的區域性資料儲存,在該層資料流子圖中不必畫出,而在該加工的子圖中畫出,除非該加工為原子加工。
(5)簡化加工間的關係。在資料流圖中,加工間的資料流越少,各個加工就越相對獨立,所以應儘量減少加工間輸入輸出資料流的數目。
(6)均勻分解。應該使一個數據流中的各個加工分解層次大致相同。
(7)適當地為資料流、加工、檔案、源/宿命名,名字應反映該成分的實際意義,避免空洞的名字。
(8)忽略枝節。應集中精力於主要的資料流,而暫不考慮一些例外情況、出錯處理等枝節性的問題。
(9)表現的是資料流而不是控制流。資料流圖與傳統的程式流程圖不同,資料流圖是從資料的角度來描述一個系統的,而流程圖則是從對資料加工的角度來描述系統的。資料流圖中的箭頭是資料流,而流程圖中的箭頭則是控制流,它表達的是程式執行的次序。資料流圖適合於宏觀地分析一個組織的業務概況,而程式流程圖只適合於描述系統中某個加工的執行細節。
每個加工必須既有輸入資料流,又有輸出資料流;在整套資料流圖中,每個檔案必須既有讀檔案的資料流又有寫檔案的資料流,但在某一張子圖中可能只有讀、沒有寫,或者只有寫、沒有讀。
2.解題的方法。
(1) 資料平衡原則。
資料平衡原則分為兩個方面:
① 在分層資料流圖中,父圖和子圖要平衡,也就是說,父圖中某加工的輸入輸出資料流必須與它的子圖的輸入輸出資料流在數量和名字上相同。
②資料平衡的另一個方面是說:每個加工必須即有輸入資料流又有輸出資料流,而且一個加工所有輸出資料流中的資料必須能從該加工的輸入資料流中直接獲得,或者是透過該加工能產生的資料。
(2) 要特別注意的幾個細節問題。
① 除了流向資料儲存(檔案)或從資料儲存流出的資料流不必命名外,其它每個資料流都必須有一個合適的名字。
②流向檔案的資料流,表示寫入資料,流出檔案的資料流表示讀檔案。在整套資料流圖中,每個檔案必須既有讀的資料流又有寫的資料流,但在某一張子圖中可能只有讀沒有寫,或者只有寫沒有讀。
3.解題的技巧。
(1)閱讀題乾的技巧。快速的閱讀第一遍,基本瞭解題目所涉及到的知識點或者事務,打記實體物件和儲存檔案,甚至可以將資料流也標記一下;這一步重點落在問題上,一般問題不難,但一定要看清問題。帶著問題來看第二遍,邊看邊解決。
(2)要有整體的概念,不能因一個點符合就斷定是它,尤其是資料物件。
(3)注意解題的速度,一般在20分鐘以內為最好。
(4)解題的過程中,每一條資料流都能夠在[說明]中找到相應的語句。
(5)資料流名稱要寫對,每錯一個字扣0.5分;流向也要寫對。
(6)做好以後,複查一遍;不要邊做邊懷疑、邊修改,那樣會擔誤時間,且錯誤更多。