標籤:
耦合性(Coupling),也叫耦合度,是對模組間關聯程度的度量。耦合的強弱取決與模組間介面的複雜性、調用模組的方式以及通過介面傳送資料的多少。模組間的耦合度是指模組之間的依賴關係,包括控制關係、調用關係、資料傳遞關係。模組間聯絡越多,其耦合性越強,同時表明其獨立性越差。軟體設計中通常用耦合度和內聚度作為衡量模組獨立程度的標準。劃分模組的一個準則就是高內聚低耦合。
一般模組之間可能的串連方式有七種,構成耦合性的七種類型。它們之間的關係為(耦合性性由強到弱):
內容耦合(Content Coupling)
如果發生下列情形,兩個模組之間就發生了內容耦合。
- 一個模組直接存取另一個模組的內部資料;
- 一個模組不通過正常入口轉到另一模組內部;
- 兩個模組有一部分程式碼重疊(只可能出現在組合語言中);
- 一個模組有多個入口。
公用耦合(Common Coupling)
若一組模組都訪問同一個公用資料環境,則它們之間的耦合就稱為公用耦合。公用的資料環境可以是全域資料結構、共用的通訊區、記憶體的公用覆蓋區等。
外部耦合(External Coupling)
一組模組都訪問同一全域簡單變數而不是同一全域資料結構,而且不是通過參數表傳遞該全域變數的資訊,則稱之為外部耦合。
控制耦合(Control Coupling)
如果一個模組通過傳送開關、標誌、名字等控制資訊,明顯地控制選擇另一模組的功能,就是控制耦合。
印記耦合(Stamp Coupling)
如果一組模組通過參數表傳遞記錄資訊,就是標記耦合。它是某一資料結構的子結構,而不是簡單變數。
資料耦合(Data Coupling)
如果一個模組訪問另一個模組時,彼此之間是通過資料參數(不是控制參數、公用資料結構或外部變數)來交換輸入、輸出資訊的,則稱這種耦合為資料耦合。
非直接耦合(Nondirect Coupling)
如果兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和調用來實現的,這就是非直接耦合。這種耦合的模組獨立性最強。
軟體工程中的各種耦合類型