軟件設計的複雜性
這個詞的複雜性代表的事件或事情其中有多個相互關聯的環節和高度複雜的結構狀態。在軟件編程,軟件的設計是很重要的,相互連接的元件的數量是巨大的,這變得太難理解一次.
軟件設計的複雜性是難以評估沒有使用複雜性度量和措施。讓我們看看三個重要軟件複雜性的措施.
Halstead's 的複雜性措施
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