Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 6 系統模組設計.

Similar presentations


Presentation on theme: "Chapter 6 系統模組設計."— Presentation transcript:

1 Chapter 6 系統模組設計

2 導論 企業流程塑模主要是以資料流程圖做為塑模之工具,將企業流程分解成具層級結構之模組。

3 分析與設計評估準則 良好的結構化設計有三個特徵: (1) 模組間有很好的分割 (2) 系統的架構是階層式的 (3) 模組的功能是獨立的。
要達到良好的系統設計與提升模組的品質,需考慮: (1) 模組間的耦合力,是指一個系統內部各模組之間的相關程度。 (2) 模組的內聚力,是指一個模組內部所作事情之相關程度。 (3) 其他的考慮因素,諸如功能分割等。

4 內聚力 內聚力是一種衡量模組內部之工作相關程度之方法。換句話說,模組的內聚力是衡量模組完成一件單一,且定義清楚之工作的程度。內聚力的種類大概可分為七種: 功能內聚力(Functional Cohesion) 順序內聚力(Sequential Cohesion) 溝通內聚力(Communication Cohesion) 程序內聚力(Procedural Cohesion) 暫時內聚力(Temporal Cohesion) 邏輯內聚力(Logical Cohesion) 偶發內聚力(Coincidental Cohesion)等七種。

5 內聚力 功能內聚力 功能內聚力指的是,當一個模組只做一件事情,亦即具有唯一的功能,是為功能型的內聚力。例如:

6 內聚力 順序內聚力 順序內聚力是指模組內具有多個功能或處理多件事情,且一項功能的輸出立即成為下一個功能的輸入,也就是共用相同資料,則此模組具有順序內聚力。

7 內聚力 溝通內聚力 溝通內聚力是指模組內具有多個功能或處理多件事情,且這些功能使用相同的資料(輸入),但它們的執行順序沒有相關性。

8 內聚力 暫時內聚力 模組內具有多個功能或處理多件事情,但是這些功能僅僅在時序上有所關連,也就是必須在同一時間內執行完成,所以這種模組具有暫時內聚力。

9 內聚力 程序內聚力 程序內聚力是指模組內具有多個功能或處理多件事情,這些功能必須按照一定的順序來執行,且不共用資料,這些功能群集在一個模組內僅為了確保它們的執行順序,則這模組具有程序內聚力。

10 內聚力 邏輯內聚力 邏輯內聚力是指模組內具有多個邏輯上相關連的功能。

11 內聚力 偶發內聚力 若一個模組內部要作好幾件工作,且每一件工作都不相干,則該模組具有偶發內聚力。在設計時,偶發內聚力應盡量避免,例如可將個別的工作分別獨立出來自成一個模組,使各模組具有功能內聚力。

12 模組內聚力之判定決策樹

13 內聚力之評比因素與結果

14 耦合力 耦合力是一種衡量模組間相互關連強度的方法。
解決了一模組內的錯誤狀況,但在其他的模組內引起了新的錯誤,這種現象稱為連鎖反應(Ripple Effect)。 解決連鎖反應之可行方法是盡量使一個模組不與其它模組糾結在一起,即讓每個模組盡量的獨立。

15 耦合力 耦合力可分為五類: 資料耦合力(Data Coupling) 資料結構耦合力(Stamp Coupling)
控制耦合力(Control Coupling) 共同耦合力(Common Coupling) 內容耦合力(Content Coupling)。

16 耦合力 資料耦合力 資料耦合力是指模組間,如果使用一些簡單型別資料作為兩模組間傳遞之參數,則稱此模組間具有資料耦合力。

17 耦合力 資料結構耦合力 資料結構耦合力是指模組間以資料結構(Data Structure)型別來做程式的介面,但並非每個模組均用到該資料結構之所有欄位。 有一個資料結構稱為 “租車”,該資料結構有六個欄位:牌照號碼、會員證號碼、使用汽油量、汽車型式、已開公里數與租借天數等。 若這三個模組間是以 “租車”之資料結構做為程式的介面,則這些模組間具有資料結構耦合力。

