模塊化
什麼叫做模塊化?
把一個待開發的軟件分解成若干個簡單的、具有高內聚低耦合的模塊,這一過程稱爲模塊化
模塊耦合
耦合(coupling)是對兩個模塊之間相互依賴程度的一種度量。模塊間的依賴程度越大,則其耦合程度也就越大;反之,模塊間的依賴程度越小,則其耦合程度也就越小。
模塊間耦合類型
(1)內容耦合:一個模塊直接修改或操作另一模塊數據
(2)公共耦合:兩個模塊共同引用一個全局數據項
(3)控制耦合:一個模塊向另一模塊傳遞控制信號
(4)標記耦合:一個模塊向兩個模塊傳遞一個公共參數
(5)數據耦合:模塊之間通過參數來傳遞數據
模塊內聚
內聚是指一個模塊內部各成分之間相互關聯程度的度量。也就是說,內聚是對模塊內各處理動作組合強度的一種度量。很顯然,一個模塊的內聚越大越好。
內聚的類型
(1)偶然內聚:模塊的各成分沒有任何關係
(2)邏輯內聚:邏輯上相關的處理放在一起
(3)時間內聚:模塊內的功能在同一時間完成
(4)過程內聚:模塊內的處理以特定的次序執行
(5)通信內聚:操作同一數據集
(6)順序內聚:一個成分的輸出作爲另一成分的輸入
(7)功能內聚:模塊的所有成分完成單一的功能
啓發式規則
- 高內聚,低耦合
- 改進軟件結構,提高軟件獨立性。模塊分解
- 模塊規模適中
- 力求深度、寬度、扇出、扇入適中
①深度:表示其控制的層數。
②寬度:同一層次上模塊總數的最大值。
③扇出:一個模塊直接控制的下級模塊的數目。
④扇入:有多少個上級模塊直接調用它。 - 儘量使模塊的作用域在其控制域內
①模塊的控制域:這個模塊本身以及所有直接或間接從屬它的模塊的集合
②模塊的作用域:受該模塊內一個判斷所影響的所有模塊的集合 - 盡力降低模塊接口的複雜度
- 力求模塊功能可以預測