一、耦合
耦合是模組之間的相對獨立性(相互連線的緊密程度)的度量。耦合取決於各個模組之間介面的複雜程度、呼叫模組的方式以及透過介面的資訊型別等,有以下幾個型別。
無直接耦合:指兩個模組之間沒有直接關係,它們分別屬於不同模組的控制和呼叫,它們之間不傳遞任何資訊,因此,模組間耦合性最弱,獨立性最強。
資料耦合:兩個模組有呼叫關係,傳遞的是簡單的資料值,相當於高階語言中的值傳遞。
標記耦合:有呼叫關係,傳遞的是資料結構。
控制耦合:指一個模組呼叫另一個模組,傳遞的是控制變數,被呼叫模組透過該控制變數的值有選擇的執行模組內的某一功能,因此,被呼叫的模組應該有多個功能,哪個功能起作用受呼叫模組的控制。
外部耦合:模組間透過軟體之外的環境聯結(如I/O將模組耦合到特定的裝置、格式、通訊協議)
公共耦合:指透過一個公共資料環境相互作用的那些模組間的耦合。
內容耦合:當一個模組直接使用另一個模組的內部資料,或透過非正常入口轉入另一個模組內部。
口訣簡記:資料傳值,標記結構,變數控制,內部內容。
1.模組A直接訪問模組B的內部資料,則模組A和模組B的耦合型別為 。(2011年上半年)
A. 資料耦合 B. 標記耦合 C. 公共耦合 D. 內容耦合
2.如下圖所示,模組A和模組B都訪問相同的全域性變數和資料結構,則這兩個模組之間的耦合型別 為 耦合。(2016年上半年)
A. 公共 B. 控制 C. 標記 D. 資料
3.模組A將學生資訊,即學生姓名、學號、手機號等放到一個結構體中,傳遞給模組B。模組A和B之間的耦合型別為 耦合。(2017年下半年)
A. 資料 B. 標記 C. 控制 D. 內容
4.耦合是模組之間的相對獨立性(互相連線的緊密程度)的度量。耦合程度不取決於 。(2018年上半年)
A. 呼叫模組的方式 B. 各個模組之間介面的複雜程度
C. 透過介面的資訊型別 D. 模組提供的功能數
5.某企業管理資訊系統中,採購子系統根據材料價格、數量等資訊計算採購的金額,並給財務子系統傳遞採購金額、收款方和採購日期等資訊,則這兩個子系統之間的耦合型別為 耦合。(2018年下半年)
A. 資料 B. 標記 C. 控制 D. 外部
6.已知模組A給模組B傳遞資料結構X,則這兩個模組的耦合型別為 。(2019年上半年)
A. 資料耦合 B. 公共耦合 C. 外部耦合 D. 標記耦合
7.模組A透過非正常入口轉入模組B內部,則這兩個模組之間是 耦合。(2021年上半年)
A. 資料 B. 公共 C. 外部 D. 內容
二、內聚
內聚是對一個模組內部各個元素彼此結合的緊密程度的度量,有以下幾個型別。
偶然內聚:指一個模組內的的各處理元素之間沒有任何關係。
邏輯內聚:指模組內執行若干個邏輯上相似的功能,透過引數確定該模組完成哪一個功能。
時間內聚:把需要同時執行的動作組合在一起形成的模組稱為時間內聚模組。
過程內聚:一個模組完成多個任務,這些任務必須按指定的過程執行。
通訊內聚:模組內的的所有處理元素都在一個資料結構上操作,或者各處理使用相同的輸入資料或者產生相同的輸出資料。
順序內聚:指一個模組中的各個處理元素都密切相關於同一功能且必須順序執行,前一功能元素的輸出就是下一功能元素的輸入。
功能內聚:最強的內聚,指模組內的所有元素共同作用完成一個功能,缺一不可。
耦合性和內聚性是模組獨立性的兩個定性標準,在將軟體系統劃分模組時,應儘量做到高內聚、低耦合,提高模組的獨立性。
口訣簡記:邏輯看引數,通訊靠結構,順序執行是順序,特定過程為過程,同時執行問時間,功能內聚不可缺。
1.模組A執行幾個邏輯上相似的功能,透過引數確定該模組完成哪一個功能,則該模組具有 內聚。(2012年上半年)
A. 順序 B. 過程 C. 邏輯 D. 功能
2.模組A、B和C都包含相同的5個語句,這些語句之間沒有聯絡。為了避免重複,把這5個語句抽取出來組成一個模組D,則模組D的內聚型別為 內聚。(2014年下半年)
A. 功能 B. 通訊 C. 邏輯 D. 巧合
3.某模組實現兩個功能:向某個資料結構區域寫資料和從該區域讀資料。該模組的內聚型別為 內聚。(2015年上半年)
A. 過程 B. 時間 C. 邏輯 D. 通訊
4.某模組中有兩個處理A和B,分別對資料結構X寫資料和讀資料,則該模組的內聚型別為 內聚。(2016年下半年)
A. 邏輯 B. 過程 C. 通訊 D. 內容
5.模組A、B和C有相同的程式塊,塊內的語句之間沒有任何聯絡,現把該程式塊取出來,形成新的模組D,則模組D的內聚型別為 (1) 內聚。以下關於該內聚型別的敘述中,不正確的是 (2) 。(2017年上半年)
(1) A. 巧合 B. 邏輯 C. 時間 D. 過程
(2) A. 具有最低的內聚性 B. 不易修改和維護
C. 不易理解 D. 不影響模組間的耦合關係
6.某模組內涉及多個功能,這些功能必須以特定的次序執行,則該模組的內聚型別為 內聚。(2017年下半年)
A. 時間 B. 過程 C. 資訊 D. 功能
7.某模組中各個處理元素都密切相關於同一功能且必須順序執行,前一處理元素的輸出就是下一處理元素的輸入,則該模組的內聚型別為 內聚。(2019年下半年)
A. 過程 B. 時間 C. 順序 D. 邏輯
8.若某模組內所有處理元素都在同一個資料結構上操作,則該模組的內聚型別為 。(2020年下半年)
A. 邏輯 B. 過程 C. 通訊 D. 功能