畫出其對應的控制流圖如下:
逐一:如果在程序中遇到復合條件,例如條件語句中的多個布爾運算符(邏輯OR、AND)時,為每一個條件創建一個獨立的節點,包含條件的節點稱為判定節點,從每一個判定節點發出兩條或多條邊。例如:
1 if ( a or b)
2 x
3 else
4 y
5 …
對應的邏輯為:
3.2.2計算圈復雜度
圈復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。
有以下三種方法計算圈復雜度:
流圖中區域的數量對應于環型的復雜性;
給定流圖G的圈復雜度-V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中節點的數量;
給定流圖G的圈復雜度-V(G),定義為V(G)=P+1,P是流圖G中判定節點的數量。
對應3.2.1圖一中代碼的圈復雜度,計算如下:
流圖中有四個區域;
V(G)=11條邊-9節點+2=4;
V(G)=3個判定節點+1=4。