內聚性與耦合性_第1頁
內聚性與耦合性_第2頁
內聚性與耦合性_第3頁
內聚性與耦合性_第4頁
內聚性與耦合性_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、耦合性與內聚性(2010-06-20 12:13:39)轉載Q標簽:分類:概念文章耦合性內聚性it1)耦合性. 耦合性是對一個軟件結構內部不同模塊間聯系緊密程度的度量指標。 決定耦合性高低的主要因素由于模塊間的聯系是通過模塊接口實現的,因此,模塊耦合性的高低主要取 決于模塊接口的復雜程度、調用模塊的方式以及通過模塊接口的數據。模塊間的 耦合性主要可劃分為如下幾種類型。低 耦合性k 高數據公共控制內容耦合耦臺糖合糖臺強 模塊獨立性 弱數據耦合。若兩個模塊之間僅通過模塊參數交換信息,且交換的信息全部為 簡單數據,則稱這種耦合為數據耦合。數據耦合的耦合性最低,通常軟件中都包 含有數據耦合。數據耦合的

2、例子如下所示:sum(int a,int b)(int c;c=a+b;return(c); main()int x,y;printf(x+y= %d”,sum(x,y);公共耦合。若兩個或多個模塊通過引用公共數據相互聯系,則稱這種耦合為 公共耦合。例如,在程序中定義了全局變量,并在多個模塊中對全局變量進行了 引用,則引用全局變量的多個模塊間就具有了公共耦合關系??刂岂詈?。若模塊之間交換的信息中包含有控制信息(盡管有時控制信息是 以數據的形式出現的),則稱這種耦合為控制耦合??刂岂詈鲜侵械瘸潭鹊鸟詈?, 它會增加程序的復雜性。控制耦合的例子如下所示:void output(flag)if (fl

3、ag) printf(OK!);else printf(NO!);main() int flag;output(flag);內容耦合。若一個模塊對另一模塊中的內容(包括數據和程序段)進行了直接 的引用甚至修改,或通過非正常入口進入到另一模塊內部,或一個模塊具有多個 入口,或兩個模塊共享一部分代碼,則稱模塊間的這種耦合為內容耦合。內容耦 合是所有耦合關系中程度最高的,會使因模塊間的聯系過于緊密而對后期的開發 和維護工作帶來很大的麻煩。2)內聚性內聚性是對一個模塊內部各個組成元素之間相互結合的緊密程度的度量指標。模 塊中組成元素結合的越緊密,模塊的內聚性就越高,模塊的獨立性也就越高。理 想的內聚性

4、要求模塊的功能應明確、單一,即一個模塊只做一件事情。模塊的內 聚性和耦合性是兩個相互對立且又密切相關的概念。經實踐證明,保證模塊的高內聚性比低耦合性更為重要,在軟件設計時應將 更多的注意力集中在提高模塊的內聚性上。模塊的內聚性主要可劃分為如下幾種 不同的類型。偶然內聚。若一個模塊由多個完成不同任務的語句段組成,各語句段之間的 聯系十分松散或根本沒有任何聯系,則稱此模塊的內聚為偶然內聚。邏輯內聚。這種模塊是把幾種功能組合在一起,每次調用時,則由傳遞給模 塊的判定參數來確定該模塊應執行哪一種功能。被調用模塊讀個記錄時間內聚。若一個模塊包含了需要在同一時間段中執行的多個任務,則稱該 模塊的內聚為時間

5、內聚。例如,將多個變量的初始化放在同一個模塊中實現,或 將需要同時使用的多個庫文件的打開操作放在同一個模塊中,都會產生時間內聚 的模塊。過程內聚。若一個模塊中的各個部分相關,并且必須按特定的次序執行,貝U 稱該模塊的內聚為過程內聚。在結構化程序中,通常采用程序流程圖作為設計軟 件和確定模塊劃分的工具,因此,這樣得到的模塊往往具有過程內聚的特性。通信內聚。若一個模塊中的各個部分使用同一個輸入數據或產生同一個輸出 數據,則稱該模塊的內聚為通信內聚。順序內聚。若一個模塊中的各個部分都與同一個功能密切相關,并且必須按 照先后順序執行(通常前一個部分的輸出數據就是后一個部分的輸入數據),則稱 該模塊的內聚為順序內聚。功能內聚。若一個模塊中各個組成部分構成一個整體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論