11月 29, 2010

內聚力(Cohesion and) 與 耦合力(Coupling)

對結構化系統分析設計而言,良好的設計該有:模組間要做恰當分割、階層式系統架構、獨立的模組功能。提升好的模組品質其衡量準則:模組的內聚力,模組間耦合力。

內聚力:模組內完成單一任務的程度,盡可能緊密,細分為七種。
耦合力:模組間關聯的強度,盡合能獨立,細分為五種。
--
  1. 功能內聚力:模組只用來完成單一任務,例如「計算所得稅」
  2. 順序內聚力:模組內具有多個功能,每個功能的輸出,會是下個功能的輸入。模組間會共用資料。
  3. 溝通內聚力:模組內的功能元件使用共同的輸入資料,執行順序無相關性。例如「查詢個人地址、個人姓名,資料都是從 DB 提取而來。」
  4. 暫時內聚力:模組內的功能,雖然無順序之分,但要要在同一時間內執行完成,通常用在系統的初始化。
  5. 程序內聚力:模組內的功能,要照一定順序執行,但不共用資料
  6. 邏輯內聚力:將功能相同的單元,放置在同一個模組內。例如將 sin()、cos()、abs() 放到 math 模組內。
  7. 偶發內聚力:模組內的任務並無相關性,單純只是放在一塊。
--
  1. 資料耦合力:模組間的訊息傳遞是透過基本的變數型別。
  2. 資料結構耦合力:模組間的溝通是用資料結構,但在目的模組中,並不一定會使用到所有資料欄位。
  3. 控制耦合力:一個模組的運作,是透過其他模組傳來控制訊號。所以在設計上要知道該模組的運作架構與可接受資料格式。
  4. 共同耦合力:模組間使用共同的資料變數(想成 global 變數)
  5. 內容耦合力:模組使用了多個進入點方式,跳到(GOTO)另的個模組。這樣的架構會改變其他模組的資料、行為、執行過程。

沒有留言:

張貼留言