耦合的種類和耦合性的關系
? ? ? ? ?(1) 內容耦合:如果發生下列情形,兩個模塊之間就發生了內容耦合
? ? ? ? ? ? ? ? 1. 一個模塊直接訪問另一個模塊的內部數據;
? ? ? ? ? ? ? ? 2. 一個模塊不通過正常入口轉到另一模塊內部;
? ? ? ? ? ? ? ? 3.兩個模塊有一部分程序代碼重迭(只可能出現在匯編語言中);
? ? ? ? ? ? ? ? 4.一個模塊有多個入口。
(2) 公共耦合:若一組模塊都訪問同一個公共數據環境,則它們之間的耦合就稱為公共耦合。公共的數據環境可以是全局數據結構、共享的通信? ? ? ? ? ? ? ? ? ? 區、內存的公共覆蓋區等。
(3) 外部耦合: 一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。
(4) 控制耦合:如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。
(5) 標記耦合:一組模塊通過參數表傳遞記錄信息,就是標記耦合。這個記錄是某一數據結構的子結構,而不是簡單變量。
(6) 數據耦合:一個模塊訪問另一個模塊時,彼此之間是通過簡單數據參數 (不是控制參數、公共數據結構或外部變量) 來交換輸入、輸出信息? ? ? ? ? ? ? ? ? ? ?的。
(7) 非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。