關於建模 耦合度

2021-08-30 00:27:15 字數 1540 閱讀 4748

最近想單獨弄乙個小的專案,不過感覺好多東西都不會,在建模方面有很大的缺陷,今天試著自己建了乙個關於藥店系統的簡單模型,來看看到底是怎麼建立的,並問了群中的一些牛人;在他們的討論中,感覺建模其中乙個要注意的問題是模組之間的耦合度的問題,模組與模組之間的耦合度越大,模組之間的依賴就越大,隨之而來的問題就會越多。

以前一直對耦合度這個概念都很模糊,今天仔細找了些資料,原來耦合度就是模組之間的相互依賴的程度,雖然耦合度的定義不像我這麼直白,但感覺是一樣的。建模要考慮的問題是,模組與模組之間儘量減少依賴,以防止在乙個模組功能改變或模組受損時,不至於導致整個系統崩潰;

隨便把耦合的定義也貼出來吧,下次不會了在來看看 :

耦合耦合是指兩個或兩個以上的電路元件或電網路的輸入與輸出之間存在緊密配合與相互影響,並通過相互作用從一側向另一側傳輸能量的現象;概括的說耦合就是指兩個實體相互依賴於對方的乙個量度.分為以下幾種:

非直接耦合:兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和呼叫來實現的

資料耦合:乙個模組訪問另乙個模組時,彼此之間是通過簡單資料引數 (不是控制引數、公共資料結構或外部變數) 來交換輸入、輸出資訊的。

標記耦合 :一組模組通過參數列傳遞記錄資訊,就是標記耦合。這個記錄是某一資料結構的子結構,而不是簡單變數。

控制耦合:如果乙個模組通過傳送開關、標誌、名字等控制資訊,明顯地控制選擇另一模組的功能,就是控制耦合。

外部耦合:一組模組都訪問同一全域性簡單變數而不是同一全域性資料結構,而且不是通過參數列傳遞該全域性變數的資訊,則稱之為外部耦合。

公共耦合:若一組模組都訪問同乙個公共資料環境,則它們之間的耦合就稱為公共耦合。公共的資料環境可以是全域性資料結構、共享的通訊區、記憶體的公共覆蓋區等。

內容耦合:如果發生下列情形,兩個模組之間就發生了內容耦合

(1) 乙個模組直接訪問另乙個模組的內部資料;

(2) 乙個模組不通過正常入口轉到另一模組內部;

(3) 兩個模組有一部分程式**重疊(只可能出現在組合語言中);

(4) 乙個模組有多個入口。

耦合強度,依賴於以下幾個因素:

(1)乙個模組對另乙個模組的呼叫;

(2)乙個模組向另乙個模組傳遞的資料量;

(3)乙個模組施加到另乙個模組的控制的多少;

(4)模組之間介面的複雜程度。

耦合按從強到弱的順序可分為以下幾種型別:

(1)內容耦合。當乙個模組直接修改或操作另乙個模組的資料,或者直接轉入另乙個模組時,就發生了內容耦合。此時,被修改的模組完全依賴於修改它的模組。

(2)公共耦合。兩個以上的模組共同引用乙個全域性資料項就稱為公共耦合。

(3)控制耦合。乙個模組在介面上傳遞乙個訊號(如開關值、標誌量等)控制另乙個模組,接收訊號的模組的動作根據訊號值進行調整,稱為控制耦合。

(4)標記耦合。模組間通過引數傳遞複雜的內部資料結構,稱為標記耦合。此資料結構的變化將使相關的模組發生變化。

(5)資料耦合。模組間通過引數傳遞基本型別的資料,稱為資料耦合。

(6)非直接耦合。模組間沒有資訊傳遞時,屬於非直接耦合。

如果模組間必須存在耦合,就盡量使用資料耦合,少用控制耦合,限制公共耦合的範圍,堅決避免使用內容耦合。

關於耦合度以及低耦合度的必要性

耦合性 英語 coupling,dependency,或稱 耦合力或 耦合度 是一種 軟體度量,是指一程式中,模組及模組之間資訊或引數依賴的程度。內聚性是乙個和耦合性相對的概念,一般而言低耦合性代表高內聚性,反之亦然。耦合性和內聚性都是由提出結構化設計概念的賴瑞 康斯坦丁所提出 1 低耦合性是結構良...

java程式的耦合度是什麼

程式的耦合度是 你的子程式之間的相關聯性,也就是說你的多個類的聯絡 是否太緊密,打個比方,你房子裡邊有窗子 那房子 和窗子 就有了關聯 耦合度 是松還是緊 就看你的 關聯 是強還是弱,也就是修改的代價,比如 你窗子是扣死在牆裡的 那麼你修改窗子 就必須修改牆 這就比較緊密了,但是如果你窗子是按照某種...

軟體耦合度的計算公式

我們總得找出一種計算方法來計算模組耦合的程度,一般採用以下的公式 1 di 輸入資料引數的個數 2 ci 輸入控制引數的個數 3 do 輸出資料引數的個數 4 co 輸出控制引數的個數 全域性耦合 5 gd 用來儲存資料的全域性變數 6 gc 用來控制的全域性變數 環境耦合 7 w 此模組呼叫的模組...