軟考 耦合內聚總論

2021-08-30 06:21:49 字數 2067 閱讀 8865

耦合和內聚總是傻傻的分不清楚,這次要徹底解決這個問題

耦合(耦合性從低到高)

解釋無直接耦合

兩個模組無直接關係

資料耦合

兩個模組有呼叫關係

標記耦合

傳遞的資料結構

控制耦合

傳遞的控制變數

外部耦合

一組模組都訪問同一全域性簡單變數

公共耦合

兩個程式共享乙個檔案

內容耦合

內容耦合已經基本杜絕,乙個模組直接使用另外乙個模組的資料

兩個模組無直接關係

兩個模組有呼叫關係,a模組呼叫b模組,傳遞簡單的資料值

void main()

int count(int n)

分析: main呼叫了fa的方法,中間傳遞簡單的數值(整數)

傳遞的資料結構,比如陣列、佇列等。

int main()

int count(a[10])

分析:兩個函式之間傳遞的a[10]為陣列(資料結構)

傳遞的控制變數

void main()

fa(q)

return q

}void count(int n)

else

}

分析:變數q在函式count中為控制變數,可以選擇不同的功能

模組間通過軟體之外的環境連線,或者一組模組都訪問同一全域性簡單變數。

int a b

void main()

void count1()

void count2()

分析:main count1 count2 都存在外部耦合

兩個程式共享乙個檔案

內容耦合已經基本杜絕,乙個模組直接使用另外乙個模組的資料

內聚 (內聚性從高到低)

解釋功能內聚

最強內聚,模組內的所有元素共同完成同乙個功能

順序內聚

乙個模組內的個各處理元素都密切相關且必須按順序執行

通訊內聚

模組內的所有處理元素都在同乙個資料結構上操作

過程內聚

乙個模組完成多個任務

時間內聚

需要同時執行的動作組合在一起形成的模組

邏輯內聚

模組內執行若干邏輯上相似的功能

偶然內聚

乙個模組內的各處理元素無任何聯絡

int count(int n)

else

return f;

}

分析:整個模組都是為了實現求n,為功能內聚

前一功能元素的輸出就是下一功能元素的輸入

int count(int n)

else

return f;

}

如果模組中所有元素都使用同乙個輸入資料和(或)產生同乙個輸出資料,則稱為通訊內聚

假設有乙個子程式,它產生讀取雇員的名字,然後是位址,最後是它的**號碼。這種順序之所以重要,僅僅是因為它符合使用者的要求,使用者希望按這種順序進行螢幕輸入。另外乙個子程式將讀取關於雇員的其它資訊。這個子程式是過程內聚性,因為是由乙個特定順序而不是其它任何原因,把這些操作組合在一起的。

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

int a;

int b;

int c;

void main

如果乙個模組完成的任務在邏輯上屬於相同或相似的一類(例如,乙個模組產生各種型別的全部輸出),稱為邏輯模組;

沒有任何聯絡,只是被放到了乙個模組裡

void main()

int count(int n)

如果乙個模組呼叫下層模組時傳遞乙個資料結構,則這種耦合屬於( )。

a 簡單耦合 b直接耦合

c 標記耦合 d控制耦合

經此一役,耦合和內聚以盡收囊中。

軟考之軟體工程 文件 內聚耦合

1.軟體開發生命週期模型 瀑布模型 一種理想化的開發模型,瀑布模型要求有明確的需求分析,而要達到這一點在現實開發中幾乎不可能。原型法 原型法的最大特點就是它採用了一種動態定義需求的方法。這樣,又是也就體現出來了,即不需要明確的需求 螺旋模型 結合了瀑布模型和演化模型的優點,最主要的特點就是在於加入了...

內聚與耦合

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

內聚與耦合

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