耦合是指兩個或兩個以上的電路元件或電網(wǎng)絡等的輸入與輸出之間存在緊密配合與相互影響,并通過相互作用從一側(cè)向另一側(cè)傳輸能量的現(xiàn)象。
耦合作為名詞在通信工程、軟件工程、機械工程等工程中都有相關(guān)名詞術(shù)語。
多場耦合
現(xiàn)實工程中,物理場是許多的,溫度場,引力場,濕度場等等均屬于物理場,而我們要解決的許多問題是這些物理場的疊加問題,因為這些物理場直接是相互影響的。比如煉鋼的時候溫度高低對于應力分布就有影響。這種多個物理場相互疊加的問題就叫做多場耦合問題,也是一種耦合。
能量耦合
如變壓器的初級與次級之間的能量耦合。
數(shù)據(jù)耦合
一個模塊訪問另一個模塊時,彼此之間是通過簡單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的。
標記耦合
一組模塊通過參數(shù)表傳遞記錄信息,就是標記耦合。這個記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。其實傳遞的是這個數(shù)據(jù)結(jié)構(gòu)的地址;
控制耦合
如果一個模塊通過傳送開關(guān)、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。
外部耦合
一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。
公共耦合
若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。
內(nèi)容耦合
當一個模塊直接修改或操作另一個模塊的數(shù)據(jù),或者直接轉(zhuǎn)入另一個模塊時,就發(fā)生了內(nèi)容耦合。此時,被修改的模塊完全依賴于修改它的模塊。如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內(nèi)容耦合
(1)一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);
(2)一個模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;
(3)兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編語言中);
(4)一個模塊有多個入口。
非直接耦合
兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的。
另類情況
如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內(nèi)容耦合
(1)一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);
(2)一個模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;
(3)兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編語言中);
(4)一個模塊有多個入口。耦合強度,依賴于以下幾個因素:
(1)一個模塊對另一個模塊的調(diào)用;
(2)一個模塊向另一個模塊傳遞的數(shù)據(jù)量;
�。�3)一個模塊施加到另一個模塊的控制的多少;
�。�4)模塊之間接口的復雜程度。
耦合按從強到弱的順序可分為以下幾種類型:
(1)內(nèi)容耦合。當一個模塊直接修改或操作另一個模塊的數(shù)據(jù),或者直接轉(zhuǎn)入另一個模塊時,就發(fā)生了內(nèi)容耦合。此時,被修改的模塊完全依賴于修改它的模塊。
(2)公共耦合。兩個以上的模塊共同引用一個全局數(shù)據(jù)項就稱為公共耦合。
(3)外部耦合。若一組模塊都訪問同一全局數(shù)據(jù)項,則稱為外部耦合。
�。�4)控制耦合。一個模塊在界面上傳遞一個信號(如開關(guān)值、標志量等)控制另一個模塊,接收信號的模塊的動作根據(jù)信號值進行調(diào)整,稱為控制耦合。
�。�5)標記耦合。模塊間通過參數(shù)傳遞復雜的內(nèi)部數(shù)據(jù)結(jié)構(gòu),稱為標記耦合。此數(shù)據(jù)結(jié)構(gòu)的變化將使相關(guān)的模塊發(fā)生變化。
(6)數(shù)據(jù)耦合。模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù),稱為數(shù)據(jù)耦合。
�。�7)非直接耦合。模塊間沒有信息傳遞時,屬于非直接耦合。
如果模塊間必須存在耦合,就盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,堅決避免使用內(nèi)容耦合。
軟件工程中
簡單地說,軟件工程中對象之間的耦合度就是對象之間的依賴性。指導使用和維護對象的主要問題是對象之間的多重依賴性。對象之間的耦合越高,維護成本越高。因此對象的設計應使類和構(gòu)件之間的耦合最小。
有軟硬件之間的耦合,還有軟件各模塊之間的耦合。
耦合性是程序結(jié)構(gòu)中各個模塊之間相互關(guān)聯(lián)的度量。它取決于各個模塊之間的接口的復雜程度、調(diào)用模塊的方式以及哪些信息通過接口。
耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:
�。�1)內(nèi)容耦合。當一個模塊直接修改或操作另一個模塊的數(shù)據(jù)時,或一個模塊不通過正常入口而轉(zhuǎn)入另一個模塊時,這樣的耦合被稱為內(nèi)容耦合。內(nèi)容耦合是程度的耦合,應該避免使用之。
�。�2)公共耦合。兩個或兩個以上的模塊共同引用一個全局數(shù)據(jù)項,這種耦合被稱為公共耦合。在具有大量公共耦合的結(jié)構(gòu)中,確定究竟是哪個模塊給全局變量賦了一個特定的值是十分困難的。
�。�3)外部耦合。一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。
�。�4)控制耦合。一個模塊通過接口向另一個模塊傳遞一個控制信號,接受信號的模塊根據(jù)信號值而進行適當?shù)膭幼�,這種耦合被稱為控制耦合。
(5)標記耦合。若一個模塊A通過接口向兩個模塊B和C傳遞一個公共參數(shù),那么稱模塊B和C之間存在一個標記耦合。
(6)數(shù)據(jù)耦合。模塊之間通過參數(shù)來傳遞數(shù)據(jù),那么被稱為數(shù)據(jù)耦合。數(shù)據(jù)耦合是的一種耦合形式,系統(tǒng)中一般都存在這種類型的耦合,因為為了完成一些有意義的功能,往往需要將某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)。
�。�7)非直接耦合。兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的。
總結(jié):耦合是影響軟件復雜程度和設計質(zhì)量的一個重要因素,在設計上我們應采用以下原則:如果模塊間必須存在耦合,就盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,盡量避免使用內(nèi)容耦合。
內(nèi)聚與耦合
內(nèi)聚標志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴展。內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系,一個好的內(nèi)聚模塊應當恰好做一件事。它描述的是模塊內(nèi)的功能聯(lián)系。耦合是軟件結(jié)構(gòu)中各模塊之間相互連接的一種度量,耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數(shù)據(jù)。程序講究的是低耦合,高內(nèi)聚。就是同一個模塊內(nèi)的各個元素之間要高度緊密,但是各個模塊之間的相互依存度卻要不那么緊密。[2]
內(nèi)聚和耦合是密切相關(guān)的,同其他模塊存在高耦合的模塊意味著低內(nèi)聚,而高內(nèi)聚的模塊意味著該模塊同其他模塊之間是低耦合。在進行軟件設計時,應力爭做到高內(nèi)聚,低耦合。
振動模式的耦合
振動模式的耦合是指兩個振動模態(tài)在某一振動模態(tài)下(或在某一廣義坐標方向上)的振動輸入,導致另一振動模態(tài)下(或另一廣義坐標方向上)的響應。
使耦合分離稱為解耦。解耦的目的是使各個自由度上(即各振動模態(tài))的振動相對獨立或分離,這樣可對隔振效果不佳的自由度獨立采取措施而不影響其他自由度方向上的有關(guān)性能。當各自由度獨立后,可能產(chǎn)生共振的頻率比存在耦合時要小,特別在激振能量大的方向上要保證解耦。
(1)一個模塊對另一個模塊的調(diào)用;
(2)一個模塊向另一個模塊傳遞的數(shù)據(jù)量;
�。�3)一個模塊施加到另一個模塊的控制的多少;
�。�4)模塊之間接口的復雜程度。
維庫電子通,電子知識,一查百通!
已收錄詞條128783個