這個詞的複雜性代表的事件或事情其中有多個相互關聯的環節和高度複雜的結構狀態。在軟體程式設計,軟體的設計是很重要的,相互連線的元件的數量是巨大的,這變得太難理解一次.
軟體設計的複雜性是難以評估沒有使用複雜性度量和措施。讓我們看看三個重要軟體複雜性的措施.
1977年,莫里斯·霍華德先生介紹霍爾斯特德指標來衡量軟體的複雜性。霍爾斯特德的衡量標準取決於計劃的實際執行情況和措施是直接從原始碼中的運算子和運算元計算在靜態方式。 它允許評估測試時間,詞彙量,大小,難度,錯誤和對C/ C + + / Java原始碼.
根據Halstead,“計算機程式的實現一個演算法被認為是一個集合的令牌可以分為運營商或運算元”。Halstead指標認為程式是運營商及其相關運算元的順序.
他定義了各種指標檢查模組的複雜性.
引數 | 意義 |
---|---|
n1 | 獨特的營辦商數目 |
n2 | N獨特的運算元數 |
N1 | 運營商的總發生數 |
N2 | 運算元的總發生數 |
當我們選擇原始檔以檢視其複雜性細節指標檢視器,以下結果是度量報告:
度量 | 意義 | 數學表示 |
---|---|---|
n | 詞彙表 | n1 + n2 |
N | 大小 | N1 + N2 |
V | 成交量 | 長* LOG2詞彙 |
D | 難度 | (n1/2) * (N1/n2) |
E | 努力 | 難度*體積 |
B | 錯誤 | 成交量 / 3000 |
T | 測試時間 | 時間=努力/ S,S = 18秒. |
每個程式包含語句為了執行一些任務和其他決策語句. 這些決策構造改變程式的流程.
如果我們比較兩個相同大小的計算機程式,所述一個具有更多的決策陳述是更複雜的.
McCabe, 1976年提出的圈複雜度指標量化一個給定的軟體的複雜性. 這是圖形驅動程式模型,該模型是基於決策結構如if - else,延伸,repeat-until,switch-case和goto語句.
過程流程控制圖:
如果可以控制從塊分支i到J座
畫一條弧
從出口節點進入節點
畫一條弧.
計算程式模組的圈複雜度,我們使用公式 -
V(G) = e – n + 2 在哪裡 e是邊總數 n是節點的總數目
上述模組的圈複雜度是
e = 10 n = 8 圈複雜度 = 10 - 8 + 2 = 4
根據 P. Jorgensen, 一個模組的圈複雜度不應超過10.
這是廣泛用於測量軟體的大小。功能點集中於系統提供的功能。特性和功能的系統被用來測量軟體的複雜性.
功能點計算的五個引數,命名為外部輸入,外部輸出,邏輯內部檔案,外部介面檔案和外部咨詢。考慮到軟體的複雜性各引數進一步劃分為簡單,平均或複雜.
讓我們來看看功能點的引數:
每一個獨特的輸入系統從外面被認為是外部輸入。獨特性的輸入測量,因為沒有兩個輸入應該有相同的格式。這些輸入可以是資料或控制引數.
簡單 - 如果輸入計數低,影響更少的內部檔案
複雜 - 如果輸入計數很高,影響更多的內部檔案
平均 - 之間的簡單和複雜.
由系統提供的所有輸出型別計數此類別中。輸出被認為是獨特的,如果其輸出格式和/或處理是獨特.
簡單 - 如果輸出計數低
複雜 - 如果輸出值高
平均 - 之間簡單和複雜.
每一個軟體系統維護維持其功能的資訊和正常內部檔案。這些檔案儲存了系統的邏輯資料。這個邏輯資料可能包含的功能資料和控制資料.
簡單 - 如果記錄型別的數量是低
複雜 - 如果記錄型別的數量都很高
平均 - 之間簡單和複雜.
軟體系統可能需要共用檔案與一些外部軟體或它可能需要將檔案進行處理或作為引數傳遞給函式。所有這些檔案都算作外部介面檔案.
簡單 - 如果共用檔案的記錄型別數量很低
複雜 - 如果共用檔案的記錄型別數量很高
平均 - 在簡單和複雜之間.
調查是輸入和輸出的組合,在使用者傳送詢問一些資料作為輸入和輸出的系統響應使用者的查詢處理。一個查詢的複雜性超過外部輸入、外部輸出。查詢是獨特的,如果其輸入和輸出方面獨特的格式和資料.
簡單 - 如果查詢的處理和低收益率少量的輸出資料
複雜 - 如果查詢的處理和低收益率少量的輸出資料
平均 - 之間簡單和複雜.
每個這些引數的系統給出weightage根據他們的階級和複雜性。下面的表格提到了weightage給每個引數:
引數 | 簡單 | 平均 | 複雜 |
---|---|---|---|
輸入 | 3 | 4 | 6 |
輸出 | 4 | 5 | 7 |
查詢 | 3 | 4 | 6 |
檔案 | 7 | 10 | 15 |
介面 | 5 | 7 | 10 |
上表收益率原始功能點。這些功能點是根據環境調整的複雜性。系統使用14個不同的特徵:
這些特徵因素評級從0到5,如下提到的:
所有收視率,然後概括為N。N的取值範圍為0?70(14種特性X 5種評級的)。它被用來計算複雜性的調整因子(CAF)使用下面的公式:
CAF = 0.65 + 0.01N
然後,
交付功能點 (FP)= CAF x Raw FP
這種FP然後可以在各種度量被使用,如:
成本 = $ / FP
品質 = Errors / FP
生產力 = FP / person-month