18 標示耦合力

19 耦合力 資料結構耦合力可能產生以下的問題:
(1) 雖然每一個模組可能只用到局部的欄位,但只要資料結構內任一個欄位修改過,則所有的相關模組均會受影響。 (2) 每一個模組使用了比實際需要更多的記憶體空間。解決資料結構耦合力的方法是將所要用到的欄位傳遞過去,而不必傳整個資料結構,則資料結構耦合力就可改變成資料耦合力。

20 耦合力 控制耦合力 控制耦合力指的是當一模組傳遞旗標去控制另一個模組內的作業時(內部邏輯),則稱這兩模組之間具有控制耦合力。例如有兩個模組:報表列印選擇與產生庫存報表或異動報表,前一個模組傳送旗標來控制下一個模組做輸入或輸出之動作,則這兩模組間具有控制耦合力。

21 控制耦合力

22 耦合力 控制耦合力有下列兩項缺點: (1) 如果被呼叫的模組將拆成兩個或兩個以上的模組時,會因資料的糾結或需瞭解呼叫模組等而不易達到目的。
(2) 撰寫呼叫模組時,如不了解被呼叫的模組,便不易著手撰寫程式,同時會增加程式測試的成本。

23 耦合力 共同耦合力 兩模組使用相同的資料區且都可讀寫資料區內之資料,則這兩模組具有共同耦合力。

24 耦合力 共同耦合力盡量少用,主要原因為: (1) 如果共用資料產生錯誤,則所有涉及之模組均會 受影響。
(1) 如果共用資料產生錯誤,則所有涉及之模組均會 受影響。 (2) 使用共同資料區的模組名稱均模擬兩可,不易定 義,經常會造成困擾。 (3) 共用資料區內資料時常會被濫用,使模組的邏輯 變得複雜,而不易了解。 (4) 一個使用很多共用資料區的模組,在維護上相當 困難。 (5) 模組變動時,不知那些資料會被牽動。

25 耦合力 內容耦合力 內容耦合力是一個模組使用另一個模組內之部份程式碼或改變其他模組內的局部變數。內容耦合力具有下列特徵:
(1) 一個模組以多個進入點(Multi-entry)的方式 進入另一模組。 (2) 一個模組參考或改變其他模組的內部資料。 (3) 一個模組改變其他模組內部的執行過程。

26 控制流程的內容耦合力

27 耦合力 一般來說,耦合力越弱越好。 模組間的耦合力有時可能不只是單純的一種情形,可能存在兩種以上的耦合力,此時這兩模組間的關係以較強的耦合力為準,例如兩個模組具有資料結構耦合力和共同耦合力的關係,則我們應以共同耦合力為準。

28 耦合力之評比因素與結果

29 可接受之內聚力與耦合力 一般而言,可以接受的內聚力包含功能內聚力、順序內聚力與溝通內聚力, 而在耦合力部份則是資料耦合力與資料結構耦合力。
雖然這些內聚力與耦合力是可以接受,但就系統設計而言,良好的設計希望達到模組內的內聚力為功能內聚力,即一個模組只處理單一個功能,模組間的耦合力為資料耦合力,即模組間的溝通只使用簡單型別參數來溝通。

30 一個良好的設計除了耦合力與內聚力的分析外,尚有一些值得注意的事,包括:
可接受之內聚力與耦合力 一個良好的設計除了耦合力與內聚力的分析外,尚有一些值得注意的事,包括: (1) 模組功能的劃分。當模組太大為了減少功 能重複的模組,為了管理的需求,為了發展可重複使用的模組或發展易撰寫的模組等情況時,都是模組功能劃分的適當時機。 (2) 模組除有正規之處理外,亦須考量錯誤與輔助訊息及例外狀況之處理。

31 結構圖 1.0 Create Student Grade Listing End Of File Grade Record Student
Cumulative GPA Current GPA 1.1 Get Student Grade Record 1.2 Calculate Current GPA 1.3 Calculate Cumulative GPA 1.4 Print Grade Listing 1.5 Print Dean’s Listing

