衡量模块独立性的两个定性标准
衡量模塊獨立性的兩個定性標準
- - 耦合:
- - 內聚
內聚和耦合
模塊的獨立程度可以由兩個定性標準衡量,這兩個標準分別是內聚和耦合。
耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此結合的緊密程度。
?
- 耦合:
定義:
是對一個軟件結構內不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數據。
分類:
(1)數據耦合:兩個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據。
(2)控制耦合:如果傳遞的信息中有控制信息(盡管有時這種控制信息以數據形式出現)
(3)特征耦合:當把整個數據結構作為參數傳遞而被調用的模塊只使用其中一部分數據元素時
(4)公共環境耦合:當兩個或多個模塊通過一個公共數據環境相互作用時
(5)內容耦合:最高程度的耦合;如果出現以下情況之一,兩個模塊就發生了內容耦合:
a. 一個模塊訪問另一個模塊的內部數據
b. 一個模塊不通過正常入口而轉到另一個模塊的內部c. 兩個模塊有一部分代碼重疊(只可能出現在匯編語言)
d. 一個模塊有多個入口(意味著一個模塊有幾種功能)
耦合設計原則:盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合。
- 內聚
定義:
標志著一個模塊內哥哥元素彼此解和的緊密程度,它是信息隱藏和局部化概念的自然擴展。簡單的說,理想內聚只做一件事情。(內聚和耦合是密切相關的,模塊內的高內聚往往意味著模塊間的低耦合,內聚和耦合都是進行模塊化設計的有利工具,但是內聚更重要)
分類:
A. 高內聚:
(1) 順序內聚:如果一個模塊內的處理元素和同一功能密切相關,而且這些處理必須順序執行(9分)
(2) 功能內聚:如果模塊內所有處理元素屬于一個整體,完成一個單一的功能(10分)
B. 中內聚:
(1) 過程內聚:如果一個模塊內的處理元素是相關的,而且必須經過特定的次序執行(5分)
(2) 通信內聚:如果模塊中所有元素都使用同一輸入數據和(或)產生統一輸出數據(7分)
C. 低內聚:
(1) 偶然內聚:如果一個模塊完成一組任務,這些任務彼此間即使有關系,關系也是很松散的。(0分)
(2) 邏輯內聚:如果一個模塊完成的任務在邏輯上屬于相同或相似的一類。(1分)
(3) 時間內聚:如果一個模塊包含的任務必須在同一時間內執行(3分)
總結
以上是生活随笔為你收集整理的衡量模块独立性的两个定性标准的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯第七届决赛JAVA真题----广场
- 下一篇: View Flash AS3 and A