內聚:一個模塊內部各個元素彼此結合的緊密程度。
它是衡量一個模塊內部組成部分間整體統一性的度量。 常見的內聚有七類。
1)功能內聚(Functional Cohesion)
如果一個模塊內所有處理元素完成一個,而且僅完成一個功能,則稱為功能內聚。
功能內聚是最高程度的內聚。但在軟件結構中,並不是每個模塊都能設計成一個功能內聚模塊。
2)順序內聚(Sequential Cohesion)
如果一個模塊內處理元素和同一個功能密切相關,而且這些處理元素必須順序執行,則稱為順序內聚。
3)通信內聚(Communicational Cohesion)
如果一個模塊中所有處理元素都使用同一個輸入數據和(或)產生同一個輸出數據,稱為通信內聚。
4)過程內聚(Procedural Cohesion)
如果一個模塊內的處理元素是相關的,而且必須以特定的次序執行,稱為過程內聚。
過程內聚與順序內聚的區別是: 順序內聚中是數據流從一個處理單元流到另一個處理單元,而過程內聚是控制流從一個動作流向另一個動作。
5)時間內聚(Temporal Cohesion)
如果一個模塊包含的任務必須在同一段時間內執行,稱為時間內聚。也稱為瞬時內聚。
6)邏輯內聚(Logical Cohesion)
如果模塊完成的任務在邏輯上屬於相同或相似的一類,稱為邏輯內聚。
7)偶然內聚(Coincidental Cohesion)
如果一個模塊由完成若干毫無關系的功能處理元素偶然組合在一起的,就叫偶然內聚。
軟件設計中應該:力求做到高內聚,盡量少用中內聚,不用低內聚。