內聚和耦合

2021-10-13 05:23:57 字數 1502 閱讀 3365

內聚

1.偶然內聚

模組的各成分之間沒有關聯,只是把分散的功能合併在一起。

例:a模組中有三條語句(一條賦值,一條求和,一條傳參),表面上看不出任何聯絡,但是b、c模組中都用到了這三條語句,於是將這三條語句合併成了模組a。模組a中就是偶然內聚。

2.邏輯內聚

邏輯上相關的功能被放在同一模組中。

例:a模組實現的是將對應的人員資訊傳送給技術部,人事部和財政部,決定傳送給哪個部門是輸入的控制標誌決定的。模組a中就是邏輯內聚。

3.時間內聚

模組完成的功能必須在同一時間內執行,但這些功能只是因為時間因素才有關聯。

例:程式設計開始時,程式設計師把對所有全域性變數的初始化操作放在模組a中。模組a中就是時間內聚。

4.過程內聚

模組內部的處理成分是相關的,而且這些處理必須以特定的次序進行執行。

5.通訊內聚

模組的所有成分都操作同一資料集或生成同一資料集。

例:模組a實現將傳入的date型別資料轉換成string型別,以及將date型別資料插入資料庫,這兩個操作都是對「date型別資料」而言的。模組a中就是通訊內聚。

6.順序內聚

模組的各個成分和同乙個功能密切相關,而且乙個成分的輸出作為另乙個成分的輸入。

例:模組a實現將傳入的date型別資料轉換成string型別,然後再將轉換好的string型別資料插入資料庫。模組a中就是順序內聚。

7.功能內聚

模組的所有成分對於完成單一的功能都是必須的。

例:模組a實現將新註冊的使用者資訊(使用者名稱,密碼,個性簽名)全部轉換成string型別並插入資料庫。模組a中就是功能內聚。

耦合

1.內容耦合

乙個模組直接修改或操作另乙個模組的資料,或者直接轉入另乙個模組。

例:模組a中定義了變數a,在模組b中直接使用了。這種情況下模組a和模組b就是內容耦合。

2.公共耦合

兩個以上的模組共同引用乙個全域性資料項。

例:定義了乙個全域性變數a,在a、b、c模組中均呼叫了a,這種情況下模組a、模組b、模組c就是公共耦合。

3.控制耦合

乙個模組在介面上傳遞乙個訊號控制另乙個模組,接收訊號的模組的動作根據訊號值進行調整。

例:模組a獲取使用者型別(普通使用者、高階使用者)傳遞給模組b,模組b根據不同型別的使用者提供不同的服務。這種情況下模組a和模組b就是控制耦合。

4.標記耦合

模組間通過引數傳遞複雜的內部資料結構。

例:模組a向模組b傳遞object型別的資料。這種情況下模組a和模組b就是標記耦合。

5.資料耦合

模組間通過引數傳遞基本型別的資料。

例:模組a實現兩個數的加法操作,模組b實現兩個加數的初始化,模組b將兩個加數傳給模組a,模組a進行相加。這種情況下模組a和模組b就是資料耦合。

6.非直接耦合

模組間沒有資訊傳遞。

例:模組a實現輸出字串,模組b實現接收int資料,兩者之間沒有資訊傳遞。這種情況下模組a和模組b就是非直接耦合。

內聚和耦合

內聚和耦合 內聚 cohesion 是乙個模組內部各成分之間相關聯程度的度量。耦合 coupling 是模組之間依賴程度的度量。內聚和耦合是密切相關的,與其它模組存在強耦合的模組通常意味著弱內聚,而強內聚的模組通常意味著與其它模組之間存在弱耦合。模組設計追求強內聚,弱耦合。一 內聚強度 內聚按強度從...

想想耦合和內聚

耦合 軟體工程中物件之間的耦合度就是物件之間的依賴性。總結 耦合 依賴 耦合有兩個衡量標準 1.耦合的數量,即耦合的多少。2.耦合的質量等級。耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下 1 內容耦合。當乙個模組直接修改或操作另乙個模組的資料時,或乙個模組不通過正常入口而轉入另乙個模組時,...

內聚與耦合

內聚與耦合 內聚 cohesion 是乙個模組內部各成分之間相關聯程度的度量。耦合 coupling 是模組之間依賴程度的度量。內聚和耦合是密切相關的,與其它模組存在強耦合的模組通常意味著弱內聚,而強內聚的模組通常意味著與其它模組之間存在弱耦合。模組設計追求強內聚,弱耦合。一 內聚強度 內聚按強度從...