簡介
在軟體工程活動中,廣泛使用於幾個方面:作為程式設計和管理指南;作為測試的輔助工具;作為網路複雜性的一種度量方法。
指標
McCabe方法包括若干項度量指標。常用的有如下幾項:
(1)圈複雜度(Cyclomatic Complexity)
圈複雜度是用來衡量一個模組判定結構的複雜程度。
在程式控制流程圖中,節點是程式中代碼的最小單元,邊代表節點間的程式流。一個有e條邊和n個節點的流程圖F,其圈複雜度為
VF =e-n+2。
圈複雜度越高,程式中的控制路徑越複雜。mccabe指出,典型的程式模組的圈複雜度為10。
(2)基本複雜度(Essential Complexity)
基本複雜度是用來衡量程式結構化程度的。
如果流程圖G中的結構化子圖的數量是m,則其基本複雜度為
EVF =V ? F -m
當基本複雜度為1,這個模組是充分結構化的;當基本複雜度大於1而小於循環複雜度,這個模組是部分結構化的;當基本複雜度等於循環複雜度時,這個模組是完全非結構化的。
(3)模組設計複雜度(Module Design Complexity)
模組設計複雜度用來衡量模組判定結構,即衡量模組與模組的調用關係。
從模組流程圖中移取那些不包含調用子模組的判定和循環結構時求得的循環複雜度就是模組設計複雜度。