隨筆-31  評論-2  文章-0  trackbacks-0
          什么是內聚?什么是耦合?
          內聚是從功能角度來度量模塊內的聯系,一個好的內聚模塊應當恰好做一件事。它描述
          的是模塊內的功能聯系; 耦合是軟件結構中各模塊之間相互連接的一種度量,耦合強弱取決
          于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數據。
          耦合性也稱塊間聯系。指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決于模塊間接口的復雜性、調用的方式及傳遞的信息。

          2. 內聚分為哪幾類?耦合分為哪幾類?
                內聚有如下的種類,它們之間的內聚度由弱到強排列如下:
          (1) 偶然內聚。模塊中的代碼無法定義其不同功能的調用。但它使該模塊能執(zhí)行不同
          的功能,這種模塊稱為巧合強度模塊。
          (2) 邏輯內聚。這種模塊把幾種相關的功能組合在一起, 每次被調用時,由傳送給模
          塊參數來確定該模塊應完成哪一種功能
          (3) 時間內聚:把需要同時執(zhí)行的動作組合在一起形成的模塊為時間內聚模塊。
          (4) 過程內聚:構件或者操作的組合方式是,允許在調用前面的構件或操作之后,馬上調用后面的構件或操作,即使兩者之間沒有數據進行傳遞。
          (5) 通信內聚:指模塊內所有處理元素都在同一個數據結構上操作(有時稱之為信息內聚),或者指各處理使用相同的輸入數據或者產生相同的輸出數據。
          (6) 順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執(zhí)行,前一功能元素輸出就是下一功能元素的輸入。
          (7) 功能內聚:這是最強的內聚,指模塊內所有元素共同完成一個功能,缺一不可。
          耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:
          (1) 內容耦合:如果發(fā)生下列情形,兩個模塊之間就發(fā)生了內容耦合
          一個模塊直接訪問另一個模塊的內部數據
          一個模塊不通過正常入口轉到另一模塊內部;
          兩個模塊有一部分程序代碼重疊(只可能出現在匯編語言中);
          一個模塊有多個入口。
          (2) 公共耦合:若一組模塊都訪問同一個公共數據環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數據環(huán)境可以是全局數據結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。
          (3) 外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。
          (4) 控制耦合:如果一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合
          (5) 標記耦合:一組模塊通過參數表傳遞記錄信息,就是標記耦合。這個記錄是某一數據結構的子結構,而不是簡單變量。其實傳遞的是這個數據結構的地址;也就是地址傳遞。
          (6) 數據耦合:指兩個模塊之間有調用關系,傳遞的是簡單的數據值,一個模塊訪問另一個模塊時,彼此之間是通過簡單數據參數 (不是控制參數、公共數據結構或外部變量) 來交換輸入、輸出信息的,相當于高級語言的值傳遞。
          (7) 非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。
          耦合強度,依賴于以下幾個因素:
          (1)一個模塊對另一個模塊的調用;
          (2)一個模塊向另一個模塊傳遞的數據量;
          (3)一個模塊施加到另一個模塊的控制的多少;
          (4)模塊之間接口的復雜程度。


          參考資料:

          http://baike.baidu.com/view/156245.html

          http://www.cnblogs.com/dqshll/articles/1116799.html

          http://blog.zol.com.cn/858/article_857495.html

          posted on 2009-08-03 23:06 xiaoxinchen 閱讀(1607) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 阿克陶县| 开化县| 大埔区| 白玉县| 汉源县| 塔城市| 苍梧县| 门头沟区| 张家界市| 宝清县| 平度市| 六盘水市| 黔东| 杭锦旗| 凤台县| 大冶市| 威海市| 噶尔县| 夏河县| 临夏市| 天气| 蒲城县| 延边| 西吉县| 乐至县| 杨浦区| 特克斯县| 礼泉县| 平潭县| 香港| 景洪市| 平塘县| 崇礼县| 万州区| 玛纳斯县| 宣威市| 莎车县| 商河县| 余庆县| 平安县| 陇南市|