32 資料流程圖轉結構圖與模組設計 資料流程圖轉結構圖之步驟有四:
(1) 設立總裁(President)與副總裁(Vice Presidents) (2) 設立較低層模組 (3) 修改結構圖 (4) 進行評鑑

33 資料流程圖轉結構圖與模組設計 步驟一:設立總裁與副總裁
在結構圖中,設立一總裁,而在其下擺多位副總裁。環境圖上之系統可視為總裁,而第零階資料流程圖上之處理視為副總裁,資料流程圖上之資料流變成模組間必要的聯繫。處理聯繫時,暫時先忽略所有錯誤之發生情況、資料庫及其資料流等。

34 資料流程圖轉結構圖與模組設計 步驟二:設立較低層模組
把第一階及其更低階資料流程圖上之處理依序懸掛在結構圖上的副總裁底下,例如某第零階之資料流程圖下有更低階之資料流程圖,則須把第一階之處理掛在其第零階處理之下,同樣的,第二階之處理應掛在其所屬第一階處理之下。

35 資料流程圖轉結構圖與模組設計 步驟三:模組設計與結構圖修改
完成第一版之結構圖後,應先對結構圖中之每一模組進行模組設計,再進一步修改結構圖使之更完美。這些工作包括: (1) 需加入資料流程圖中所沒有的例外狀況處理,出現錯誤時之錯誤訊息處理及操作時可能之輔助訊息處理等。 (2) 將結構圖上較弱的地方再分解且加以重新組織。

36 資料流程圖轉結構圖與模組設計 原則上,完成資料流程圖建構後,每一個最底層的處理至少都將是一個模組。
經上述修改後之結構圖不一定是很好,應用內聚力與耦合力之設計評估準則可幫助我們進一步的加以改善: 檢查內聚力 檢查耦合力

37 資料流程圖轉結構圖與模組設計 檢查內聚力 DeMarco (1979)將七種內聚力分為可接受與不可接受的內聚力,摘述如下:

38 資料流程圖轉結構圖與模組設計 檢查耦合力 模組間的耦合力不是單一的情形,可能存在兩種以上的耦合力,這時候要以較高的耦合力為準。例如如果兩個模組間同時具有資料結構型及共同型之耦合關係,則應以共同型之耦合力為準。 應檢查結構圖上是否有不可接受的耦合力,若發現,則應加以修正,因為較強之耦合力將導致較弱的內聚力,而使得系統不易維護,應盡量避免。

39 資料流程圖轉結構圖與模組設計 步驟四:進行評鑑
完成模組設計與結構圖修改後,接下來應確定結構圖的運作功能。也就是該結構圖應能正確的描述系統的行為,以完成流程圖上所描述之企業流程與規則。 進行評鑑之目的是希望能儘早找出錯誤並及早修正,而不希望等到系統完成或在運作時發生錯誤再去修改它。

40 結論 建議資料流程圖之建立採由中間往外之策略,該策略之概念與執行已經過修改與擴充,主要概念有二:
(1) 處理間之資訊輸入與輸出以資料庫為中心,也就是說大部分之處理所需之資料輸入與輸出都直接由資料庫,而非處理間之直接傳遞。 (2) 以需求分析之流程圖,配合處理描述、藍圖與資料辭彙以表達使用者之巨觀需求,並將這些資訊直接轉成資料流程圖之元素,以簡化資料流程圖之製作。

41 結論 此外,流程圖之處理描述、資料流程圖之處理描述和模組設計中之描述間有一些差異,摘述如下:

42 結論 雖然資料流程圖已廣泛的被應用於企業流程塑模上,但基本上資料流程圖之應用仍有其不足的地方,例如:
(1) 資料流程圖之應用是功能導向的結構化分析,一旦流程或功能有所改變,將會導致資料流程圖產生一連串改變。 (2) 資料流程圖缺乏時間狀態表示,在記載流程順序時,並未提供和時間有關的資訊與控制。 (3) 有關資料流程圖在製作上及使用者之學習方面仍須再改進。


Download ppt "Chapter 6 系統模組設計."

Similar presentations


Ads by Google