1. 程式人生 > >資料流圖(DFD)

資料流圖(DFD)

資料流圖(DFD)
    資料流圖,簡稱DFD,是結構化分析方法SA方法中用於表示系統邏輯模型的一種工具,它以圖形的方式描繪資料在系統中流動和處理的過程,由於它只反映系統必須完成的邏輯功能,所以它是一種功能模型。
下圖是一個飛機機票預訂系統的資料流圖,它反映的功能是:旅行社把預訂機票的旅客資訊 (姓名、年齡、單位、身份證號碼、旅行時間、目的地等)輸入機票預訂系統。系統為旅客安排航班,打印出取票通知單(附有應交的賬款)。旅客在飛機起飛的前一天憑取票通知單交款取票,系統檢驗無誤,輸出機票給旅客。
 

3.3.1 基本圖形符號
資料流圖有四種基本圖形符號:
:箭頭,表示資料流;
    〇:圓或橢圓,表示加工;
    = :雙槓,表示資料儲存;
    □:方框,表示資料的源點或終點。
      (1) 資料流。資料流是資料在系統內傳播的路徑,因此由一組成分固定的資料組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等資料項組成。由於資料流是流動中的資料,所以必須有流向,除了與資料儲存之間的資料流不用命名外,資料流應該用名詞或名詞短語命名。
      (2)加工(又稱為資料處理)。對資料流進行某些操作或變換。每個加工也要有名字,通常是動詞短語,簡明地描述完成什麼加工。在分層的資料流圖中,加工還應編號。
      (3)資料儲存(又稱為檔案),指暫時儲存的資料,它可以是資料庫檔案或任何形式的資料組織。
      (4)資料來源點或終點,是本軟體系統外部環境中的實體(包括人員、組織或其他軟體系統),統稱外部實體。一般只出現在資料流圖的頂層圖。
3.3.2畫資料流圖的步驟


      (1)首先畫系統的輸入輸出,即先畫頂層資料流圖。頂層流圖只包含一個加工,用以表示被開發的系統,然後考慮該系統有哪些輸入資料、輸出資料流。頂層圖的作用在於表明被開發系統的範圍以及它和周圍環境的資料交換關係。下圖為飛機機票預訂系統的頂層圖。

(2)畫系統內部,即畫下層資料流圖。不再分解的加工稱為基本加工。一般將層號從0開始編號,採用自頂向下,由外向內的原則。畫0層資料流圖時,分解頂層流圖的系統為若干子系統,決定每個子系統間的資料介面和活動關係。例如,在上面的機票預訂系統按功能可分成兩部分,一部分為旅行社預訂機票,另一部分為旅客取票,兩部分通過機票檔案的資料儲存聯絡起來,0層資料流圖如圖3-4。
      (3)注意事項。
      ①命名。不論資料流、資料儲存還是加工,合適的命名使人們易於理解其含義。
      ②畫資料流而不是控制流。資料流反映系統“做什麼”,不反映“如何做”,因此箭頭上的資料流名稱只能是名詞或名詞短語,整個圖中不反映加工的執行順序。
      ③一般不畫物質流。資料流反映能用計算機處理的資料,並不是實物,因此對目標系統的資料流圖一般不要畫物質流。
      ④每個加工至少有一個輸入資料流和一個輸出資料流,反映出此加工資料的來源與加工的結果。
      ⑤編號。如果一張資料流圖中的某個加工分解成另一張資料流圖時,則上層圖為父圖,直接下層圖為子圖。子圖及其所有的加工都應編號。

⑥父圖與子圖的平衡。子圖的輸入輸出資料流同父圖相應加工的輸入輸出資料流必須一致,此即父圖與子圖的平衡。
      ⑦區域性資料儲存。當某層資料流圖中的資料儲存不是父圖中相應加工的外部介面,而只是本圖中某些加工之間的資料介面,則稱這些資料儲存為區域性資料儲存。
      ⑧提高資料流圖的易懂性。注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工,這樣可以減少加工之間輸入、輸出資料流的數目,增加資料流圖的可理解性。
  圖3-6給出了採用這套符號畫出的等價於圖3-2的DFD。

3.3.3流程圖的例項