內聚性指的是在一個子程式中,各種操作之間互相聯繫的緊密程度。
目標
讓每一個子程式只做一件事。使子程式內的各種操作之間聯繫強。
順序的內聚性sequentialcohesion
特點:子程式內包含需要按特定順序執行的操作,這些步驟需要共享數據,必須全部執行完畢才算完成一向完整功能。
分類
模組獨立性指每個模組只完成系統要求的獨立子功能,並且與其他模組的聯繫最少且接口簡單,兩個定性的度量標準――耦合性和內聚性。
耦合性也稱塊間聯繫。指軟體系統結構中各模組間相互聯繫緊密程度的一種度量。模組之間聯繫越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間接口的複雜性、調用的方式及傳遞的信息。
無直接耦合;數據耦合;標記耦合;控制耦合;公共耦合;內容耦合(低――高);
1.無直接耦合;
2.數據耦合指兩個模組之間有調用關係,傳遞的是簡單的數據值,相當於高級語言的值傳遞;
3.標記耦合指兩個模組之間傳遞的是數據結構,如高級語言中的數組名、記錄名、檔案名稱等這些名字即標記,其實傳遞的是這個數據結構的地址。
4.控制耦合指一個模組調用另一個模組時,傳遞的是控制變數(如開關、標誌等),被調模組通過該控制變數的值有選擇地執行塊內某一功能。
5.公共耦合指通過一個公共數據環境相互作用的那些模組間的耦合。公共耦合的複雜程式隨耦合模組的個數增加而增加。
6.內容耦合:這是最高程度的耦合,也是最差的耦合。當一個模組直接使用另一個模組的內部數據,或通過非正常入口而轉入另一個模組內部。
內聚性又稱塊內聯繫。指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量。若一個模組內各元素(語名之間、程式段之間)聯繫的越緊密,則它的內聚性就越高。
偶然內聚;邏輯內聚;時間內聚;通信內聚;順序內聚;
功能內聚(低――高)
1.偶然內聚指一個模組內的各處理元素之間沒有任何聯繫。
2.邏輯內聚指模組內執行幾個邏輯上相似的功能,通過參數確定該模組完成哪一個功能。
3.時間內聚:把需要同時執行的動作組合在一起形成的模組為時間內聚模組。
4.通信內聚指模組內所有處理元素都在同一個數據結構上操作(有時稱之為信息內聚),或者指各處理使用相同的輸入數據或者產生相同的輸出數據。
5.順序內聚指一個模組中各個處理元素都密切相關於同一功能且必須順序執行,前一功能元素輸出就是下一功能元素的輸入。
6.功能內聚:這是最強的內聚,指模組內所有元素共同完成一個功能,缺一不可。與其他模組的耦合是最弱的。
耦合性與內聚性是模組獨立性的兩個定性標準,將軟體系統劃分模組時,儘量做到高內聚低耦合,提高模組的獨立性,為設計高質量的軟體結構奠定基礎。
相關詞條
內聚、內聯繫、子程式、耦合性、模組順序的內聚性