资料流程图dfddataflowdiagram#.ppt
77页1,第4章 資料與流程塑模 (建立企業模型),,2,簡介,本章中,我們將使用資料與流程塑模的技術來開發出所提議系統的邏輯模型並記錄系統需求 一個邏輯模型(logical model)顯示出系統必須做些什麼,而不管實體的實作方式 在系統設計階段,系統分析師進一步建立一套實體模型(physical model)來描繪出建構系統的方式 資料與流程塑模牽涉到三種主要的工具︰ 資料流程圖、資料詞典,及處理工作說明3,資料與流程塑模工具概述,系統分析師使用許多繪圖技術來描述一個資訊系統,一個常用的方法是繪製一套資料流程圖 資料流程圖(DFD, data flow diagram #)使用各式各樣的符號,顯示系統如何將輸入資料轉換為有用的資訊4,資料流程圖,資料流程圖(DFD)顯示資料在資訊系統中移動的方式,但卻無法呈現程式的邏輯或處理的步驟 DFD提供的是一種邏輯模型,著重在系統能做些什麼,而不是如何完成這些事情 資料流程圖的符號 資料流程圖使用四種基本符號來代表處理工作、資料流、資料儲存和外部實體 本書採用稱為Gane & Sarson符號集(Gane and Sarson symbol set)的流行版本作為例子。
另一種流行的符號集是Yourdon符號集(Yourdon symbol set) 參閱圖4-3),5,資料流程圖,處理工作符號 一個處理工作(process #)接受輸入資料而產生不同內容及形式的輸出計算工資,處理工作包含了商業邏輯(business logic),也稱為商業規則(business rules),它可以轉換資料並產生想要的結果 處理工作的符號是一個帶有圓角的矩形 一個處理工作的名稱出現在矩形的內部 處理工作的名稱顯示出特定的功能,因此是由一些動詞(需要時可加上形容詞),其後伴隨著一個單數名詞而組成工資率,,工作時數,,,總工資,6,資料流程圖,資料流程圖並不顯示處理的細節,處理工作符號並不顯示出它的商業邏輯,要記錄這種邏輯,你可以製作一個處理工作說明 在資料流程圖中,一個處理工作可被視為一個黑盒子(black box),因為其輸入、輸出,和一般功能可以看到,但是其內部細節和處理工作邏輯則沒有顯示出來 當系統分析師想要顯示出更深層的細節時,他就可以把一個處理工作符號放大而產生能展現該處理工作內部運作的細部DFD,而其中可能又顯現出更多的處理工作、資料流及資料儲存 資料流符號 資料流(data flow #)是資料從資訊系統的一個部分移動到另一個部分的路線。
7,資料流程圖,DFD中的一個資料流代表一項或多項資料 一個資料流可以代表一個簡單的資料項目(例如: 一名學生的學號),或者也可以代表一個資料集合(例如: 一個帶有學生學號、姓名,及註冊日期的班級名單) 資料流的符號以直線表示,其中並帶有單向或雙向箭頭 資料流名稱可以出現在直線的上方、下方或旁邊 資料流的名稱由一個英文單數名詞,必要時還有一個形容詞所構成,例如: 「學生成績」(STUDENT GRADE) ,「訂單」(ORDER) 此一命名規則也有例外情況,例如:「評分參數」(GRADING PARAMETERS),這個名稱使用複數以免造成你誤以為它只有一項資料存在 因為處理工作把資料從一種形式轉變為另一種形式,所以每一個處理工作符號必然至少有一個資料流進入和一個資料流流出8,資料流程圖,一個處理工作符號可以有不止一個流出的資料流,或不止一個進入的資料流 (如下圖4-5) 處理工作還可能連接到任何其他符號,包括另外一個處理工作符號 一個資料流至少在其一端必然有一個處理工作符號製作發票,,,所執行的服務,客戶,,發票,批改學生 作業,,學生交的作業,,批改過的作業,,學生作業成績,學生,學生,9,資料料流程圖,下列三種是必須避免的資料流與處理工作的結合情況︰ 自發產生(spontaneous generation)︰ 一個處理工作只有輸出,沒有輸入資料流,這個處理工作就稱為自發產生處理工作。
計算員工 總工資,,工作時數,,工資率,員工總工資,,,員工工資資料,,核對訂單,調集所訂 貨品,,訂單,,接受的訂單,,更新後的庫存量,申請保險 給付,,支付金額,,保險單號碼,,, 自發產生處理工作,10,資料料流程圖,黑洞(black hole)︰ 一個黑洞處理工作,也就是一種有輸入但不產生輸出的處理工作 灰洞(gray hole)︰ 灰洞處理工作是至少有一個輸入和一個輸出的處理工作,但是該輸入顯然不足以產生此一輸出 自發產生、黑洞,和灰洞都是在DFD邏輯上不可能存在的計算 總工資,,工資率,,工作時數,,,計算 成績,,最後成績,,出生日期,,,黑洞處理工作,灰洞處理工作,11,資料料流程圖,資料儲存符號 資料儲存(data store #),用來表示系統儲存的資料,因為有些處理工作稍後需要用到這些資料 DFD中並不顯示資料儲存的詳細內容,其確切的結構和資料項目定義在資料詞典中輸入成績,,測驗成績,學生,任課老師,,作業成績,各種成績,,,成績資料,,計算成績,各種成績,,學期成績,列印成績,學期成績,導師,全班成績單,個人成績單,,12,資料料流程圖,資料儲存的實體特徵並不重要,因為你僅僅關心其邏輯模型。
此外資料儲存的時間長度也不重要,它可以是幾秒鐘,也可以是數個月,甚至是永遠儲存 重要的是,某個處理工作需要在以後的某個時間存取這種資料 資料儲存的名稱是一個複數名詞,由一個名詞與必要時一些形容詞所組成,如: 「學生」(STUDENTS)、「應收帳款」(ACCOUNTS RECEIVABLE、 「產品」(PRODUCTS)…等等員工,,,薪資表,,計算薪資,當月薪資總所得,,當月 扣繳稅率,結算年度 薪資,當月扣繳稅額,,,薪資表,,,每月扣繳稅額,每月薪資總所得,,,年度扣繳憑單,return to p23,13,資料料流程圖,使用複數名詞這個規則的例外情況,是使用一些集合名詞來表示發生多次的物件 例如,「成績簿」 (GRADEBOOK)表示一群學生和他們的成績 資料儲存必然透過資料流連接於一個處理工作 在每一種情況之下,一個資料儲存至少有一個流入和一個流出的資料流,並連接於一個帶有資料流的處理工作客戶,付款入帳,,,每日付款資料,,準備存款,,現金或支票,付款資料,付款資料,銀行,現金或支票,應收帳款,,,,,付款資料,資料流程圖中,資料儲存符號正確使用舉例: (圖4-7),14,資料料流程圖,會計,製作發票,,,應收帳款,,付款入帳,,發票資料,發票,付款細節,客戶,現金或支票,病人,病人入院,,,病人資料,,診斷病人,,病人基本資料,住院單,病歷資料,醫師,症狀與病歷資料,發票細節,治療病人,症狀,處方籤,處方籤,資料流程圖中,資料儲存符號正確使用舉例:,15,資料料流程圖,,,課程資料,,,,學生資料,,,班級名單,,,,,付款入帳,,,每日付款資料,,錯誤使用資料儲存符號的例子:,兩個資料儲存不能由沒有處理工作做轉介的一個資料流連接:,,客戶存款,,,,,,預訂航班,,,乘客資料,,,航班要求,,,,每一個資料儲存應當有一個流出和流入的資料流:,只有流入沒有流出,只有流出沒有流入,16,資料料流程圖,資料儲存必須至少有一個流入和一個流出的原則有一個例外。
在某些情況下,一個資料儲存沒有流入的資料流,因為它的內容是固定的參考資料,而這個資料不是由此系統負責更新 例如,考量一個稱為TAX TABLE(稅率表)的資料儲存,其內容是公司由國稅局下載的扣繳稅率表 外部實體符號 外部實體(或簡稱實體)的符號是一個矩形,外部實體的名稱置於矩形符號之中 DFD顯示出一個資訊系統的邊界,以及資訊系統如何與外部世界互動 例如,提出訂單的顧客,提供醫療資料的病人、收到財產稅單的屋主、提供存貨項目清單的倉庫,以及從公司的採購系統接受資料的應付帳款系統等都是一個外部實體的例子17,資料料流程圖,DFD中的各個實體又稱端點(terminators),因為它們是資料的來源或是最終的去處 提供資料給系統的外部實體稱為來源(source),從系統接收資料的實體則稱為去處(sink) 外部實體的名稱是一個單數形式,它可能是一個部門、外部組織、其他資訊系統,或個人 外部實體可能是一個來源、或是一個去處,抑或兼具兩者的角色 一個外部實體必然以資料流連接於某個處理工作參考下頁圖4-9(正確的例子)及圖4-10 (錯誤的例子)),18,資料料流程圖,圖4-9 資料流程圖中,正確使用外部實體的例子:,要求付款,,付款,準備存款,,銀行存款,確認訂單,,訂單,客戶,銀行,客戶,,發票,資料的來源及去處,資料的去處,資料的來源,員工,製作 工資支票,確認工時卡,,工資支票,工時卡,,資料的去處,資料的來源,19,資料料流程圖,圖4-10(下圖) 資料流程圖中,錯誤使用外部實體符號的例子。
外部實體必須由資料流連接於處理工作,並且不直接連接於資料儲存或另一個外部實體:,客戶,,,應收帳款,,,現金或支票,,,,,,,銀行,,,每日付款,,,銀行存款,客戶,,工資支票,員工,20,資料料流程圖,圖4-11 DFD中連接處理工作、資料儲存,和外部實體的規則︰,21,繪製一組DFD的方法,藉由執行以下三個步驟,你就會了解如何產生一套DFD : 第一步: 繪製環境圖(context diagram #) 第二步: 繪製DFD的圖0 (diagram 0 #或level 0 diagram) (即環境圖之分解圖) 第三步: 繪製較低階層的圖形22,繪製一組DFD的方法,繪圖DFD的準則: 每一張環境圖必須以一頁的篇幅完成 在環境圖,應該以資訊系統的名稱作為處理工作名稱 對於較低階層的DFD中的處理工作,則採用動詞加上一個描述性質的名詞,像是「建立成績簿」、「給定最後成績」或「產生成績報表」 在每一組符號內使用唯一的名稱23,繪製一組DFD的方法,線條不能交叉 實現這個目標的一種方法是限制DFD中的符號數目 在具有多個處理工作的較低階圖形中,你不該有九個以上的處理工作符號 含有九個以上的符號就表示你的圖形過於複雜,而應當重新考慮你的分析。
避免線條交叉的另一個方法是複製一個外部實體或資料儲存 要在複製後的符號名稱旁邊和其內附加特別的記號,像是星號之類,表明它們在圖形中是重複的(ref. p12) 對每一個處理工作採用一個唯一的參考編號及名稱 儘可能取得使用者的意見與回饋 主要目的是確保你的模型是正確且易於瞭解的24,繪製一組DFD的方法,步驟1: 繪製環境圖 建立一個DFD的第一步是畫出一個環境圖 環境圖(context diagram #)是資訊系統最上層的檢視,可以表示系統的邊界及範圍 在環境圖中,不會顯示任何資料儲存,因為資料儲存位在系統的內部,要到製作更詳細的圖形時,才會顯現出來 在環境圖中,要放入哪些外部實體和資料流呢?你可以由查閱系統需求著手,指出所有的外部資料來源和目的地 在這個階段,你必須記錄所有外部實體的名稱、資料流的名稱和內容,以及資料流的方向25,繪製一組DFD的方法,環境圖實例︰,圖4-12 評分系統的DFD 環境圖,26,繪製一組DFD的方法,圖4-13 一個訂單系統的DFD環境圖,27,繪製一組DFD的方法,看起來,訂單系統的環境圖比評分系統更加複雜,因為它多了兩個實體和三個資料流 系統的複雜度取決於: (1) 其組成元件的個數 (2) 其層次的數目 (3) 其處理工作、實體、資料儲存,及資料流之間的互動程度。
28,繪製一組DFD的方法,圖4-14 一個製造系統的DFD環境圖,return to p22,29,繪製一組DFD的方法,步驟2 : 繪製DFD的圖0 環境圖提供一個資訊系統最高階層的整體概觀,其中只有單獨一個像黑箱一般的處理工作符號 圖0 (Diagra。





