1、系統分析與設計理論與實務應用(三版)第五章第五章 結構化分析與設計結構化分析與設計流程塑模流程塑模系統分析與設計理論與實務應用(三版)內容大綱內容大綱q學習目標學習目標q第一節第一節 導論導論q第二節第二節 結構化分析與設計評估準則結構化分析與設計評估準則q第三節第三節 資料流程圖建構策略資料流程圖建構策略q第四節第四節 資料流程圖建構指南資料流程圖建構指南q第五節第五節 資料流程圖的評估資料流程圖的評估q第六節第六節 資料流程圖轉結構圖與模組設計資料流程圖轉結構圖與模組設計q第七節第七節 結論結論 系統分析與設計理論與實務應用(三版)學習目標學習目標詳讀本章,你至少能瞭解:詳讀本章,你至少能
2、瞭解:q系統分析與設計之評估準則。系統分析與設計之評估準則。q資料流程圖建構策略與指南。資料流程圖建構策略與指南。q如何描述處理規格。如何描述處理規格。q如何將資料流程圖轉成結構圖與模組設計如何將資料流程圖轉成結構圖與模組設計。系統分析與設計理論與實務應用(三版)導論導論q結構化之分析與設計將所面對問題之流程與資結構化之分析與設計將所面對問題之流程與資料分開處理,並分別稱為流程塑模與資料塑料分開處理,並分別稱為流程塑模與資料塑模。本章先介紹流程塑模。模。本章先介紹流程塑模。q流程塑模流程塑模主要是主要是以資料流程圖作為塑模之工以資料流程圖作為塑模之工具,將企業流程分解成具層級結構之模組具,將企
3、業流程分解成具層級結構之模組。系統分析與設計理論與實務應用(三版)結構化分析與設計評估結構化分析與設計評估準則準則q良好的結構化設計有良好的結構化設計有三個特徵:三個特徵:l模組間有很好的分割模組間有很好的分割l階層式的系統架構階層式的系統架構l獨立的模組功能獨立的模組功能q要達到良好的系統設計與提升模組的品質,要達到良好的系統設計與提升模組的品質,須須考慮:考慮:l模組間的耦合力模組間的耦合力,是指一個系統內部各模組之間的,是指一個系統內部各模組之間的相關程度。相關程度。l模組的內聚力模組的內聚力,是指一個模組內部所做事情之相關,是指一個模組內部所做事情之相關程度。程度。l其他的考慮因素其他
4、的考慮因素,如功能分割等。,如功能分割等。系統分析與設計理論與實務應用(三版)內聚力內聚力q內聚力內聚力(Cohesion)是一種是一種衡量模組內部之工作衡量模組內部之工作相關程度之方法相關程度之方法。換句話說,模組的內聚力。換句話說,模組的內聚力是衡量模組完成一件單一,且定義清楚之工是衡量模組完成一件單一,且定義清楚之工作的程度。內聚力的種類大概可分為七種:作的程度。內聚力的種類大概可分為七種:l功能內聚力功能內聚力l順序內聚力順序內聚力l溝通內聚力溝通內聚力l暫時內聚力暫時內聚力l程序內聚力程序內聚力l邏輯內聚力邏輯內聚力l偶發內聚力偶發內聚力系統分析與設計理論與實務應用(三版)內聚力內聚
5、力(續)續)q功能內聚力功能內聚力l係指當一個模組只做一件事情,亦即具有唯一係指當一個模組只做一件事情,亦即具有唯一的功能,是為功能型的內聚力。例如:的功能,是為功能型的內聚力。例如:檢查身分證號檢查身分證號碼的正確性碼的正確性以異動檔更新以異動檔更新庫存主檔庫存主檔計算營業稅計算營業稅系統分析與設計理論與實務應用(三版)內聚力內聚力(續續1)q順序內聚力順序內聚力l係指模組內具有多個功能或處理多件事情,且係指模組內具有多個功能或處理多件事情,且一項功能的輸出立即成為下一個功能的輸入,一項功能的輸出立即成為下一個功能的輸入,亦即共用相同資料,則此模組具有順序內聚亦即共用相同資料,則此模組具有順
6、序內聚力。力。讀取某數值讀取某數值X計算計算X之之平方平方將計算所得結果顯將計算所得結果顯示於螢幕上示於螢幕上系統分析與設計理論與實務應用(三版)內聚力內聚力(續續2)q溝通內聚力溝通內聚力l係指模組內具有多個功能或處理多件事情,且這些係指模組內具有多個功能或處理多件事情,且這些功能使用相同的資料(輸入),但它們的執行順序功能使用相同的資料(輸入),但它們的執行順序沒有相關性。沒有相關性。產品資料產品資料查詢品名規格查詢品名規格查詢庫存數量查詢庫存數量查詢儲存架位查詢儲存架位系統分析與設計理論與實務應用(三版)內聚力內聚力(續續3)q暫時內聚力暫時內聚力l模組內具有多個功能或處理多件事情,但是
7、這些功模組內具有多個功能或處理多件事情,但是這些功能僅僅在時序上有所關聯,也就是必須在同一時間能僅僅在時序上有所關聯,也就是必須在同一時間內執行完成,所以這種模組具有暫時內聚力。內執行完成,所以這種模組具有暫時內聚力。設定變數起始值設定變數起始值設定日期格式設定日期格式指定資料檔路徑指定資料檔路徑清除所有變數清除所有變數系統分析與設計理論與實務應用(三版)內聚力內聚力(續續4)q程序內聚力程序內聚力l係指模組內具有多個功能或處理多件事情,這些功係指模組內具有多個功能或處理多件事情,這些功能必須按照一定的順序來執行,且不共用資料,這能必須按照一定的順序來執行,且不共用資料,這些功能群集在一個模組
8、內僅為了確保它們的執行順些功能群集在一個模組內僅為了確保它們的執行順序,則這模組具有程序內聚力。序,則這模組具有程序內聚力。起始旗標起始旗標儲存上一儲存上一筆交易筆交易讀取下一讀取下一筆交易筆交易起始計數起始計數系統分析與設計理論與實務應用(三版)內聚力內聚力(續續5)q邏輯內聚力邏輯內聚力l係指模組內具有多個邏輯上相關聯的功能。係指模組內具有多個邏輯上相關聯的功能。系統輸出系統輸出模組模組使用者的使用者的付款日期付款日期報表資料報表資料錯誤訊息錯誤訊息將結果輸出到將結果輸出到磁碟機上磁碟機上輸輸 出出系統分析與設計理論與實務應用(三版)內聚力內聚力(續續6)q偶發內聚力偶發內聚力l若一個模組
9、內部要做好幾件工作,且每一件工作都若一個模組內部要做好幾件工作,且每一件工作都不相干,則該模組具有偶發內聚力。在設計時,偶不相干,則該模組具有偶發內聚力。在設計時,偶發內聚力應盡量避免,例如可將個別的工作分別獨發內聚力應盡量避免,例如可將個別的工作分別獨立出來自成一個模組,使各模組具有功能內聚力。立出來自成一個模組,使各模組具有功能內聚力。列印資產負債表列印資產負債表計算所得稅計算所得稅查詢庫存量查詢庫存量系統分析與設計理論與實務應用(三版)圖圖5-8 模組內聚力之判定模組內聚力之判定決策樹決策樹是否僅從事與問題相關的單一功能?是否僅從事與問題相關的單一功能?功能型功能型順序型順序型溝通型溝通
10、型程序型程序型暫時型暫時型邏輯型邏輯型偶發型偶發型共用相共用相同資料同資料資料是否有資料是否有順序性?順序性?流程是否有流程是否有順序性?順序性?功能邏輯是否功能邏輯是否相關聯?相關聯?流程流程控制控制無關無關模組內各個活動的關係為何?模組內各個活動的關係為何?(非以上兩種)(非以上兩種)是是是是否否是是否否是是否否否否系統分析與設計理論與實務應用(三版)表表5-1 內聚力之內聚力之評比因素與結果評比因素與結果 內聚力內聚力種類種類耦合力耦合力情形情形模組撰寫模組撰寫難易難易與其他程式與其他程式之共用性之共用性維護性維護性瞭解性瞭解性功能型功能型順序型順序型溝通型溝通型程序型程序型暫時型暫時型
11、邏輯型邏輯型偶發型偶發型好好好好中等中等變動變動差差很差很差很差很差好好好好好好中等中等中等中等很差很差差差好好中等中等差差差差很差很差很差很差很差很差好好好好中等中等變動變動中等中等很差很差很差很差好好好好中等中等變動變動中等中等差差很差很差系統分析與設計理論與實務應用(三版)耦合力耦合力q耦合力是一種衡量模組間相互關聯強度的方耦合力是一種衡量模組間相互關聯強度的方法。法。q當解決了一模組內的錯誤狀況,而在其他的模當解決了一模組內的錯誤狀況,而在其他的模組內引起了新的錯誤,這種現象稱為連鎖反組內引起了新的錯誤,這種現象稱為連鎖反應應。q解決連鎖反應之可行方法是盡量使一個模組不解決連鎖反應之可
12、行方法是盡量使一個模組不與其他模組糾結在一起,即讓每個模組盡量的與其他模組糾結在一起,即讓每個模組盡量的獨立。獨立。系統分析與設計理論與實務應用(三版)耦合力耦合力(續)續)q耦合力可分為五類:耦合力可分為五類:l資料耦合力資料耦合力l資料結構耦合力資料結構耦合力l控制耦合力控制耦合力l共同耦合力共同耦合力l內容耦合力內容耦合力系統分析與設計理論與實務應用(三版)耦合力耦合力(續續1)q資料耦合力資料耦合力l係指模組間如果使用一些簡單型別資料作為兩模組係指模組間如果使用一些簡單型別資料作為兩模組間傳遞之參數,則稱此模組間具有資料耦合力。間傳遞之參數,則稱此模組間具有資料耦合力。計算客戶帳單計算
13、客戶帳單計算房屋計算房屋貸款償還貸款償還償還率償還率貸款總額貸款總額利率利率系統分析與設計理論與實務應用(三版)耦合力耦合力(續(續2)q資料結構耦合力資料結構耦合力l係指模組間以資料結構型別來做程式的介面,但並係指模組間以資料結構型別來做程式的介面,但並非每個模組均用到該資料結構之所有欄位。非每個模組均用到該資料結構之所有欄位。l例如有一個資料結構稱為租車,該資料結構有例如有一個資料結構稱為租車,該資料結構有六個欄位:牌照號碼、會員證號碼、使用汽油量、六個欄位:牌照號碼、會員證號碼、使用汽油量、汽車型式、已開公里數與租借天數等。若這三個模汽車型式、已開公里數與租借天數等。若這三個模組間是以租
14、車之資料結構作為程式的介面組間是以租車之資料結構作為程式的介面(如圖(如圖 5-10),則這些模組間具有資料結構耦合),則這些模組間具有資料結構耦合力。力。系統分析與設計理論與實務應用(三版)圖圖5-10 資料結構耦合力資料結構耦合力產生汽車產生汽車租金帳單租金帳單計算基本計算基本汽車租金汽車租金計算油費計算油費租車租車租車租車系統分析與設計理論與實務應用(三版)耦合力耦合力(續續3)q資料結構耦合力可能產生以下的問題:資料結構耦合力可能產生以下的問題:l雖然每一個模組可能只用到局部的欄位,但只要資雖然每一個模組可能只用到局部的欄位,但只要資料結構內任一個欄位修改過,則所有的相關模組均料結構內
15、任一個欄位修改過,則所有的相關模組均會受影響。會受影響。l每一個模組使用了比實際需要更多的記憶體空間。每一個模組使用了比實際需要更多的記憶體空間。解決資料結構耦合力的方法是將所要用到的欄位傳解決資料結構耦合力的方法是將所要用到的欄位傳遞過去,而不必傳整個資料結構,則資料結構耦合遞過去,而不必傳整個資料結構,則資料結構耦合力就可改變成資料耦合力。力就可改變成資料耦合力。系統分析與設計理論與實務應用(三版)耦合力耦合力(續續4)q控制耦合力控制耦合力l係指當一模組傳遞旗標去控制另一個模組內的作業係指當一模組傳遞旗標去控制另一個模組內的作業(內部邏輯)時,則稱這兩模組之間具有控制耦合(內部邏輯)時,
16、則稱這兩模組之間具有控制耦合力。例如有兩個模組:報表列印選擇與產生庫存報力。例如有兩個模組:報表列印選擇與產生庫存報表或異動報表,前一個模組傳送旗標來控制下一個表或異動報表,前一個模組傳送旗標來控制下一個模組做輸入或輸出之動作(如圖模組做輸入或輸出之動作(如圖 5-11),則這兩模),則這兩模組間具有控制耦合力組間具有控制耦合力。系統分析與設計理論與實務應用(三版)圖圖5-11 控制耦合力控制耦合力報表列印選擇報表列印選擇列印報表列印報表選擇旗標選擇旗標庫存報表庫存報表異動報表異動報表產生庫存報表產生庫存報表或異動報表或異動報表系統分析與設計理論與實務應用(三版)耦合力耦合力(續續5)q控制耦
17、合力之缺點控制耦合力之缺點l如果被呼叫的模組被拆成兩個或兩個以上的模組如果被呼叫的模組被拆成兩個或兩個以上的模組時,會因資料的糾結或須瞭解呼叫模組等而不易達時,會因資料的糾結或須瞭解呼叫模組等而不易達到目的。到目的。l撰寫呼叫模組時,如不瞭解被呼叫的模組,便不易撰寫呼叫模組時,如不瞭解被呼叫的模組,便不易著手撰寫程式,同時會增加程式測試的成本。著手撰寫程式,同時會增加程式測試的成本。q共同耦合力共同耦合力l兩模組使用相同的資料區且都可讀寫資料區內之資兩模組使用相同的資料區且都可讀寫資料區內之資料,則這兩模組具有共同耦合力。料,則這兩模組具有共同耦合力。系統分析與設計理論與實務應用(三版)圖圖5
18、-12 共同耦合力共同耦合力更新物料更新物料主檔主檔更新庫存更新庫存主檔主檔產生錯誤訊息旗標表產生錯誤訊息旗標表無此無此料號料號無此無此料號料號系統分析與設計理論與實務應用(三版)耦合力(續耦合力(續6)q共同耦合力盡量少用,主要原因為:共同耦合力盡量少用,主要原因為:l如果共用資料產生錯誤,則所有涉及之模組均會受如果共用資料產生錯誤,則所有涉及之模組均會受影響。影響。l使用共同資料區的模組名稱均模稜兩可,不易定使用共同資料區的模組名稱均模稜兩可,不易定義,經常會造成困擾。義,經常會造成困擾。l共用資料區內資料時常會被濫用,使模組的邏輯變共用資料區內資料時常會被濫用,使模組的邏輯變得複雜,而不
19、易瞭解。得複雜,而不易瞭解。l一個使用很多共用資料區的模組,在維護上相當困一個使用很多共用資料區的模組,在維護上相當困難。難。l模組變動時,不知哪些資料會被牽動。模組變動時,不知哪些資料會被牽動。系統分析與設計理論與實務應用(三版)耦合力耦合力(續續7)q內容耦合力內容耦合力l內容耦合力是一個模組使用另一個模組內之部分程內容耦合力是一個模組使用另一個模組內之部分程式碼或改變其他模組內的局部變數。內容耦合力具式碼或改變其他模組內的局部變數。內容耦合力具有下列特徵:有下列特徵:一個模組以多個進入點的方式進入另一模組一個模組以多個進入點的方式進入另一模組(參考圖(參考圖5-13)。)。一個模組參考或
20、改變其他模組的內部資料。一個模組參考或改變其他模組的內部資料。一個模組改變其他模組內部的執行過程。一個模組改變其他模組內部的執行過程。系統分析與設計理論與實務應用(三版)圖圖5-13 控制流程的內容控制流程的內容耦合力耦合力模組模組H:GOTO G1 模組模組G:GOTO G1G1:系統分析與設計理論與實務應用(三版)耦合力耦合力(續續8)q一般來說,耦合力愈弱愈好。一般來說,耦合力愈弱愈好。q模組間的耦合力有時可能不只是單純的一種情模組間的耦合力有時可能不只是單純的一種情形,可能存在兩種以上的耦合力,此時這兩模形,可能存在兩種以上的耦合力,此時這兩模組間的關係以較強的耦合力為準,例如兩個模組
21、間的關係以較強的耦合力為準,例如兩個模組具有資料結構耦合力和共同耦合力的關係,組具有資料結構耦合力和共同耦合力的關係,則我們應以共同耦合力為準。則我們應以共同耦合力為準。系統分析與設計理論與實務應用(三版)表表5-2 耦合力之耦合力之評比因素與結果評比因素與結果耦耦合力合力種類種類連鎖反應連鎖反應狀況狀況修改難度修改難度理解性理解性與其他程式與其他程式之共用性之共用性資料型資料型資料結構型資料結構型控制型控制型共同型共同型內容型內容型變動變動變動變動中等中等差差很差很差好好中等中等差差中等中等很差很差好好中等中等差差很差很差很差很差好好中等中等差差很差很差很差很差系統分析與設計理論與實務應用(
22、三版)耦合力(續耦合力(續9)q一般而言,可以接受的內聚力包含功能內聚一般而言,可以接受的內聚力包含功能內聚力、順序內聚力與溝通內聚力,而在耦合力部力、順序內聚力與溝通內聚力,而在耦合力部分則是資料耦合力與資料結構耦合力。分則是資料耦合力與資料結構耦合力。q雖然這些內聚力與耦合力是可以接受,但就系雖然這些內聚力與耦合力是可以接受,但就系統設計而言,良好的設計希望達到模組內的內統設計而言,良好的設計希望達到模組內的內聚力為功能內聚力,即一個模組只處理單一個聚力為功能內聚力,即一個模組只處理單一個功能;模組間的耦合力為資料耦合力,即模組功能;模組間的耦合力為資料耦合力,即模組間的溝通只使用簡單型別
23、參數來溝通。間的溝通只使用簡單型別參數來溝通。系統分析與設計理論與實務應用(三版)耦合力(續耦合力(續10)q一個良好的設計除了耦合力與內聚力的分析一個良好的設計除了耦合力與內聚力的分析外,尚有一些值得注意的事,包括:外,尚有一些值得注意的事,包括:l模組功能的劃分。當模組太大,為了減少功能重複模組功能的劃分。當模組太大,為了減少功能重複的模組、管理的需求、發展可重複使用的模組或發的模組、管理的需求、發展可重複使用的模組或發展易撰寫的模組等情況時,都是模組功能劃分的適展易撰寫的模組等情況時,都是模組功能劃分的適當時機。當時機。l模組除有正規之處理外,亦須考量錯誤與輔助訊息模組除有正規之處理外,
24、亦須考量錯誤與輔助訊息及例外狀況之處理。及例外狀況之處理。系統分析與設計理論與實務應用(三版)資料流程圖建構策略資料流程圖建構策略q以資料流程圖塑模企業流程是結構化分析與設以資料流程圖塑模企業流程是結構化分析與設計之重點工作,也是系統模組化之重要步驟。計之重點工作,也是系統模組化之重要步驟。q常用的資料流程圖建構方式有兩種:由上往下常用的資料流程圖建構方式有兩種:由上往下分割與由中間往外建構方式。分割與由中間往外建構方式。系統分析與設計理論與實務應用(三版)由上往下分割由上往下分割q以由上往下分割之方式建立資料流程圖之步驟以由上往下分割之方式建立資料流程圖之步驟為:為:l 建構環境圖。建構環境
25、圖。l由環境圖向下階層化,以分割出系統主要功能並圖由環境圖向下階層化,以分割出系統主要功能並圖示之,即第零階之資料流程圖。示之,即第零階之資料流程圖。l對第零階資料流程圖中的每一個處理,再進行向下對第零階資料流程圖中的每一個處理,再進行向下階層化,以產生更低階之資料流程圖,如此重複進階層化,以產生更低階之資料流程圖,如此重複進行,直到資料流程圖中所有處理不需再向下階層化行,直到資料流程圖中所有處理不需再向下階層化為止。為止。系統分析與設計理論與實務應用(三版)由上往下分割由上往下分割(續)續)q應用由上往下分割之方式建構資料流程圖可能應用由上往下分割之方式建構資料流程圖可能會碰到以下的問題:會
26、碰到以下的問題:l第零階之資料流程圖不容易產生,因為系統分析師第零階之資料流程圖不容易產生,因為系統分析師不容易從環境圖直接分出系統的主要功能。不容易從環境圖直接分出系統的主要功能。l對於一個大的系統而言,常依系統分析師的人數來對於一個大的系統而言,常依系統分析師的人數來分割,但這種方式可能不是最佳的方案。分割,但這種方式可能不是最佳的方案。l倘若於舊系統上建立新系統,則舊系統的主要功能倘若於舊系統上建立新系統,則舊系統的主要功能分割方式可能繼續成為新系統的主要功能分割方分割方式可能繼續成為新系統的主要功能分割方式式。系統分析與設計理論與實務應用(三版)由中間往外建構由中間往外建構qYourd
27、on(1988;1989)基於由上往下分割方式可基於由上往下分割方式可能遭遇的問題,因此建議採用由中間往外的方能遭遇的問題,因此建議採用由中間往外的方式建構資料流程圖,其建構步驟為:式建構資料流程圖,其建構步驟為:l建立環境圖。建立環境圖。l建立事件列。建立事件列。l建立初步的資料流程圖,也就是將前述的事件列利建立初步的資料流程圖,也就是將前述的事件列利用事件分割方法,以獲得初步資料流程圖。用事件分割方法,以獲得初步資料流程圖。l對初步資料流程圖不斷地進行向上及向下階層化,對初步資料流程圖不斷地進行向上及向下階層化,直到獲得完整的資料流程圖為止。直到獲得完整的資料流程圖為止。系統分析與設計理論
28、與實務應用(三版)由中間往外建構(續)由中間往外建構(續)q建立環境圖建立環境圖l因環境圖已於需求分析階段建立,因此在系統分析因環境圖已於需求分析階段建立,因此在系統分析階段可以直接應用已建立之環境圖或只對環境圖進階段可以直接應用已建立之環境圖或只對環境圖進行修正即可。行修正即可。q建立事件列建立事件列l可由環境圖中之外部實體逐一檢討其與系統之互動可由環境圖中之外部實體逐一檢討其與系統之互動關係,以建立事件列,並以文句之方式命名關係,以建立事件列,並以文句之方式命名。系統分析與設計理論與實務應用(三版)由中間往外建構(續由中間往外建構(續1)q建立初步的資料流程圖建立初步的資料流程圖l將事件列
29、利用事件分割的方法,建立初步資料流程將事件列利用事件分割的方法,建立初步資料流程圖圖,其步驟如下:其步驟如下:確定系統對每個事件所做的回應確定系統對每個事件所做的回應 連接每個事件所對應的資料流程圖並建立初步連接每個事件所對應的資料流程圖並建立初步資料流程圖資料流程圖系統分析與設計理論與實務應用(三版)由中間往外建構(續由中間往外建構(續2)q對初步資料流程圖進行向上及向下階層化,直對初步資料流程圖進行向上及向下階層化,直到獲得完整的資料流程圖為止到獲得完整的資料流程圖為止l因為每個事件對應一個處理因為每個事件對應一個處理,若事件列中有若事件列中有50個事個事件,那麼初步資料流程圖中亦將有件,
30、那麼初步資料流程圖中亦將有50個處理,因此個處理,因此必須進行向上階層化,以降低初步必須進行向上階層化,以降低初步DFD的處理個的處理個數,但亦額外增加上層數,但亦額外增加上層DFD。另外部分處理可能需另外部分處理可能需進行向下階層化,因此也會增加額外的下層進行向下階層化,因此也會增加額外的下層DFD。系統分析與設計理論與實務應用(三版)資料流程圖建構指南資料流程圖建構指南q以由中間往外之策略建立資料流程圖時,需做以由中間往外之策略建立資料流程圖時,需做小幅修正,因為:小幅修正,因為:l目前應用系統之設計大多以資料庫為中心,也就是目前應用系統之設計大多以資料庫為中心,也就是說,大部分之處理所需
31、之資料輸入與輸出都直接經說,大部分之處理所需之資料輸入與輸出都直接經由資料庫,而非處理間之直接傳遞。由資料庫,而非處理間之直接傳遞。l第第3章建議用流程圖配合處理描述、藍圖與資料詞章建議用流程圖配合處理描述、藍圖與資料詞彙,以表達使用者之巨觀需求。彙,以表達使用者之巨觀需求。l上述概念因已包含環境圖與事件列之資訊,故可捨上述概念因已包含環境圖與事件列之資訊,故可捨棄此兩步驟。棄此兩步驟。系統分析與設計理論與實務應用(三版)資料流程圖建構指南(續)資料流程圖建構指南(續)q資料流程圖之階層數最多不要超過四層,也就資料流程圖之階層數最多不要超過四層,也就是至多到第三階之資料流程圖,因為層級愈多是至
32、多到第三階之資料流程圖,因為層級愈多表示以後系統結構之縱深愈長,系統也愈不易表示以後系統結構之縱深愈長,系統也愈不易維護。維護。系統分析與設計理論與實務應用(三版)資料流程圖建構指南(續資料流程圖建構指南(續1)q修正後之由中間往外策略的實施程序之詳細步修正後之由中間往外策略的實施程序之詳細步驟如下:驟如下:q步驟一:找出初步步驟一:找出初步DFD元素元素l首先,從需求分析之結果(流程圖及其處理描述、首先,從需求分析之結果(流程圖及其處理描述、藍圖與資料詞彙),找出初步資料流程圖之:藍圖與資料詞彙),找出初步資料流程圖之:外部實體外部實體 處理處理 資料儲存資料儲存 資料流等資料流等系統分析與
33、設計理論與實務應用(三版)資料流程圖建構指南(續資料流程圖建構指南(續2)q找出外部實體找出外部實體l外部實體可由所有流程圖中之外部實體得到,也就外部實體可由所有流程圖中之外部實體得到,也就是找出在電腦化時與系統有互動關係之外部實體。是找出在電腦化時與系統有互動關係之外部實體。q找出處理找出處理l初步資料流程圖之處理可由所有流程圖上之處理得初步資料流程圖之處理可由所有流程圖上之處理得到,每個處理皆有其輸入與輸出格式到,每個處理皆有其輸入與輸出格式、所涉及之主所涉及之主要與次要外部實體等。要與次要外部實體等。系統分析與設計理論與實務應用(三版)資料流程圖建構指南(續資料流程圖建構指南(續3)q
34、找出資料儲存找出資料儲存l資料儲存可由需求分析中之藍圖(包括輸入與輸出資料儲存可由需求分析中之藍圖(包括輸入與輸出格式)尋找。格式)尋找。l一般來說,一個原始藍圖至少可產生一個資料儲一般來說,一個原始藍圖至少可產生一個資料儲存,但經常是可以產生好幾個存,但經常是可以產生好幾個。q 找出資料流找出資料流l找出外部實體、處理與資料儲存後,便可逐一檢查找出外部實體、處理與資料儲存後,便可逐一檢查每一處理所需之資料來自何方及輸出到何處。每一處理所需之資料來自何方及輸出到何處。l此外,每一處理之主要行為者,其資料流均為雙此外,每一處理之主要行為者,其資料流均為雙向。向。系統分析與設計理論與實務應用(三版
35、)資料流程圖建構指南(續資料流程圖建構指南(續4)q以夢幻系統之銷售流程圖為例,至少可整理出以夢幻系統之銷售流程圖為例,至少可整理出客戶、業務部與生產部三個外部實體,訂貨與客戶、業務部與生產部三個外部實體,訂貨與送貨兩個處理及五個資料儲存。送貨兩個處理及五個資料儲存。q對訂單處理而言,它由客戶傳送資料所引發,對訂單處理而言,它由客戶傳送資料所引發,主要行為者為業務部,業務部分別從客戶、產主要行為者為業務部,業務部分別從客戶、產品與訂單中擷取資料,經處理後之結果存於訂品與訂單中擷取資料,經處理後之結果存於訂單資料儲存,並傳送一份給業務部(同單位)單資料儲存,並傳送一份給業務部(同單位)或生產部等
36、外部實體(參考表或生產部等外部實體(參考表5-4)。)。系統分析與設計理論與實務應用(三版)表表5-4 資料流表達範例資料流表達範例客戶客戶 產品產品 訂單訂單生產生產需求需求送貨單送貨單 客戶客戶 業務部業務部生產生產部部訂單處訂單處理理 送貨處送貨處理理 系統分析與設計理論與實務應用(三版)資料流程圖建構指南(續資料流程圖建構指南(續5)q步驟二:向上整合以建立資料流程圖步驟二:向上整合以建立資料流程圖l若處理的數目很少且很單純,可不需向上整合而直若處理的數目很少且很單純,可不需向上整合而直接劃出最終之資料流程圖,但在大部分的情況可能接劃出最終之資料流程圖,但在大部分的情況可能需將處理分群
37、,以向上整合成較高層次之處理,且需將處理分群,以向上整合成較高層次之處理,且需對每一新產生之處理命名。需對每一新產生之處理命名。系統分析與設計理論與實務應用(三版)資料流程圖建構指南(續資料流程圖建構指南(續6)q對上層資料流程圖而言,其處理及資料流是下對上層資料流程圖而言,其處理及資料流是下層資料流程圖之處理及其資料流之彙總,且外層資料流程圖之處理及其資料流之彙總,且外部實體與資料儲存均不變。部實體與資料儲存均不變。q以表以表5-4為例,訂單處理與送貨可整合成銷售為例,訂單處理與送貨可整合成銷售管理,而其資料為兩者資料流之聯集(如表管理,而其資料為兩者資料流之聯集(如表5-5)。)。系統分析
38、與設計理論與實務應用(三版)表表5-5 整合後之資料流表達範例整合後之資料流表達範例客戶客戶 產品產品 訂單訂單生產生產需求需求送送貨貨單單客戶客戶業務業務部部生產生產部部訂單處理訂單處理送貨送貨處理處理客戶客戶 產品產品 訂單訂單生產生產需求需求送送貨貨單單客戶客戶業務業務部部生產生產部部銷售管理銷售管理整合整合系統分析與設計理論與實務應用(三版)圖圖5-14 處理之向上整合處理之向上整合 步驟一之步驟一之處理與分群處理與分群向上整合向上整合後之處理後之處理環境圖環境圖之系統之系統GP1GP2GP3GP4P1P2P3P4P5P6P7P8P9P10系統分析與設計理論與實務應用(三版)資料流程圖
39、建構指南(續資料流程圖建構指南(續7)q步驟三:向下分解以建立低層資料流程圖步驟三:向下分解以建立低層資料流程圖l若步驟一產生之處理已很單純,則可不必再向下分若步驟一產生之處理已很單純,則可不必再向下分解。但在某些情況下,例如一個處理包含太多的工解。但在某些情況下,例如一個處理包含太多的工作或操作,可能需將處理向下分解成多個較單純之作或操作,可能需將處理向下分解成多個較單純之低層處理。低層處理。l向下分解之原則可依內聚力或程式碼之多寡來判向下分解之原則可依內聚力或程式碼之多寡來判定,例如不要超過定,例如不要超過200行。行。系統分析與設計理論與實務應用(三版)圖圖5-15 處理之向下分解處理之
40、向下分解 步驟一之步驟一之向下分解向下分解處理與分群處理與分群後之處理後之處理P51P55P54P53P52P5系統分析與設計理論與實務應用(三版)資料流程圖的評估資料流程圖的評估q資料流程圖的產生是經由一連串反覆階層化動資料流程圖的產生是經由一連串反覆階層化動作,以獲得最後之資料流程圖。一般來說,整作,以獲得最後之資料流程圖。一般來說,整個流程圖之製作常無法一次作好,需要反覆修個流程圖之製作常無法一次作好,需要反覆修改才能愈趨實用。但是如何確認最後的資料流改才能愈趨實用。但是如何確認最後的資料流程圖為最佳的呢?正確性與有用性程圖為最佳的呢?正確性與有用性是兩個可評是兩個可評估的準則估的準則。
41、系統分析與設計理論與實務應用(三版)資料流程圖的評估(續)資料流程圖的評估(續)q測試資料流程圖的正確性測試資料流程圖的正確性 l對資料流程圖做外部一致性檢查對資料流程圖做外部一致性檢查l對資料流程圖進行內部一致性檢查對資料流程圖進行內部一致性檢查l資料維持資料維持l排演排演系統分析與設計理論與實務應用(三版)資料流程圖的評估(續資料流程圖的評估(續1)q對資料流程圖做外部一致性檢查對資料流程圖做外部一致性檢查l確認資料流程圖中的每個資料流、處理及檔案皆有確認資料流程圖中的每個資料流、處理及檔案皆有名稱,且均有資料字典定義之。名稱,且均有資料字典定義之。l確認每個處理是否有一個低層次資料流程圖
42、與它對確認每個處理是否有一個低層次資料流程圖與它對應,否則該處理便是最低層處理,且應有一處理規應,否則該處理便是最低層處理,且應有一處理規格描述以描述該處理(系統)之行為。格描述以描述該處理(系統)之行為。l確認每個資料儲存是否在實體關係圖中至少存在一確認每個資料儲存是否在實體關係圖中至少存在一個實體與之對應。個實體與之對應。系統分析與設計理論與實務應用(三版)資料流程圖的評估(續資料流程圖的評估(續2)q對資料流程圖進行內部一致性檢查對資料流程圖進行內部一致性檢查l確認資料流程圖是否平衡確認資料流程圖是否平衡,例如檢查其上下層間之例如檢查其上下層間之資料流、資料儲存與外部實體是否皆一致。資料
43、流、資料儲存與外部實體是否皆一致。l檢查資料流程圖是否存在重複或多餘的處理。檢查資料流程圖是否存在重複或多餘的處理。l檢查資料流程圖中是否存在檢查資料流程圖中是否存在Output-Only或或Input-Only的處理。的處理。l檢查資料流程圖中是否存在檢查資料流程圖中是否存在Output-Only或或Input-Only的檔案。的檔案。l檢查資料流程圖的編號是否正確,詳細準則請參閱檢查資料流程圖的編號是否正確,詳細準則請參閱第第4章。章。系統分析與設計理論與實務應用(三版)資料流程圖的評估(續資料流程圖的評估(續3)q資料維持資料維持l藉由對處理的輸出及輸入資料流之觀察,判斷是否藉由對處理的
44、輸出及輸入資料流之觀察,判斷是否存在有多餘的或缺少的資料流。存在有多餘的或缺少的資料流。q排演排演l有關資料流程圖中可能的概念性錯誤有關資料流程圖中可能的概念性錯誤,例如使用者例如使用者作業需求方面之錯誤,若只由技術人員進行檢查很作業需求方面之錯誤,若只由技術人員進行檢查很難發現,因此可以透過使用者及系統發展人員共同難發現,因此可以透過使用者及系統發展人員共同排演與開會討論,對資料流程圖做總檢查以找出概排演與開會討論,對資料流程圖做總檢查以找出概念性錯誤。念性錯誤。系統分析與設計理論與實務應用(三版)資料流程圖的評估(續資料流程圖的評估(續4)q測試資料流程圖的有用性測試資料流程圖的有用性l測
45、試資料流程圖的有用性即評估資料流程圖是否過測試資料流程圖的有用性即評估資料流程圖是否過於複雜,不容易閱讀等。於複雜,不容易閱讀等。l通常測試資料流程圖的有用性,必須評估以下事通常測試資料流程圖的有用性,必須評估以下事情:情:處理的名稱是否有意義與唯一。處理的名稱是否有意義與唯一。最低層資料流程圖中是否存在內聚力太弱的處最低層資料流程圖中是否存在內聚力太弱的處理;若有,則需進行向下階層化。理;若有,則需進行向下階層化。任何一張資料流程圖中,是否存在某個處理之任何一張資料流程圖中,是否存在某個處理之介面複雜度太高,即輸出入資料流數目太介面複雜度太高,即輸出入資料流數目太多;若是,則需進行再分割。多
46、;若是,則需進行再分割。系統分析與設計理論與實務應用(三版)資料流程圖的評估(續資料流程圖的評估(續5)任何一張資料流程圖中,處理個數是否太多;任何一張資料流程圖中,處理個數是否太多;若是,則需進行向上階層化。若是,則需進行向上階層化。系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料流程圖轉結構圖與模組設計模組設計q資料流程圖轉結構圖或資料流程圖轉結構圖或HIPO圖之步驟有四:圖之步驟有四:l設立總裁與副總裁設立總裁與副總裁l設立較低層模組設立較低層模組l模組設計與修改結構圖模組設計與修改結構圖l進行評鑑進行評鑑系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料流程圖轉結
47、構圖與模組設計模組設計(續)續)q步驟一:設立總裁與副總裁步驟一:設立總裁與副總裁l在結構圖中,設立一總裁,而在其下擺多位副總在結構圖中,設立一總裁,而在其下擺多位副總裁。環境圖上之系統可視為總裁,而第零階資料流裁。環境圖上之系統可視為總裁,而第零階資料流程圖上之處理視為副總裁,資料流程圖上之資料流程圖上之處理視為副總裁,資料流程圖上之資料流變成模組間必要的聯繫(耦合線)。處理聯繫時,變成模組間必要的聯繫(耦合線)。處理聯繫時,暫時先忽略所有錯誤之發生情況、資料庫及其資料暫時先忽略所有錯誤之發生情況、資料庫及其資料流等。流等。系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料流程圖轉
48、結構圖與模組設計模組設計(續續1)q步驟二:設立較低層模組步驟二:設立較低層模組l把第一階及其更低階資料流程圖上之處理,依序懸把第一階及其更低階資料流程圖上之處理,依序懸掛在結構圖上的副總裁底下,例如某第零階之資料掛在結構圖上的副總裁底下,例如某第零階之資料流程圖下有更低階之資料流程圖,則須把第一階之流程圖下有更低階之資料流程圖,則須把第一階之處理掛在其第零階處理之下;同樣地,第二階之處處理掛在其第零階處理之下;同樣地,第二階之處理應掛在其所屬第一階處理之下。理應掛在其所屬第一階處理之下。系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料流程圖轉結構圖與模組設計模組設計(續續2)q步
49、驟三:模組設計與結構圖修改步驟三:模組設計與結構圖修改l完成第一版之結構圖後,應先對結構圖中之每一模完成第一版之結構圖後,應先對結構圖中之每一模組進行模組設計,再進一步修改結構圖,使之更完組進行模組設計,再進一步修改結構圖,使之更完美。這些工作包括:美。這些工作包括:需加入資料流程圖中所沒有的例外狀況處理,需加入資料流程圖中所沒有的例外狀況處理,出現錯誤時之錯誤訊息處理及操作時可能之輔出現錯誤時之錯誤訊息處理及操作時可能之輔助訊息處理等。助訊息處理等。將結構圖上較弱的地方再分解且加以重新組將結構圖上較弱的地方再分解且加以重新組織。織。系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料
50、流程圖轉結構圖與模組設計模組設計(續續3)q原則上,完成資料流程圖建構後,每一個最底原則上,完成資料流程圖建構後,每一個最底層的處理至少都將是一個模組。層的處理至少都將是一個模組。q經上述修改後之結構圖不一定很好,而應用內經上述修改後之結構圖不一定很好,而應用內聚力與耦合力之設計評估準則可幫助我們進一聚力與耦合力之設計評估準則可幫助我們進一步的加以改善:步的加以改善:l檢查內聚力檢查內聚力 l檢查耦合力檢查耦合力 系統分析與設計理論與實務應用(三版)資料流程圖轉結構圖與資料流程圖轉結構圖與模組設計模組設計(續續4)q檢查內聚力檢查內聚力lDeMarco(1979)將七種內聚力分為可接受與不可接