複製鏈接
請複製以下鏈接發送給好友

邏輯內聚

鎖定
邏輯內聚指模塊內執行個邏輯上相似的功能,通過參數確定該模塊完成哪一個功能。指機能相關的程序組合成一模塊的程度,或是各機能凝聚的狀態或程度。是結構化分析的重要概念之一。
中文名
邏輯內聚
特    性
魯棒性可靠度可複用性
低內聚性
不易維護、不易測試、不易複用
性    質
內聚性是一種非量化的量測

邏輯內聚基本簡介

量測內聚性的方式很多,有些方法是由分析源代碼,得到非量化的結果,有些方法則是檢查源代碼的文本特徵,以得到內聚性的量化分數。內聚性是屬於順序式的量測量,一般會以“高內聚性”或“低內聚性”來表示。一般會希望程序的模塊有高內聚性,因為高內聚性一般和許多理想的軟件特性有關,包括魯棒性可靠度可複用性及易懂性(understandability)等特性,而低內聚性一般也代表不易維護、不易測試、不易複用以及難以理解。

邏輯內聚相關實例

內聚性是一種非量化的量測,可利用評量規準來確認待確認源代碼的內聚性的分類。內聚性的分類如下,由低到高排列:
偶然內聚性(Coincidental cohesion,最低)偶然內聚性是指模塊中的機能只是剛好放在一起,模塊中各機能之間唯一的關係是其位在同一個模塊中(例如:“工具”模塊)。
邏輯內聚性(Logical cohesion)邏輯內聚性是隻要機能只要在邏輯上分為同一類,不論各機能的本質是否有很大差異,就將這些機能放在同一模塊中(例如將所有的鼠標和鍵盤都放在輸入處理副程序中)。
時間性內聚性(Temporal cohesion)時間性內聚性是指將相近時間點運行的程序,放在同一個模塊中(例如在捕捉到一個異常後調用一函數,在函數中關閉已打開的文件、產生錯誤日誌、並告知用户)。
程序內聚性(Procedural cohesion)程序內聚性是指依一組會依照固定順序運行的程序放在同一個模塊中(例如一個函數檢查文件的權限,之後打開文件)。
聯絡內聚性(Communicational cohesion)聯絡內聚性是指模塊中的機能因為處理相同的數據,因此放在同一個模塊中(例如一個模塊中的許多機能都訪問同一個記錄)。
依序內聚性(Sequential cohesion)依序內聚性是指模塊中的各機能彼此的輸入及輸出數據相關,一模塊的輸出數據是另一個模塊的輸入,類似工廠的生產線(例如一個模塊先讀取文件中的數據,之後再處理數據)。
功能內聚性(Functional cohesion,最高)功能內聚性是指模塊中的各機能是因為它們都對模塊中單一明確定義的任務有貢獻(例如XML字符串的詞法分析)。
由賴瑞·康斯坦丁、愛德華·尤登及史蒂夫·麥康奈爾等人的研究[4]都提出偶然內聚性和邏輯內聚性是不好的,聯絡內聚性和依序內聚性是好的,而功能內聚性是最理想的狀態。