內聚度

內聚度

內聚度是前述信息隱藏和局部化概念的自然擴展,它標誌一個模塊內部各成分彼此結合的緊密程度。內聚度按其高低程度可分為7級,內聚度越高越好。

等級劃分


最差的稱為偶然內聚(coincidental cohesion)。所謂偶然性內聚是指一個模塊內各成分為完成一組功能而組合在一起,它們相互之間即使有關係,也很鬆散。常見的偶然性內聚情形是,當程序員寫完一個程序后發現有一組語句多處出現,於是為節省內存便將這組語句單獨組成一個模塊。
如果一個模塊完成的諸任務邏輯上相關(例如,一個模塊產生所有與類型無關的輸入),則稱之為邏輯性內聚(logical cohesion)。
如果一個模塊包含的諸任務必須在同一時間段內執行(例如,一個初始化模塊),則稱之為時間性內聚(temporal cohesion)。
上述三種內聚形式通常認為是低級內聚,
2.中級內聚形式有兩種,即過程性內聚(procedural cohesion)和通信性內聚(communicational cohesion)。模塊的過程性內聚度是指,模塊內成分彼此相關,並且必須按特定的次序執行;模塊的通信性內聚度是指,模塊中各成分都將對數據結構的同一區域進行操作,以達到通信的目的。
3.高級內聚度也有兩種形式,即順序性內聚(sequential cohesion)和功能性內聚(functional cohesion)。如果一個模塊內的各處理成分均與同一功能相關,且這些處理必須順序執行,則稱為順序內聚;如果模塊內所有成分形成一個整體,完成單個功能,則稱為功能內聚,功能內聚是最高程度的內聚形式。
設計軟體時,應該能夠識別內聚度的高低,並通過修改設計儘可能提高模塊內聚度,從而獲得較高的模塊獨立性