Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          數(shù)據(jù)流圖的設(shè)計
          ?
          ??? 數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD)是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)歷的變換,其既提供了功能建模機制也提供了信息建模機制。
          ?
          一、DFD中的基本符號:
          ?
          ??? 數(shù)據(jù)流圖有四種基本圖形符號:
          ?
          ??? →:箭頭,表示數(shù)據(jù)流
          ??? 〇:圓或橢圓,表示加工,即變換數(shù)據(jù)的處理
          ??? =:雙杠(或開口矩形),表示數(shù)據(jù)存儲
          ??? □:方框,表示數(shù)據(jù)的源點或終點
          ?
          二、DFD中的4中元素:
          ?
          ??? (1)數(shù)據(jù)流:數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,因此由一組成分固定的數(shù)據(jù)組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等數(shù)據(jù)項組成。
          ?????????????? 數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有流向,除了與數(shù)據(jù)存儲之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。
          ??? (2)加工(數(shù)據(jù)處理):對數(shù)據(jù)流進行某些操作或變換。每個加工也要有名字,通常是動詞短語,簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)編號。
          ??? (3)數(shù)據(jù)存儲(文件):指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。
          ??? (4)數(shù)據(jù)源點或終點(外部實體):是本軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實體。一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖。
          ?
          三、畫數(shù)據(jù)流圖的步驟:
          ?
          ??? (1)首先畫系統(tǒng)的輸入輸出,即先畫頂層數(shù)據(jù)流圖。頂層流圖只包含一個加工,用以表示被開發(fā)的系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù)、輸出數(shù)據(jù)流。頂層圖的作用在于表明被開發(fā)系統(tǒng)的范圍以及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。下圖為飛機機票預(yù)訂系統(tǒng)的頂層圖。
          ?
          ??? DFD01
          ?
          ??? (2)畫系統(tǒng)內(nèi)部,即畫下層數(shù)據(jù)流圖。不再分解的加工稱為基本加工。一般將層號從0開始編號,采用自頂向下,由外向內(nèi)的原則。畫0層數(shù)據(jù)流圖時,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個子系統(tǒng)間的數(shù)據(jù)接口和活動關(guān)系。例如,在上面的機票預(yù)訂系統(tǒng)按功能可分成兩部分,一部分為旅行社預(yù)訂機票,另一部分為旅客取票,兩部分通過機票文件的數(shù)據(jù)存儲聯(lián)系起來,0層數(shù)據(jù)流圖如上圖。
          ?
          ??? (3)注意事項:
          ??? 命名:不論數(shù)據(jù)流、數(shù)據(jù)存儲還是加工,合適的命名使人們易于理解其含義。
          ??? 畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。
          ??? 一般不畫物質(zhì)流:數(shù)據(jù)流反映能用計算機處理的數(shù)據(jù),并不是實物,因此對目標系統(tǒng)的數(shù)據(jù)流圖一般不要畫物質(zhì)流。
          ??? 每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流:反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。
          ??? 編號:如果一張數(shù)據(jù)流圖中的某個加工分解成另一張數(shù)據(jù)流圖時,則上層圖為父圖,直接下層圖為子圖。子圖及其所有的加工都應(yīng)編號。
          ??? 父圖與子圖的平衡:子圖的輸入輸出數(shù)據(jù)流同父圖相應(yīng)加工的輸入輸出數(shù)據(jù)流必須一致,此即父圖與子圖的平衡。
          ??? 局部數(shù)據(jù)存儲:當某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。
          ??? 提高數(shù)據(jù)流圖的易懂性:注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工,這樣可以減少加工之間輸入、輸出數(shù)據(jù)流的數(shù)目,增加數(shù)據(jù)流圖的可理解性。
          ??? ??? DFD02
          ?
          四、數(shù)據(jù)流程圖的主要作用:
          ?
          ??? 1、便于用戶表達功能需求和數(shù)據(jù)需求及其聯(lián)系
          ??? 2、便于兩類人員共同理解現(xiàn)行系統(tǒng)和規(guī)劃系統(tǒng)的框架
          ??? 3、清晰表達數(shù)據(jù)流的情況
          ??? 4、有利于系統(tǒng)建模

          ?
          五、常見錯誤檢測:
          ?
          ??? 1、數(shù)據(jù)流圖中所有圖形符號只能是4種基本符號
          ??? 2、數(shù)據(jù)流圖的主圖(非頂層圖)必須包含4中基本元素,缺一不可
          ??? 3、主圖的數(shù)據(jù)流必須封閉在外部實體之間,外部實體可以不只1個
          ??? 4、每個加工至少有1個輸入數(shù)據(jù)流和1個輸出數(shù)據(jù)流
          ??? 5、數(shù)據(jù)流圖中必須按層給加工框編號,編號需體現(xiàn)各個層次的關(guān)系
          ??? 6、任何數(shù)據(jù)流子圖均與上層的一個加工對應(yīng),且父圖與子圖平衡
          ??? 7、圖上每個元素都必須有名字
          ??? 8、數(shù)據(jù)流圖中不可夾帶控制流
          ?
          ??? 注:部分文件不需要在上層圖中畫出。例如某文件僅與某個單一的加工相關(guān),則此文件為部分文件,只需要在表示該加工的子圖中畫出即可。
          ?
          ?
          ?
          posted on 2009-04-23 22:56 decode360 閱讀(2393) 評論(0)  編輯  收藏 所屬分類: 12.Certified
          主站蜘蛛池模板: 安宁市| 类乌齐县| 镇远县| 本溪市| 福清市| 江源县| 玛纳斯县| 和政县| 长泰县| 古浪县| 瑞安市| 舟曲县| 富裕县| 安吉县| 洪湖市| 山阳县| 金平| 岢岚县| 肇东市| 东海县| 鄂托克旗| 偏关县| 介休市| 平湖市| 长海县| 陕西省| 全州县| 峡江县| 台南县| 开阳县| 马鞍山市| 和静县| 景泰县| 大荔县| 禹城市| 岗巴县| 辽源市| 监利县| 合江县| 台北县| 双江|